Linux 노드 업그레이드하기
Linux 노드 업그레이드하기 (Upgrading Linux nodes)
이 페이지는 kubeadm으로 생성한 Linux 워커 노드를 업그레이드하는 방법을 설명해요.
출처: 문서
본문
시작하기 전에
모든 노드에 대한 셸 접근이 필요하고, kubectl 명령줄 도구가 클러스터와 통신하도록 설정돼 있어야 해요. 이 튜토리얼은 제어 플레인 호스트 역할을 하지 않는 노드가 최소 두 개 있는 클러스터에서 실행하는 것을 권장해요. 버전을 확인하려면 kubectl version을 입력하세요.
- kubeadm 클러스터의 나머지를 업그레이드하는 과정을 숙지하세요. Linux 워커 노드를 업그레이드하기 전에 제어 플레인 노드를 업그레이드하려고 할 거예요.
패키지 저장소 변경하기
커뮤니티 소유 패키지 저장소(pkgs.k8s.io)를 사용하고 있다면, 원하는 쿠버네티스 마이너 릴리스에 대한 패키지 저장소를 활성화해야 해요. 이는 '쿠버네티스 패키지 저장소 변경' 문서에 설명되어 있어요.
워커 노드 업그레이드하기
kubeadm과 kubectl 업그레이드
kubeadm과 kubectl을 업그레이드하세요.
참고:
- Ubuntu, Debian 또는 HypriotOS / CentOS, RHEL 또는 Fedora
Ubuntu, Debian 또는 HypriotOS:
# x in 1.37.x-* 를 최신 패치 버전으로 교체하세요
sudo apt-mark unhold kubeadm kubectl && \
sudo apt-get update && sudo apt-get install -y kubeadm='1.37.x-*' kubectl='1.37.x-*' && \
sudo apt-mark hold kubeadm kubectl
CentOS, RHEL 또는 Fedora:
DNF4(사용 Fedora < 41, RHEL/CentOS < 10) 시스템의 경우:
# x in 1.37.x-* 를 최신 패치 버전으로 교체하세요
sudo dnf install -y kubeadm-'1.37.x-*' kubectl-'1.37.x-*' --disableexcludes=kubernetes
DNF5 시스템의 경우:
# x in 1.37.x-* 를 최신 패치 버전으로 교체하세요
sudo dnf install -y kubeadm-'1.37.x-*' kubectl-'1.37.x-*' --setopt=disable_excludes=kubernetes
"kubeadm upgrade" 호출
워커 노드의 경우 이 명령은 로컬 kubelet 구성을 업그레이드해요.
sudo kubeadm upgrade node
노드 드레인하기
노드를 스케줄 불가능으로 표시하고 워크로드를 축출(evict)해 유지보수를 준비하세요.
# 이 명령은 제어 플레인 노드에서 실행하세요
# <node-to-drain> 을 드레인하는 노드의 이름으로 교체하세요
kubectl drain <node-to-drain> --ignore-daemonsets
kubelet 업그레이드
kubelet을 업그레이드하세요.
Ubuntu, Debian 또는 HypriotOS:
# x in 1.37.x-* 를 최신 패치 버전으로 교체하세요
sudo apt-mark unhold kubelet && \
sudo apt-get update && sudo apt-get install -y kubelet='1.37.x-*' && \
sudo apt-mark hold kubelet
CentOS, RHEL 또는 Fedora:
DNF4(Fedora < 41, RHEL/CentOS < 10) 시스템의 경우:
# x in 1.37.x-* 를 최신 패치 버전으로 교체하세요
sudo dnf install -y kubelet-'1.37.x-*' --disableexcludes=kubernetes
DNF5 시스템의 경우:
# x in 1.37.x-* 를 최신 패치 버전으로 교체하세요
sudo dnf install -y kubelet-'1.37.x-*' --setopt=disable_excludes=kubernetes
kubelet을 재시작하세요.
sudo systemctl daemon-reload
sudo systemctl restart kubelet
노드 uncordon하기
노드를 스케줄 가능으로 표시해 다시 온라인으로 가져오세요.
# 이 명령은 제어 플레인 노드에서 실행하세요
# <node-to-uncordon> 을 노드의 이름으로 교체하세요
kubectl uncordon <node-to-uncordon>
더 알아보기 (Learn more)
- Windows 노드 업그레이드 방법을 확인하세요.