리눅스 노드 업그레이드
이 페이지는 kubeadm으로 생성된 리눅스 노드를 업그레이드하는 방법을 설명한다.
시작하기 전에
쿠버네티스 클러스터가 필요하고, kubectl 커맨드-라인 툴이 클러스터와 통신할 수 있도록 설정되어 있어야 한다. 이 튜토리얼은 컨트롤 플레인 호스트가 아닌 노드가 적어도 2개 포함된 클러스터에서 실행하는 것을 추천한다. 만약, 아직 클러스터를 가지고 있지 않다면, minikube를 사용해서 생성하거나 다음 쿠버네티스 플레이그라운드 중 하나를 사용할 수 있다.
버전 확인을 위해서, 다음 커맨드를 실행kubectl version
.- 남은 kubeadm 클러스터를 업그레이드하는 프로세스에 익숙해져야 한다. 리눅스 노드를 업그레이드하기 전에 컨트롤 플레인 노드를 업그레이드해야 한다.
워커 노드 업그레이드
kubeadm 업그레이드
kubeadm을 업그레이드한다.
# 1.32.x-00 에서 x 에 최신 버전을 넣는다.
apt-mark unhold kubeadm && \
apt-get update && apt-get install -y kubeadm=1.32.x-00 && \
apt-mark hold kubeadm
# 1.32.x-00 에서 x 에 최신 버전을 넣는다.
yum install -y kubeadm-1.32.x-0 --disableexcludes=kubernetes
"kubeadm upgrade" 호출
워커 노드의 경우 로컬 kubelet 구성을 업그레이드한다.
sudo kubeadm upgrade node
노드 드레인
노드를 스케줄 불가능한 것으로 표시하고 워크로드를 축출하여 유지 보수할 노드를 준비한다.
# <node-to-drain> 에 드레인하려는 노드의 이름을 넣는다. kubectl drain <node-to-drain> --ignore-daemonsets
kubelet과 kubectl 업그레이드
kubelet과 kubectl 업그레이드.
# 1.32.x-00 에서 x 에 최신 버전을 넣는다. apt-mark unhold kubelet kubectl && \ apt-get update && apt-get install -y kubelet=1.32.x-00 kubectl=1.32.x-00 && \ apt-mark hold kubelet kubectl
# 1.32.x-00 에서 x 에 최신 버전을 넣는다. yum install -y kubelet-1.32.x-0 kubectl-1.32.x-0 --disableexcludes=kubernetes
kubelet을 재시작한다.
sudo systemctl daemon-reload sudo systemctl restart kubelet
노드에 적용된 cordon 해제
스케줄 가능으로 표시하여 노드를 다시 온라인으로 가져온다.
# <node-to-uncordon> 에 노드의 이름을 넣는다. kubectl uncordon <node-to-uncordon>
다음 내용
- 윈도우 노드 업그레이드하는 방법을 알아본다.
최종 수정 December 15, 2024 at 6:24 PM PST: Merge pull request #49087 from Arhell/es-link (2c4497f)