티스토리 뷰
EKS 와 연결되는 aws 서비스들
AWS | |
컨테이너 이미지 | ECR |
노드 | EC2 |
로드밸런서 | ELB |
인증/인가 | IAM |
Private 네트워크 | VPC |
Volume | EBS |
k8s secret | KMS |
감사/로그 | CloudWatch Log |
EKS Clustster
Cluster 구성요소 | 설명 |
Control Plane | - etcd, kubernetes api 등을 가짐 - kubernetes api는 eks endpoint를 통해 노출됨 - ec2 instance 위에서 돌아감 - 여러 AZ에 provision되어 ELB(NLB)로 트래픽을 받음 |
Node | - VPC의 network를 이용해 control plane -> node로 트래픽 전송 |
eks endpoint
Public Access | Private Access | 설명 |
X | X | 불가 |
X | O | - 쿠버네티스 API서버의 모든 트래픽이 VPC 내에서만 이루어져야 함 (kubectl 을 vpc 내애서 가능) - 퍼블릭 DNS에서 VPC의 private ip를 조회함 (확인되지 않는 경우, 퍼블릭 엑세스를 활성화한다음 다시 비활성화) |
O | X | Default - API서버에 대한 트래픽이 VPC를 벗어나지만 AWS 네트워크 범위임 - 엑세스할 수 있는 cidr 블록은 제어할 수 있음 |
O | O | 위의 두개 다 됨 |
eks log유형
Control Plane | detatil |
kubernetes API | |
Audit | |
Authenticator | |
Controller Manager | watches the shared state of the cluster through the apiserver and makes changes attempting to move the current state towards the desired state |
Scheduler |
EKS Node
관리형 노드 그룹 | 자체 관리형 노드 | AWS Fargate | 사용자 지정 AMI | |
프로비져닝 및 수명주기 관리 | AWS 가 자동화 | |||
AWS autoscaling group | 모든 노드가 asg 일부임 | |||
AWS launch template | custom 또는 자동지정 | |||
Cluster Autoscaler | 자동으로 사용 | |||
단일 그룹내 여러 노드그룹 | 지원함 | |||
EC2에서 태그로 노드 등록 | X | kubernetes.io/cluster/my-cluster | ||
온디맨드 컴퓨팅 | kubernete pod를 예약하여 컨테이너마다 온디맨드로 컴퓨터 용량 제공 | |||
사용자 지정 AMI사용 | O |
스토리지(storage)
csi로 Amazon EBS의 container storage interface를 사용함
csi란? Kubernetes가 컨테이너화된 워크로드에 임의의 스토리지 시스템을 노출할 수 있게 해주는 개방형 표준 API |
- IAM 권한이 필요
- 쿠버네티스 storage class로 in-tree AWS EBS storage provisioner를 사용함
네트워크(network)
VPC 요구사항
서로다른 AZ에 있는 2개 이상의 subnet 준비
EKS가 network interface 생성
eks 클러스터를 생성하는경우, 클러스터와 VPC간의 통신을 위해서 eks가 지정한 서브넷에 2~3개의 network interface를 생성한다.
해당 network interface 설명엔 Amazon EKS cluster-name이 포함되어 있다.
EKS가 security group 생성
1. eks 클러스터를 생성하는 경우, eks는 eks-cluster-sg-my-cluster-uniqueID 이름의 sg를 생성한다.
2. eks는 이 sg를 다음 두개에 연결한다
- eks 가 만든 network interface
- node group에 있는 node의 network interface
기본으로 적용되는 규칙으로써,클러스터와 노드 간에 모든 트래픽이 자유롭게 흐를 수 있으며 모든 아웃바운드 트래픽은 모든 대상에 대해 허용된다.
Pod 네트워크
설치할 Add on |
AWS load balancer controller |
Core DNS |
kube-proxy |
Calico 추가기능 |
쿠버네티스 오토스케일링
VPA | pod의 리소스 limit 과 request를 자동 조절하여 사용자가 직접 리소스 양을 관리하지 않을 수 있게 해줌 |
HPA | pods의 수를 해당 리소스의 CPU 사용률에 따라 자동으로 조정 |
LoadBalacer | ALB나 NLB사용 |
'CLOUD > AWS' 카테고리의 다른 글
aws cli v2 경로 이슈 (0) | 2024.05.28 |
---|---|
[AWS] ECS 네트워크 모드 (0) | 2024.05.02 |
[AWS/Terraform] IAM, instance profile 구성 (0) | 2022.09.11 |
[AWS] Lambda (0) | 2022.09.07 |
[AWS] eks 에 External DNS 설정하기 (Route53 사용하기) (0) | 2022.09.07 |