반응형
2023.05.17
★ node 갯수 확인
controlplane ~ ➜ kubectl get nodes
NAME STATUS ROLES AGE VERSION
controlplane Ready control-plane 17m v1.26.0
node01 Ready <none> 17m v1.26.0
controlplane ~ ➜
★ namespace가 default인 deploy를 찾아라
controlplane ~ ➜ kubectl get deployments.apps --namespace default
NAME READY UP-TO-DATE AVAILABLE AGE
blue 3/3 3 3 33s
controlplane ~ ➜
★ node관리를 위해 node01을 제거해야 한다. 애플리케이션의 노드를 비우고 예약 불가능으로 표시해주세요.
controlplane ~ ➜ kubectl drain node01 --ignore-daemonsets
node/node01 cordoned
Warning: ignoring DaemonSet-managed Pods: kube-flannel/kube-flannel-ds-bjcqz, kube-system/kube-proxy-l6ln5
evicting pod default/blue-987f68cb5-jt66v
evicting pod default/blue-987f68cb5-hw99q
pod/blue-987f68cb5-hw99q evicted
pod/blue-987f68cb5-jt66v evicted
node/node01 drained
controlplane ~ ➜
★ node관리 작업이 끝났다. 노드 node01을 다시 스케줄링할 수 있도록 구성
controlplane ~ ➜ kubectl uncordon node01
node/node01 uncordoned
controlplane ~ ➜
★ uncordon으로 노드 node01을 스케줄링 했지만 pods가 생성되지 않습니다. 원인은?
-> 노드에서 uncordon 명령을 실행해도 노드의 파드가 자동으로 스케줄링되지는 않습니다.
-> 새 파드가 생성되면 node01에 배치됩니다.
★ node01을 다시 drain 상태로 만들려고하는데 에러가 발생한다. 원인은?
-> node01에 pod가 예약된 것을 볼 수 있다.
-> 해당 경우 drain 명령은 작동하지 않는다. 노드를 강제로 drain하려면 이제 --force 옵션을 사용해야 한다
controlplane ~ ➜ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
blue-987f68cb5-gbbq8 1/1 Running 0 11m 10.244.0.5 controlplane <none> <none>
blue-987f68cb5-gwvqs 1/1 Running 0 11m 10.244.0.4 controlplane <none> <none>
blue-987f68cb5-njps9 1/1 Running 0 11m 10.244.0.6 controlplane <none> <none>
hr-app 1/1 Running 0 3m29s 10.244.1.4 node01 <none> <none>
controlplane ~ ➜
★ node01 강제로 drain 했을 경우 hr-app pod는 어떻게 될까?
-> 사라져 버린다 ~
controlplane ~ ➜ kubectl drain node01 --ignore-daemonsets --force
node/node01 already cordoned
Warning: deleting Pods that declare no controller: default/hr-app; ignoring DaemonSet-managed Pods: kube-flannel/kube-flannel-ds-xhg7x, kube-system/kube-proxy-96vtg
evicting pod default/hr-app
pod/hr-app evicted
node/node01 drained
controlplane ~ ➜
controlplane ~ ➜ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
blue-987f68cb5-gbbq8 1/1 Running 0 15m 10.244.0.5 controlplane <none> <none>
blue-987f68cb5-gwvqs 1/1 Running 0 15m 10.244.0.4 controlplane <none> <none>
blue-987f68cb5-njps9 1/1 Running 0 15m 10.244.0.6 controlplane <none> <none>
controlplane ~ ➜
★ hr-app pod는 굉장히 중요하므로 복구한다음 위험한 node01 노드에 배포되지 않게 설정해야합니다.
controlplane ~ ➜ kubectl get pods -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
blue-987f68cb5-gbbq8 1/1 Running 0 16m 10.244.0.5 controlplane <none> <none>
blue-987f68cb5-gwvqs 1/1 Running 0 16m 10.244.0.4 controlplane <none> <none>
blue-987f68cb5-njps9 1/1 Running 0 16m 10.244.0.6 controlplane <none> <none>
hr-app-66c4c9c67f-78hm7 1/1 Running 0 47s 10.244.1.5 node01 <none> <none>
controlplane ~ ➜
controlplane ~ ➜ kubectl cordon node01
node/node01 cordoned
controlplane ~ ➜
반응형
'Kubernetes > Kubernetes Exam' 카테고리의 다른 글
[K8s] CKA 취득 연습문제#6 (csr approve, reject) (0) | 2023.05.30 |
---|---|
[K8s] CKA 취득 연습문제#5 (etcd, apiserver 인증서) (0) | 2023.05.29 |
[K8s] CKA 취득 연습문제#4 (etcd backup, recovery) (0) | 2023.05.24 |
[K8s] CKA 취득 연습문제#3 (etcd backup, snapshot) (0) | 2023.05.20 |
[K8s] CKA 취득 연습문제#2 (node upgrade) (0) | 2023.05.17 |