1 개요[ | ]
- kubectl drain
- Drain my-node in preparation for maintenance
2 실습[ | ]
Console
Copy
master:~$ kubectl create ns sock-shop
namespace/sock-shop created
Console
Copy
master:~$ kubectl apply -f https://raw.githubusercontent.com/microservices-demo/microservices-demo/master/deploy/kubernetes/complete-demo.yaml
deployment.extensions/carts-db created
service/carts-db created
deployment.extensions/carts created
service/carts created
deployment.extensions/catalogue-db created
service/catalogue-db created
...
Console
Copy
master:~$ kubectl get pod -n sock-shop -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
carts-d646975bf-g99h4 1/1 Running 0 41s 192.168.235.130 worker1 <none> <none>
carts-db-f5677f464-wgdhr 1/1 Running 0 41s 192.168.235.129 worker1 <none> <none>
catalogue-7db746bc5b-jbclg 1/1 Running 0 41s 192.168.189.65 worker2 <none> <none>
catalogue-db-55965799b9-lksdv 1/1 Running 0 41s 192.168.235.131 worker1 <none> <none>
front-end-55b99f8c59-245mg 1/1 Running 0 41s 192.168.235.132 worker1 <none> <none>
orders-986494c98-89f6t 1/1 Running 0 40s 192.168.235.136 worker1 <none> <none>
orders-db-78568b65bb-jqrv6 1/1 Running 0 40s 192.168.189.66 worker2 <none> <none>
payment-7d4d4bf9b4-vl582 1/1 Running 0 40s 192.168.235.133 worker1 <none> <none>
queue-master-6b5b5c7658-ht4ts 1/1 Running 0 40s 192.168.235.135 worker1 <none> <none>
rabbitmq-f984b75c4-7wmqq 1/1 Running 0 40s 192.168.235.134 worker1 <none> <none>
shipping-7b8865d964-5p2zb 1/1 Running 0 40s 192.168.235.138 worker1 <none> <none>
user-54555fbb7-hfcl2 1/1 Running 0 39s 192.168.189.67 worker2 <none> <none>
user-db-7b9846c559-gxhhw 1/1 Running 0 40s 192.168.235.137 worker1 <none> <none>
Console
Copy
master:~$ kubectl get no
NAME STATUS ROLES AGE VERSION
master Ready master 16m v1.14.2
worker1 Ready <none> 11m v1.14.2
worker2 Ready <none> 11m v1.14.2
Console
Copy
master:~$ kubectl describe nodes | egrep -i ^'name|taint'
Name: master
Taints: node-role.kubernetes.io/master:NoSchedule
Name: worker1
Taints: <none>
Name: worker2
Taints: <none>
Console
Copy
master:~$ kubectl drain worker1
node/worker1 cordoned
error: unable to drain node "worker1", aborting command...
There are pending nodes to be drained:
worker1
cannot delete DaemonSet-managed Pods (use --ignore-daemonsets to ignore): kube-system/calico-node-qmvsf, kube-system/kube-proxy-z4smj
cannot delete Pods with local storage (use --delete-local-data to override): sock-shop/carts-d646975bf-g99h4, sock-shop/carts-db-f5677f464-wgdhr, sock-shop/orders-986494c98-89f6t, sock-shop/shipping-7b8865d964-5p2zb, sock-shop/user-db-7b9846c559-gxhhw
Console
Copy
master:~$ kubectl get no
NAME STATUS ROLES AGE VERSION
master Ready master 22h v1.14.2
worker1 Ready,SchedulingDisabled <none> 22h v1.14.2
worker2 Ready <none> 4h44m v1.14.2
Console
Copy
master:~$ kubectl describe nodes | egrep -i ^'name|taint'
Name: master
Taints: node-role.kubernetes.io/master:NoSchedule
Name: worker1
Taints: node.kubernetes.io/unschedulable:NoSchedule
Name: worker2
Taints: <none>
Console
Copy
master:~$ kubectl drain worker1 --ignore-daemonsets
node/worker1 already cordoned
error: unable to drain node "worker1", aborting command...
There are pending nodes to be drained:
worker1
error: cannot delete Pods with local storage (use --delete-local-data to override): sock-shop/carts-d646975bf-mxptv, sock-shop/carts-db-f5677f464-qbt9w, sock-shop/orders-986494c98-7sqwt, sock-shop/orders-db-78568b65bb-czvlm, sock-shop/shipping-7b8865d964-hnsvc, sock-shop/user-db-7b9846c559-z9qwc
Console
Copy
master:~$ kubectl drain worker1 --ignore-daemonsets --delete-local-data
node/worker1 already cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-system/calico-node-qmvsf, kube-system/kube-proxy-z4smj
evicting pod "user-db-7b9846c559-gxhhw"
evicting pod "front-end-55b99f8c59-245mg"
evicting pod "orders-986494c98-89f6t"
evicting pod "payment-7d4d4bf9b4-vl582"
evicting pod "queue-master-6b5b5c7658-ht4ts"
evicting pod "rabbitmq-f984b75c4-7wmqq"
evicting pod "shipping-7b8865d964-5p2zb"
evicting pod "carts-d646975bf-g99h4"
evicting pod "carts-db-f5677f464-wgdhr"
evicting pod "catalogue-db-55965799b9-lksdv"
pod/rabbitmq-f984b75c4-7wmqq evicted
pod/user-db-7b9846c559-gxhhw evicted
pod/carts-db-f5677f464-wgdhr evicted
pod/catalogue-db-55965799b9-lksdv evicted
pod/payment-7d4d4bf9b4-vl582 evicted
pod/front-end-55b99f8c59-245mg evicted
pod/carts-d646975bf-g99h4 evicted
pod/orders-986494c98-89f6t evicted
pod/queue-master-6b5b5c7658-ht4ts evicted
pod/shipping-7b8865d964-5p2zb evicted
node/worker1 evicted
Console
Copy
master:~$ kubectl get pod -n sock-shop -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
carts-d646975bf-cqw2p 1/1 Running 0 94s 192.168.189.77 worker2 <none> <none>
carts-db-f5677f464-5df85 1/1 Running 0 94s 192.168.189.68 worker2 <none> <none>
catalogue-7db746bc5b-jbclg 1/1 Running 0 5m5s 192.168.189.65 worker2 <none> <none>
catalogue-db-55965799b9-bdndk 1/1 Running 0 94s 192.168.189.72 worker2 <none> <none>
front-end-55b99f8c59-8csvg 1/1 Running 0 94s 192.168.189.74 worker2 <none> <none>
orders-986494c98-29jcg 1/1 Running 0 94s 192.168.189.70 worker2 <none> <none>
orders-db-78568b65bb-jqrv6 1/1 Running 0 5m4s 192.168.189.66 worker2 <none> <none>
payment-7d4d4bf9b4-dbnbp 1/1 Running 0 94s 192.168.189.71 worker2 <none> <none>
queue-master-6b5b5c7658-t5mjs 1/1 Running 0 94s 192.168.189.76 worker2 <none> <none>
rabbitmq-f984b75c4-nr8c6 1/1 Running 0 94s 192.168.189.75 worker2 <none> <none>
shipping-7b8865d964-nk458 1/1 Running 0 94s 192.168.189.69 worker2 <none> <none>
user-54555fbb7-hfcl2 1/1 Running 0 5m3s 192.168.189.67 worker2 <none> <none>
user-db-7b9846c559-j8fkz 1/1 Running 0 94s 192.168.189.73 worker2 <none> <none>
Console
Copy
master:~$ kubectl delete -f https://raw.githubusercontent.com/microservices-demo/microservices-demo/master/deploy/kubernetes/complete-demo.yaml
deployment.extensions "carts-db" deleted
service "carts-db" deleted
deployment.extensions "carts" deleted
service "carts" deleted
...
Console
Copy
master:~$ kubectl delete ns sock-shop
namespace "sock-shop" deleted
3 같이 보기[ | ]
편집자 Jmnote
로그인하시면 댓글을 쓸 수 있습니다.