업데이트 전 체크리스트
1) 현재 Kubernetes 버전 확인
kubectl version 또는 aws eks describe-cluster --name <cluster-name> 으로 확인하고 EKS는 최신 두 개의 버전만 표준 지원하기 때문에 최신 안정 버전으로 유지가 필요하다
2) EKS 지원 버전 확인
https://docs.aws.amazon.com/eks/latest/userguide/kubernetes-versions.html
Understand the Kubernetes version lifecycle on EKS - Amazon EKS
If you update the control plane, you must still update the Fargate nodes yourself. To update Fargate nodes, delete the Fargate Pod represented by the node and redeploy the Pod. The new Pod is deployed with a kubelet version that’s the same version as you
docs.aws.amazon.com
에서 확인 가능하고 현 시점(25.04.28) 1.32 버전 까지 지원한다.
3) AWS SDK 와 각종 라이브러리 호환성 검토
cli, terraform 등 최신 버전으로 업그레이드 하거나 호환성을 검토한다
3) 애플리케이션 및 애드온 호환성 검토
ingress controller, cni plugin 등 필수 애드온 버전의 업그레이드 및 호환성 검토
kubectl describe, kubectl logs 로 애플리케이션 이벤트 점검
PDB 값 0으로 수정
# PDB 목록 확인
kubectl get pdb -A
# PDB MIN AVAILABLE 값 0으로 수정
kubectl edit pdb <NAME> -n <NAMESPACE>
Control Plane 업그레이드
1) EKS 클러스터 버전 업그레이드
aws eks update-cluster-version --name <cluster-name> --kubernetes-version <new-version>
# 클러스터 상태 확인
aws eks describe-cluster --name <cluster-name> --query 'cluster.version'
2) EKS 애드온 업데이트
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
Worker Node 업그레이드
롤링 업데이트
1) 노드를 drain 하여 Pod 이동
kubectl drain <Node Name> --ignore-daemonsets
2) kubeadm 업그레이드
sudo kubeadm upgrade node
3) kubelet, lubectl 업그레이드
sudo apt-get update && sudo apt-get install -y kubelet kubectl
4) kubelet 재시작
sudo systemctl restart kubelet
5) Node 활성화
kubectl uncordon <Node Name>
업그레이드 후 체크리스트
애플리케이션 정상 동작 확인
- 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>
'Docker & Kubenetes' 카테고리의 다른 글
Kubernetes 1.33 주요 변경 사항 (0) | 2025.05.07 |
---|---|
[k8s] Service Account (0) | 2025.03.12 |
가상화와 컨테이너 (0) | 2025.03.10 |
kubectl 명령어 정리 (0) | 2025.03.07 |
Kubernetes 버전 업그레이드 (1.30) - 기존 클러스터 환경 삭제 (0) | 2025.03.04 |