쿠버네티스 클러스터 버전 업그레이드 작업
업그레이드 순서
- Control-Plane 노드 업그레이드
- (Control-Plane Node가 2개 이상의 경우) 다른 Control-Plane 노드 업그레이드
- WorkerNodes 업그레이드
필요사항
모든 노드가 Ready 상태
Swap 비활성화
Node Draining 필요.
(Container Spec hash 값이 변경되었으므로, 모든 컨테이너(pod)는 업그레이드후 재시작 됩니다.
따라서, 사전에 Node Drain 을 진행해두면 영향도를 최소화 할 수 있습니다. )
업그레이드 전에 릴리즈노트를 자세히 확인이 필요.
(업그레이드 되면, 일부 사용하지 못하는 command들이 나올 수 있다. )
업그레이드 할 버전 결정.
# yum list --showduplicates kubeadm --disableexcludes=kubernetes
# 목록에서 최신 버전을 찾는다. (ex. 1.28.x-0 등..)
# 나는 1.27 > 1.28으로 업그레이드
---
[Control-Plane 업그레이드]
Kubernetes의 모든 Control Plane Node에 작업을 진행하며, 1대씩 작업.
kubeadm 업그레이드
# yum install -y kubeadm-1.28.7* --disableexcludes=kubernetes
# kubeadm version
# kubeadm upgrade plan
(이 명령은 클러스터를 업그레이드 할 수 있는지를 확인하고 업그레이드 할 수 있는 버전을 가져옵니다. )
# kubeadm upgrade apply v1.28.7 --certificate-renewal=true --v=5
[upgrade/successful] SUCCESS! Your cluster was upgraded to "v1.28.7". Enjoy! [upgrade/kubelet] Now that your control plane is upgraded, please proceed with upgrading your kubelets if you haven't already done so. |
※ 참고 # kubeadm upgrade 명령은 인증서 자동 갱신한다. 만약 인증서 갱신을 하지 않으려면 --certificate-renewal=false 플래그를 사용해야 한다. |
kubelet, kubectl 업그레이드
# yum install -y kubelet-1.28.7* kubectl-1.28.7* --disableexcludes=kubernetes
업그레이드 이후 데몬을 재기동하여, 버전이 정상적으로 업그레이드 되었는지 확인할 수 있습니다.
# systemctl daemon-reload
# systemctl restart kubelet
# kubectl get nodes
[WorkerNodes Upgrade]
모든 Worker 노드에서 kubeadm 부터 업그레이드.
리소스에 여유가 되는 WorkerNode 를 동시에 진행해도 무관합니다.
# yum install -y kubeadm-1.28.7* --disableexcludes=kubernetes
# sudo kubeadm upgrade node
업그레이드 대상 WorkerNodes는 사전에 Drain을 해둔다면, 업그레이드에 대한 영향을 최소화 할 수 있습니다.
# kubectl drain <node-to-drain> --ignore-daemonsets --delete-local-data
Drain 작업 완료후, kubelet, kubectl 업그레이드
# yum install -y kubelet-1.28.7* kubectl-1.28.7* --disableexcludes=kubernetes
# systemctl daemon-reload
# systemctl restart kubelet
정상적으로 업그레이드 완료되었다면, uncordon을 하여 컨테이너를 스케줄링 할 수 있는 상태로 복원합니다.
# kubectl uncordon <node-to-drain>
업그레이드 작업 완료!
---
Q.메이저 버전의 경우 1단계씩 진행해야 하는가?? (1.27 > 1.30으로 가려면 3번 업그레이드가 필요한가?)
A. Kubernetes뿐만 아니라, IT업종에 있는 모든 업그레이드 작업에 있어서 Major버전 업그레이드는 1단계씩 올리는 방법은 권고 합니다.
보통 다음 버전이 나올때는, 바로 이전버전에서 업그레이드하는데 문제가 없도록 주의를 기울이는데 가장 큰 중점을 두기때문에, 권고사항은 1단계씩 올리기를 권고드립니다.
'IT Knowledge > Kubernetes' 카테고리의 다른 글
Kubernetes HostAliases로 Pod에 /etc/hosts 항목 추가하기 (0) | 2025.03.24 |
---|---|
Kubernetes JVM HEAP Size(Settings) (0) | 2025.03.24 |
Kubernetes Garbage Collection(용량정리) (0) | 2025.03.20 |
Kubernetes API서버 인증서에 SANs 추가 (0) | 2024.07.08 |
Kubernetes 리소스 CPU/MEM (Request / Limit) (0) | 2024.07.04 |
댓글