개요
EKS Node에 배포 가능한 최대 pod 수는 ENI에 할당 가능한 IP 수와 EC2에 부착 가능한 최대 ENI 수에 따라 결정됩니다. 따라서 Node의 인스턴스 타입 별로 다른 최대 pod 수를 갖게 됩니다.
참고로 pod 수 계산식의 +2 는 hostNetwork 모드로 실행되는 pod(VPC CNI, kube-proxy)가 반영된 부분입니다.
Node에 배치된 pod 수에 모든 pod가 포함되므로, 추가적으로 hostNetwork를 사용하는 pod가 있다면, 조정하여 더 많은 pod를 배치할 수 있습니다.
하지만 VPC CNI add-on의 prefix 할당 모드를 사용하면서 더 많은 수의 pod를 Node에 배포할 수 있게 되었습니다.
VPC CNI Prefix Delegation 옵션
해당 옵션을 통해 /28 사이즈의 IP CIDR을 ENI에 할당할 수 있습니다. (VPC CNI add-on 1.9.0 이상)
[설정 방법]
kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
[확인 방법]
kubectl describe des aws-node -n kube-system | grep -i delegation
ENABLE_PREFIX_DELEGATION: true
AWS 콘솔에서 Node ENI에 아래와 같이 /28 IP CIDR이 할당된 것을 볼 수 있습니다.
기존 ENI에 여러 개의 단일 IP를 부착하는 방식보다 많은 수의 pod를 Node에 배포할 수 있습니다.
AWS에서는 VPC CNI prefix delegation 옵션 사용 시 최대 pod 수를 30 vCPU 미만의 EC2에 대해 110개, 그 이상은 250개로 권고합니다. (실제 가용 IP가 110개 보다 많더라도 Kubernetes 공식 문서에서 Node 당 pod 수를 110개 이하로 권고하고 있기 때문으로 추정)
기타 관련 옵션
Pod 생성 시 ENI/IP가 부족할 때 빠르게 할당할 수 있도록 미리 warm pool(여유분)을 마련할 수 있습니다.
- WARM_PREFIX_TARGET : 특정 수 만큼의 사용하지 않은 /28 CIDR을 할당함 (Ex. 기존 prefix에서 1개의 IP를 pod에서 사용할 시 새 /28 CIDR 할당)
- WARM_IP_TARGET : 특정 IP 개수만큼 사용하지 않은 secondary IP를 할당함
- MINIMUM_IP_TARGET : Node 별 유지해야 할 IP 수 (+ secondary IP 동적 할당 임계값, WARM_IP_TARGET 설정 시 반드시 설정 권고)
- WARM_ENI_TARGET : 특정 ENI 수 만큼 사용하지 않은 ENI(여유분)를 할당함
출처
Choosing an Amazon EC2 instance type
'Kubernetes' 카테고리의 다른 글
파드의 컨테이너 pid 및 cgroup에 할당된 cpu, mem 확인 방법(containerd) (1) | 2024.03.12 |
---|---|
컨테이너 root로 접속하는 방법(containerd) (3) | 2023.11.07 |
EFS 권장 옵션을 포함한 EKS 내 PV 생성 (0) | 2022.06.24 |
EFK Stack 구성하기 2 (Kinesis Firehose 추가) (2) | 2022.05.25 |
EFK Stack 구성하기 (Amazon OpenSearch + FluentBit + Kibana) (0) | 2022.05.23 |