January 2026
Beginner to intermediate
392 pages
5h 51m
Korean
다음 명령어를 사용하여 클러스터 노드를 나열하십시오. 다음과 같은 내용이 표시되어야 합니다:
$ kubectl get nodes NAME STATUS ROLES AGE VERSION minikube Ready control-plane 2m20s v1.32.2 minikube-m02 Ready <none> 2m10s v1.32.2 minikube-m03 Ready <none> 2m3s v1.32.2 minikube-m04 Ready <none> 116s v1.32.2
다음 명령어를 사용하여 포드를 스케줄링하세요:
$ kubectl run nginx --image=nginx:1.27.4-alpine
표시된 대로 Pod가 실행 중인 노드를 확인할 수 있습니다. Pod는 minikube-m02라는 노드에서 실행 중입니다:
$ kubectl get pod nginx -o jsonpath='{.spec.nodeName}'
minikube-m02
kubectl drain 명령어를 사용하여 노드에서 모든 포드를 제거합니다. 여기서 노드 이름은 minikube-m02입니다. DaemonSet으로 관리되지 않는 포드만 삭제하려면 --ignore-daemonsets 플래그를, 컨트롤러가 없는 포드도 삭제하려면 --force 플래그를 사용해야 합니다:
$ kubectl drain minikube-m02 --ignore-daemonsets --force evicting pod default/nginx pod/nginx evicted node/minikube-m02 drained
이 예제 연습의 해결책은 많은 수동 단계를 필요로 합니다. 다음 명령어들은 출력을 표시하지 않습니다.
Vagrant를 사용하여 제어 평면 노드에 대화형 셸을 엽니다:
$ vagrant ssh kube-control-plane
kubeadm을 버전 1.32.2로 업그레이드하고 적용합니다:
$ sudo apt-mark unhold kubeadm && sudo apt-get update && sudo apt-get \ install -y kubeadm=1.32.2-1.1 && sudo apt-mark hold kubeadm $ sudo kubeadm upgrade apply v1.32.2
노드를 드레인하고, kubelet 및 kubectl을 업그레이드한 후 kubelet을 재시작하고 노드의 언코딩을 해제하세요:
$ kubectl drain kube-control-plane --ignore-daemonsets $ sudo apt-get update && sudo apt-get install -y \ --allow-change-held-packages kubelet=1.32.2-1.1 kubectl=1.32.2-1.1 $ sudo systemctl daemon-reload $ sudo systemctl restart kubelet $ kubectl uncordon kube-control-plane
Read now
Unlock full access