1. 사전 준비
1) EKS 릴리즈 노트 확인
- AWS 공식 문서에서 EKS 릴리즈 노트(https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html)를 확인하여 변경 사항, deprecated 기능 등을 사전에 파악합니다.
2) EKS 업그레이드 지원 여부 확인
- EKS는 한 번에 하나의 minor 버전만 업그레이드할 수 있습니다.
예: 1.24 → 1.25 가능, 1.24 → 1.26 불가
3) 클러스터 백업
- etcd는 AWS가 관리하지만, Kubernetes 리소스 (Deployments, Services, CRDs 등) 를 kubectl get all --all-namespaces -o yaml 형태로 백업.
- Helm 리소스도 helm get values 등을 이용해 백업
4) 노드그룹 상태 확인
- 자동 노드 업그레이드가 노드 그룹 단위로 이루어짐
- 모든 노드가 정상 상태인지 (Ready) 확인
2. 컨트롤 플레인 업그레이드
- EKS 콘솔 혹은 AWS CLI, eksctl을 이용해서 수행
$ eksctl upgrade cluster --name your-cluster-name --approve
- 업그레이드 시간은 10~15분 내외이며, 중단은 거의 없음
⚠️ 업그레이드 후 확인 사항:
- kubectl version으로 서버 버전 확인
- kubectl get cs / kubectl get nodes로 API 서버 정상 여부 확인
3. 노드 그룹 업그레이드
- 노드는 자동으로 업그레이드되지 않음.
- 권장 방법: 기존 노드그룹 유지 → 새 노드그룹 생성 → 워크로드 마이그레이션 → 기존 노드 삭제
$ eksctl create nodegroup --cluster your-cluster-name --name new-ng --kubelet-extra-args '--node-labels=upgrade=true'
- 새 노드 그룹 준비가 되면 kubectl cordon + kubectl drain을 이용해 점진적으로 워크로드 이동
$ kubectl cordon <old-node-name>
$ kubectl drain <old-node-name> --ignore-daemonsets --delete-emptydir-data
- 충분히 테스트 후 기존 노드그룹 삭제
4. 애드온 및 툴링 업데이트
- EKS 업그레이드 후 다음 컴포넌트들도 버전에 맞게 업데이트해야 함:
* CoreDNS
* kube-proxy
* Amazon VPC CNI
$ eksctl utils update-coredns --cluster your-cluster-name --approve
$ eksctl utils update-kube-proxy --cluster your-cluster-name --approve
$ eksctl utils update-aws-node --cluster your-cluster-name --approve
- Helm, ArgoCD, Prometheus, Istio 등 기타 툴은 각자의 방식으로 업그레이드 필요
5. 애플리케이션 및 기능 점검
- 테스트 및 Health check 수행
- CI/CD 파이프라인 테스트
- 롤백 전략 수립 (eksctl을 통한 클러스터 스냅샷은 직접 불가능하므로 IaC 재생성 방법이나 클러스터 이중화 고려)
[베스트 프랙티스]
| 업그레이드 순서 | Dev → Stage → Prod 환경 순서로 테스트 후 진행 |
| 운영시간 | 비업무 시간에 수행 권장 |
| 모니터링 | CloudWatch, Datadog, Prometheus 등을 이용한 실시간 모니터링 |
| 노드 자동 교체 | Karpenter 또는 Cluster Autoscaler와 함께 rolling upgrade 자동화 가능 |
| 버전 호환성 체크 | CRD, API, Helm chart가 새로운 버전과 호환되는지 사전 확인 |
'AWS > EKS' 카테고리의 다른 글
| [EKS] AWS EKS 환경에서 kube-bench 활용하는 방법 (1) | 2025.05.18 |
|---|---|
| [EKS] 노드 스토리지 사이즈 변경 방법 (0) | 2024.10.20 |
| [EKS] EKS에서의 Auto Scaling (0) | 2024.04.20 |
| [EKS] EKS 사용시 참고할 유용한 링크 (0) | 2024.04.20 |
| [EKS] pod로 파일 전송 (0) | 2023.12.25 |