1. VPC CNI 버전 및 Nitro 인스턴스 확인
- VPC CNI 버전이 1.9.0 이상이어야 하며, 워커 노드의 인스턴스 타입이 Nitro 기반 인스턴스여야 합니다.
# VPC CNI 버전 확인
$ kubectl describe daemonset aws-node -n kube-system | grep Image
---
결과
Image: 602401143452.dkr.ecr.ap-northeast-1.amazonaws.com/amazon-k8s-cni-init:v1.19.2-eksbuild.1
Image: 602401143452.dkr.ecr.ap-northeast-1.amazonaws.com/amazon-k8s-cni:v1.19.2-eksbuild.1
Image: 602401143452.dkr.ecr.ap-northeast-1.amazonaws.com/amazon/aws-network-policy-agent:v1.1.6-eksbuild.1
# 인스턴스 타입 확인
$ aws ec2 describe-instances --instance-ids <노드 인스턴스ID> --query 'Reservations[].Instances[].Hypervisor'
---
결과
nitro 나오면 됨,
그런데 하이퍼바이저가 xen으로 나와도 실제 인스턴스 타입이 nitro인지 확인해야함
2. Prefix Delegation 및 환경 변수 적용
$ kubectl set env daemonset aws-node -n kube-system ENABLE_PREFIX_DELEGATION=true
$ kubectl set env daemonset aws-node -n kube-system WARM_PREFIX_TARGET=1
$ kubectl set env daemonset aws-node -n kube-system MINIMUM_IP_TARGET=35
$ kubectl set env daemonset aws-node -n kube-system WARM_IP_TARGET=5
- ENABLE_PREFIX_DELEGATION=true: Prefix Delegation 활성화
이때 ENABLE_PREFIX_DELEGATION=true인 경우, maxPods는 CNI 기준으로 동적으로 자동 설정됩니다. - WARM_PREFIX_TARGET=1: ENI당 최소 1개 Prefix(16 IP) 확보
- MINIMUM_IP_TARGET=35: 노드당 최소 35개 IP 확보(파드 수와 일치)
- WARM_IP_TARGET=5: 추가로 5개 여유 IP 확보(파드 생성 지연 최소화)
3. 노드 그룹 롤링 업데이트
- 저는 AWS console에서 노드 그룹을 업데이트 해주었습니다.
- 아래 과정은 노드 그룹 롤링 업데이트 하는 과정 입니다.
1. Amazon EKS 콘솔을 엽니다.
2. 업데이트할 노드 그룹이 포함된 클러스터를 선택합니다.
3. 하나 이상의 노드 그룹에 사용 가능한 업데이트가 있는 경우 페이지 상단에 사용 가능한 업데이트를 알리는 상자가 나타납니다.
컴퓨팅 탭을 선택하면 사용 가능한 업데이트가 있는 노드 그룹에 대한 노드 그룹 테이블의 AMI 릴리스 버전 열에 지금 업데이트가 표시됩니다. 노드 그룹을 업데이트하려면 지금 업데이트를 선택합니다.
사용자 지정 AMI와 함께 배포된 노드 그룹에 대한 알림이 표시되지 않습니다. 노드가 사용자 지정 AMI와 함께 배포된 경우 다음 단계를 완료하여 새로운 업데이트된 사용자 지정 AMI를 배포합니다.
a. AMI의 새 버전을 생성합니다.
b. 새 AMI ID를 사용하여 새 시작 템플릿 버전을 생성합니다.
c. 노드를 새 버전의 시작 템플릿으로 업그레이드합니다.
4. 노드 그룹 버전 업데이트 대화 상자에서 다음과 같은 옵션을 활성화하거나 비활성화합니다.
-
- 노드 그룹 버전 업데이트 - 사용자 지정 AMI를 배포했거나 Amazon EKS에 최적화된 AMI가 현재 클러스터의 최신 버전에 있는 경우에는 이 옵션을 사용할 수 없습니다.
- 시작 템플릿 버전 변경 - 노드 그룹이 사용자 지정 시작 템플릿 없이 배포된 경우에는 이 옵션을 사용할 수 없습니다. 사용자 지정 시작 템플릿을 사용하여 배포된 노드 그룹의 시작 템플릿 버전만 업데이트할 수 있습니다. 노드 그룹을 업데이트할 시작 템플릿 버전을 선택합니다. 노드 그룹이 사용자 지정 AMI로 구성된 경우 선택한 버전에서도 AMI를 지정해야 합니다. 최신 버전의 시작 템플릿으로 업그레이드하면 지정된 시작 템플릿 버전의 새 구성과 일치하도록 모든 노드가 재활용됩니다.
5. 전략 업데이트의 경우, 다음과 같은 옵션 중 하나를 선택합니다.
-
- 롤링 업데이트 - 이 옵션은 클러스터에 대한 포드 중단 예산을 고려합니다. 포드 중단 예산 문제로 인해 Amazon EKS에서 이 노드 그룹에서 실행 중인 포드를 적절하게 드레이닝할 수 없는 경우 업데이트에 실패합니다.
- 강제 업데이트 - 이 옵션은 포드 중단 예산을 따르지 않습니다. 노드 재시작을 강제로 적용하여 포드 중단 예산 문제와 관계없이 업데이트가 수행됩니다.
6. 업데이트를 선택합니다.
그런데, 노드 업데이트가 잘 안될 때가 있습니다.
그럴 땐 노드 그룹에 들어가서 업데이트 기록을 확인하고 실패한 내역이 있으면
클릭하여 로그 확인하여 해결 하면 됩니다.
저 같은 경우에는 특정 노드 하나에서 드레인이 안돼서 계속 실패했습니다.
해당 노드에서 istiod가 드레인 되지 않아서 삭제해주었더니만, 정상적으로 업데이트가 완료 되었습니다.
이렇게 노드에서 생성할 수 있는 POD 개수 제한을 해제 해보았습니다.
감사합니다.
'AWS' 카테고리의 다른 글
GCP <-> AWS VPN 연결 (1) | 2025.06.25 |
---|---|
AWS Secret Manager 에서 생성한 Secret을 EKS 에서 사용하기 (0) | 2025.06.04 |
AWS ALB(Application LoadBalancer) Controller 설치 하기 (0) | 2025.06.02 |
AWS - (RDS - EC2연결, S3, ALB 사용, CloudFront) (1) | 2024.03.20 |
AWS VPC 피어링 연결 및 람다 (1) | 2024.03.19 |