728x90
반응형
kubectl drain 노드명
- drain 명령어를 사용하게 되면 해당 노드의 pod 를 다른 노드로 옮긴다.
- 실제로는 pod 를 옮기는게 아니라 다른 노드에 재 생성한다.
- 데몬셋을 무시하고 진행할 경우에는 --ignore-daemonsets 옵션을 사용한다.
아래와 같이 myserver-002와 myserver-003 에 pod 가 각각 deploy 되어있다.
root@myserver-001:~# kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
rollout-nginx-74695fdcd-5trw5 1/1 Running 0 3m55s 10.32.0.2 myserver-002 <none> <none>
rollout-nginx-74695fdcd-jkw2d 1/1 Running 0 3m55s 10.47.0.2 myserver-003 <none> <none>
rollout-nginx-74695fdcd-tp75z 1/1 Running 0 3m55s 10.47.0.1 myserver-003 <none> <none>
이 상황에서 myserver-003 을 drain 을 시켜보면 다음과 같이 변경된다.
root@myserver-001:~# kubectl get nodes
NAME STATUS ROLES AGE VERSION
myserver-001 Ready control-plane,master 2d8h v1.22.3
myserver-002 Ready <none> 2d8h v1.22.3
myserver-003 Ready,SchedulingDisabled <none> 4h23m v1.22.3
root@myserver-001:~# kubectl get po -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
rollout-nginx-74695fdcd-5trw5 1/1 Running 0 4m45s 10.32.0.2 myserver-002 <none> <none>
rollout-nginx-74695fdcd-8c55f 1/1 Running 0 11s 10.32.0.3 myserver-002 <none> <none>
rollout-nginx-74695fdcd-h6txz 1/1 Running 0 11s 10.32.0.4 myserver-002 <none> <none>
기존에 있던 rollout-nginx-74695fdcd-5trw5 파드를 제외하고 나머지 pod 는 이름을 보면 새로 만들어진것이다. Age 도 11s 로 나온다. 따라서 위에서 말한것처럼 drain 을 했을 경우 pod 를 옮기는게 아니라 삭제하고 새로 만들게 된다.
728x90
반응형
'Development > Docker&Kubernetes' 카테고리의 다른 글
[Docker] docker container ip 확인방법 (0) | 2021.11.15 |
---|---|
[Docker] history 명령어 (0) | 2021.11.12 |
taint, cordon 의 차이점은? (0) | 2021.11.04 |
[K8S] static pod 에 대해서 몇가지. (0) | 2021.02.04 |
[K8S] apiserver 에 SAN(Subject Alternative Name) 추가 (0) | 2021.01.05 |