Information in this document may be out of date
This document has an older update date than the original, so the information it contains may be out of date. If you're able to read English, see the English version for the most up-to-date information: Upgrading Windows nodes
윈도우 노드 업그레이드
Kubernetes v1.18 [beta]
이 페이지는 kubeadm으로 생성된 윈도우 노드를 업그레이드하는 방법을 설명한다.
시작하기 전에
쿠버네티스 클러스터가 필요하고, kubectl 커맨드-라인 툴이 클러스터와 통신할 수 있도록 설정되어 있어야 한다. 이 튜토리얼은 컨트롤 플레인 호스트가 아닌 노드가 적어도 2개 포함된 클러스터에서 실행하는 것을 추천한다. 만약, 아직 클러스터를 가지고 있지 않다면, minikube를 사용해서 생성하거나 다음 쿠버네티스 플레이그라운드 중 하나를 사용할 수 있다.
쿠버네티스 서버의 버전은 다음과 같거나 더 높아야 함. 버전: 1.17. 버전 확인을 위해서, 다음 커맨드를 실행kubectl version
.
- 남은 kubeadm 클러스터를 업그레이드하는 프로세스에 익숙해져야 한다. 윈도우 노드를 업그레이드하기 전에 컨트롤 플레인 노드를 업그레이드해야 한다.
워커 노드 업그레이드
kubeadm 업그레이드
-
윈도우 노드에서, kubeadm을 업그레이드한다.
# 1.31.0을 사용 중인 쿠버네티스 버전으로 변경한다. curl.exe -Lo <kubeadm.exe을 저장할 경로> "https://dl.k8s.io/v1.31.0/bin/windows/amd64/kubeadm.exe"
노드 드레인
-
쿠버네티스 API에 접근할 수 있는 머신에서, 스케줄 불가능한 것으로 표시하고 워크로드를 축출하여 유지 보수할 노드를 준비한다.
# <node-to-drain>을 드레이닝하려는 노드 이름으로 바꾼다 kubectl drain <node-to-drain> --ignore-daemonsets
다음과 비슷한 출력이 표시되어야 한다.
node/ip-172-31-85-18 cordoned node/ip-172-31-85-18 drained
kubelet 구성 업그레이드
-
윈도우 노드에서, 다음의 명령을 호출하여 새 kubelet 구성을 동기화한다.
kubeadm upgrade node
kubelet 및 kube-proxy 업그레이드
-
윈도우 노드에서, kubelet을 업그레이드하고 다시 시작한다.
stop-service kubelet curl.exe -Lo <kubelet.exe을 저장할 경로> "https://dl.k8s.io/v1.31.0/bin/windows/amd64/kubelet.exe" restart-service kubelet
-
윈도우 노드에서, kube-proxy를 업그레이드하고 다시 시작한다.
stop-service kube-proxy curl.exe -Lo <kube-proxy.exe을 저장할 경로> "https://dl.k8s.io/v1.31.0/bin/windows/amd64/kube-proxy.exe" restart-service kube-proxy
참고:
만약 kube-proxy를 윈도우 서비스로 실행중이지 않고 파드 내의 HostProcess 컨테이너에서 실행중이라면, 새로운 버전의 kube-proxy 매니페스트를 적용함으로써 업그레이드할 수 있다.노드에 적용된 cordon 해제
-
쿠버네티스 API에 접근할 수 있는 머신에서, 스케줄 가능으로 표시하여 노드를 다시 온라인으로 가져온다.
# <node-to-drain>을 노드의 이름으로 바꾼다 kubectl uncordon <node-to-drain>