Killer Shell CKA - Cluster Upgrade

Jmnote (토론 | 기여)님의 2025년 10월 28일 (화) 21:13 판 (새 문서: ==개요== ;Killer Shell CKA - Cluster Upgrade * https://killercoda.com/killer-shell-cka/scenario/cluster-upgrade * 목표 ** controlplane 노드를 더 최신 패치 버전으로...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

1 개요[ | ]

Killer Shell CKA - Cluster Upgrade

2 사전 확인[ | ]

controlplane:~$ kubectl get nodes
NAME           STATUS   ROLES           AGE   VERSION
controlplane   Ready    control-plane   8d    v1.33.2
node01         Ready    <none>          8d    v1.33.2

controlplane:~$ kubectl version
Client Version: v1.33.2
Kustomize Version: v5.6.0
Server Version: v1.33.2

controlplane:~$ kubeadm version -oshort
v1.33.2

3 컨트롤플레인 업그레이드[ | ]

1) 업그레이드 계획/가능 버전 확인

controlplane:~$ kubeadm upgrade plan
...
Components that must be upgraded manually after you have upgraded the control plane with 'kubeadm upgrade apply':
COMPONENT   NODE           CURRENT   TARGET
kubelet     controlplane   v1.33.2   v1.33.5
kubelet     node01         v1.33.2   v1.33.5

Upgrade to the latest version in the v1.33 series:

COMPONENT                 NODE           CURRENT    TARGET
kube-apiserver            controlplane   v1.33.2    v1.33.5
kube-controller-manager   controlplane   v1.33.2    v1.33.5
kube-scheduler            controlplane   v1.33.2    v1.33.5
kube-proxy                               1.33.2     v1.33.5
CoreDNS                                  v1.12.0    v1.12.0
etcd                      controlplane   3.5.21-0   3.5.21-0

You can now apply the upgrade by executing the following command:

        kubeadm upgrade apply v1.33.5
...

controlplane:~$ apt-cache show kubeadm | grep Version
Version: 1.33.5-1.1
Version: 1.33.4-1.1
Version: 1.33.3-1.1
Version: 1.33.2-1.1
Version: 1.33.1-1.1
Version: 1.33.0-1.1

2) kubeadm 패키지 업그레이드(예: 1.33.5-1.1)

controlplane:~$ apt-get install -y kubeadm=1.33.5-1.1

3) 컨트롤플레인 업그레이드 적용

controlplane:~$ kubeadm upgrade apply v1.33.5

4) kubectl, kubelet 업그레이드 및 kubelet 재시작

controlplane:~$ apt-get install -y kubectl=1.33.5-1.1 kubelet=1.33.5-1.1
controlplane:~$ systemctl restart kubelet

5) 확인

controlplane:~$ kubectl get nodes
controlplane:~$ kubectl version --short

4 워커 노드 업그레이드(node01)[ | ]

1) node01 접속 및 kubeadm 업그레이드

controlplane:~$ ssh node01
node01:~$ apt-get install -y kubeadm=1.33.5-1.1

2) 워커 노드 업그레이드 실행

node01:~$ kubeadm upgrade node

3) kubelet 업그레이드 및 재시작

node01:~$ apt-get install -y kubelet=1.33.5-1.1
node01:~$ systemctl restart kubelet
node01:~$ exit

4) 클러스터에서 확인

controlplane:~$ kubectl get nodes -o wide
controlplane:~$ kubectl version --short

5 권장(옵션): 무중단/안전 업그레이드 절차[ | ]

  • 워커 노드는 다음 순서를 권장
    • 해당 노드 드레인: kubectl drain node01 --ignore-daemonsets --delete-emptydir-data
    • 업그레이드(kubeadm/kubelet) 후
    • 언코돈: kubectl uncordon node01
  • 컨트롤플레인은 단일 노드 환경에서는 드레인을 생략하기도 함(시나리오 지시에 따름)

6 트러블슈팅/주의[ | ]

  • 조인 토큰 필요 시 재발급: kubeadm token create --print-join-command
  • apt 패키지 버전 고정 이슈가 있으면 apt-mark unhold kubeadm kubelet kubectl 후 설치, 완료 후 apt-mark hold 재설정
  • kubelet 로그: journalctl -u kubelet -f
  • CNI 문제로 CoreDNS가 Pending일 수 있음(네트워크 플러그인 확인)

7 검증[ | ]

controlplane:~$ kubectl get nodes
NAME           STATUS   ROLES           AGE   VERSION
controlplane   Ready    control-plane   42m   v1.33.5
node01         Ready    <none>          21m   v1.33.5

controlplane:~$ kubectl version
Client Version: v1.33.5
Kustomize Version: v5.6.0
Server Version: v1.33.5

8 같이 보기[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}