앞의 포스트에서 쿠버네티스 클러스터의 컨트롤 플레인에 해당하는 마스터 노드의 업그레이드 과정을 기록했다. 이제 워커 노드의 업그레이드 과정을 포스팅한다.
마스터 노드의 업그레이드와 동일한 부분
노드 운영체제 버전과 쿠버네티스의 버전을 확인하는 과정은 당연히 동일하다. 그리고 쿠버네티스 APT 리포지토리를 업그레이드하고자 하는 쿠버네티스의 버전 경로로 수정하는 것도 동일하다.
그리고 apt update 명령을 통해 APT 리포지토리에서 최신 패키지 목록을 다운로드 하는 것도 동일하게 진행해주면 된다. 마지막으로 kubeadm 패키지를 업그레이드 하는 것도 동일한 과정을 진행하고 kubeadm의 버전을 확인하면 된다.
kubeadm 패키지를 업그레이드 한 다음부터 마스터 노드의 업그레이드와 다른 과정이 진행된다.
쿠버네티스 콤포넌트 업그레이드
워커 노드에서는 다음의 명령으로 쿠버네티스의 콤포넌트 업그레이드를 진행한다. 마스터 노드에서는 노드 이름에 마스터 노드의 이름을 지정했지만 워커 노드에서는 그냥 node 라고 입력해주면 된다.
$ sudo kubeadm upgrade node

마스터 노드의 경우 kubeadm 명령으로 업그레이드할 콤포넌트가 많아 조금 시간이 걸렸지만 워커 노드의 경우 금방 마무리 된다.
이제 마스터 노드와 마찬가지로 가장 중요한 쿠버네티스의 응용프로그램 가상화 엔진인 kubelet 과 kubectl을 업그레이드 해야한다.
쿠버네티스 가상화 엔진과 제어명령 업그레이드 (kubelet, kubectl)
워커 노드의 가상화 엔진을 업그레이드 하기 위해서는 마스터 노드에서 업그레이드 할 워커 노드를 유지보수 모드로 전환해야 한다. (drain)
마스터 노드에서 다음과 같이 업그레이드 할 워커 노드를 드레인(drain) 한다.
$ kubectl drain k8s-worker-a --ignore-daemonsets

유지보수 모드 전환에도 조금 시간이 걸린다. 전환이 되면 다음 명령으로 kubelet과 kubectl을 업그레이드 한다.
$ sudo apt-mark unhold kubelet kubectl && \
sudo apt-get update && \
sudo apt-get install -y kubelet=1.29.15-1.1 kubectl=1.29.15-1.1 && \
sudo apt-mark hold kubelet kubectl

잠시 기다리면 다음과 같이 가상화 엔진의 업그레이드가 완료된다.

쿠버네티스 워커노드 재기동 및 유지보수 모드 해제
다음의 명령으로 쿠버네티스 워커노드 서비스를 재기동 한다.
$ sudo systemctl daemon-reload
$ sudo systemctl restart kubelet
그리고 마스터 노드에서 워커 노드의 유지보수 모드를 해제한다.

워커 노드 업그레이드 확인
마스터 노드에서 다음 명령으로 워커노드의 버전이 업그레이드 되었음을 확인할 수 있다.
$ kubectl get nodes

이제 하나 남은 워커 노드도 동일한 과정을 거쳐 업그레이드 하면 된다.
#쿠버네티스 #워커노드 #업그레이드 #kubeadm
답글 남기기