example
設置node不可調度
$kubectl cordon 172.16.21.26
$ kubectl drain foo --force
$ kubectl drain foo --grace-period=900
$ kubectl drain 172.16.21.26 --delete-local-data --ignore-daemonsets --force
參數說明:
–delete-local-data: 即使pod使用了emptyDir也刪除
–ignore-daemonsets: 忽略deamonset控制器的pod,如果不忽略,deamonset控制器控制的pod被刪除后可能馬上又在此節點上啟動起來,會成為死循環;
–force: 不加force參數只會刪除該NODE上由ReplicationController, ReplicaSet, DaemonSet,StatefulSet or Job創建的Pod,加了后還會刪除’裸奔的pod’(沒有綁定到任何replication controller)
--pod-selector="" Label selector to filter pods on the node;按標簽過濾掉不驅逐得pod
-l, --selector="" Selector (label query) to filter on
--skip-wait-for-delete-timeout=0 If pod DeletionTimestamp older than N seconds, skip waiting for the pod. Seconds must be greater than 0 to skip.
--timeout=0s The length of time to wait before giving up, zero means infinite
觀察pod重建情況后,對節點進行維護操作。
維護結束后對節點重新配置可以調度。
kubectl uncordon 172.16.21.26