반응형
1. EKS 버전 업그레이드 개요
Amazon EKS(Amazon Elastic Kubernetes Service) 클러스터를 업그레이드할 때는 컨트롤 플레인(Control Plane)과 워커 노드(Worker Nodes)를 단계적으로 업데이트해야 합니다. 이를 통해 가용성을 유지하면서 다운타임을 최소화할 수 있습니다.
2. EKS 버전 업그레이드 시 주요 고려사항
✅ 1) 업그레이드 전 체크리스트
- 현재 사용 중인 Kubernetes 버전 확인
- kubectl version 또는 aws eks describe-cluster --name <cluster-name> 명령어로 확인
- EKS는 이전 두 개의 Kubernetes 버전만 지원하므로 최신 안정 버전으로 유지 필요
- EKS 지원 버전 확인
- EKS 버전 지원 정책 참고
- Kubernetes 커뮤니티는 각 버전을 약 1년 반 동안 지원함
- 사용 중인 AWS SDK 및 클라이언트 라이브러리 호환성 검토
- AWS CLI, eksctl, kubectl, Terraform 등 최신 버전으로 업데이트
- 어플리케이션 및 애드온 호환성 체크
- kubectl get pod -A 로 모든 파드가 정상인지 확인
- Ingress Controller, CNI Plugin, CoreDNS, Metrics Server 등 필수 애드온 버전 업그레이드 필요
- kubectl describe 및 kubectl logs로 애플리케이션 이벤트 점검
✅ 2) 컨트롤 플레인(Control Plane) 업그레이드
- EKS 클러스터를 최신 버전으로 업그레이드
aws eks update-cluster-version --name <cluster-name> --kubernetes-version <new-version>
- 업그레이드 후 클러스터 상태 확인:
aws eks describe-cluster --name <cluster-name> --query 'cluster.version'
- 업그레이드 후 클러스터 상태 확인:
- EKS 애드온(CoreDNS, kube-proxy, VPC CNI 등) 업데이트
aws eks update-addon --cluster-name <cluster-name> --addon-name coredns --addon-version latest aws eks update-addon --cluster-name <cluster-name> --addon-name kube-proxy --addon-version latest aws eks update-addon --cluster-name <cluster-name> --addon-name vpc-cni --addon-version latest
✅ 3) 워커 노드(Worker Nodes) 업그레이드
- 새로운 노드 그룹 생성 (Blue/Green 배포 방식 권장)
- 기존 노드 그룹을 바로 업데이트하지 말고, 새로운 노드 그룹을 생성 후 점진적으로 이전
- Auto Scaling Group을 이용해 새 노드 배포 후, 기존 노드를 단계적으로 삭제
- 노드 그룹 버전 업그레이드
- 기존 노드를 업데이트하는 대신, 새 노드 그룹을 생성하는 것이 더 안전
eksctl create nodegroup --cluster <cluster-name> --name <new-nodegroup-name> --node-type t3.medium --nodes 3
- 노드 교체 및 애플리케이션 정상 동작 확인
- 기존 노드에서 파드를 새 노드로 이동
kubectl drain <old-node-name> --ignore-daemonsets --delete-local-data
- 기존 노드 삭제
eksctl delete nodegroup --cluster <cluster-name> --name <old-nodegroup-name>
✅ 4) 업그레이드 후 체크리스트
- 애플리케이션 정상 동작 확인
- kubectl get pods -A로 모든 파드가 정상 실행 중인지 확인
- kubectl logs <pod-name>으로 로그 점검
- 노드 및 네트워크 정상 작동 확인
- kubectl get nodes로 모든 노드가 Ready 상태인지 확인
- kubectl get svc -A로 서비스 정상 여부 확인
- Helm 차트 및 애드온 재설정 필요 여부 확인
- helm list helm upgrade <release-name> <chart-name> --namespace <namespace>
3. EKS 업그레이드 Best Practice
- Blue/Green 방식으로 업그레이드하여 다운타임 최소화
- 자동 백업 및 스냅샷 생성 후 진행 (ETCD 백업 등)
- 애드온(CoreDNS, VPC CNI, kube-proxy) 및 Helm 차트 최신 버전 유지
- 자동화된 테스트 및 Canary 배포 적용
4. 마무리: EKS 업그레이드 핵심 요약
✔ 사전 점검: 애플리케이션 및 애드온 호환성 확인
✔ 컨트롤 플레인 업그레이드: aws eks update-cluster-version
✔ 노드 그룹 업그레이드: 기존 노드 대신 새 노드 그룹 생성 후 교체
✔ 업그레이드 후 검증: 모든 서비스 정상 작동 확인
EKS 업그레이드는 신중하게 진행해야 하며, 사전 테스트 및 점진적 업그레이드가 중요합니다. 🚀
반응형