Node管理
    禁止pod调度到该节点上
    kubectl cordon
    在其他node上重新启动它们,通常该节点需要维护时使用该命令。直接使用该命令会自动调用kubectl cordon 命令。

    1. [root@master1 ~]# kubectl get node
    2. NAME STATUS ROLES AGE VERSION
    3. 172.16.123.61 Ready node 3d21h v1.20.2
    4. 172.16.123.62 Ready node 3d21h v1.20.2
    5. 172.16.123.63 Ready,SchedulingDisabled master 3d21h v1.20.2
    6. [root@master1 ~]# kubectl cordon 172.16.123.61
    7. node/172.16.123.61 cordoned
    8. [root@master1 ~]# kubectl get node
    9. NAME STATUS ROLES AGE VERSION
    10. 172.16.123.61 Ready,SchedulingDisabled node 3d21h v1.20.2
    11. 172.16.123.62 Ready node 3d21h v1.20.2
    12. 172.16.123.63 Ready,SchedulingDisabled master 3d21h v1.20.2

    驱逐该节点上的所有pod
    kubectl drain —force —ignore-daemonsets —delete-local-data 该命令会删除该节点上的所有Pod(DaemonSet除外)

    [root@master1 ~]# kubectl  get pod  -o wide
    NAME                     READY   STATUS    RESTARTS   AGE     IP               NODE            NOMINATED NODE   READINESS GATES
    nginx-78d698d9f7-dnk6h   1/1     Running   0          7m40s   172.20.104.13    172.16.123.62   <none>           <none>
    nginx-78d698d9f7-k9d4h   1/1     Running   0          7m34s   172.20.166.143   172.16.123.61   <none>           <none>
    [root@master1 ~]# kubectl drain  172.16.123.61  --force --ignore-daemonsets --delete-local-data
    Flag --delete-local-data has been deprecated, This option is deprecated and will be deleted. Use --delete-emptydir-data.
    node/172.16.123.61 already cordoned
    WARNING: ignoring DaemonSet-managed Pods: kube-system/calico-node-2sj8b, kube-system/node-local-dns-2k5jn
    evicting pod default/nginx-78d698d9f7-k9d4h
    evicting pod kube-system/coredns-5787695b7f-l6vlb
    evicting pod kube-system/metrics-server-8568cf894b-pw7mq
    [root@master1 ~]# kubectl  get  node
    NAME            STATUS                     ROLES    AGE     VERSION
    172.16.123.61   Ready,SchedulingDisabled   node     3d21h   v1.20.2
    172.16.123.62   Ready                      node     3d21h   v1.20.2
    172.16.123.63   Ready,SchedulingDisabled   master   3d21h   v1.20.2
    pod/metrics-server-8568cf894b-pw7mq evicted
    pod/nginx-78d698d9f7-k9d4h evicted
    pod/coredns-5787695b7f-l6vlb evicted
    node/172.16.123.61 evicted
    [root@master1 ~]# kubectl  get pod  -o wide
    NAME                     READY   STATUS    RESTARTS   AGE     IP              NODE            NOMINATED NODE   READINESS GATES
    nginx-78d698d9f7-9z6lf   1/1     Running   0          2m47s   172.20.104.16   172.16.123.62   <none>           <none>
    nginx-78d698d9f7-dnk6h   1/1     Running   0          14m     172.20.104.13   172.16.123.62   <none>           <none>
    

    当该节点维护完成,启动了kubelet后,再使用kubectl uncordon 即可将该节点添加到kubernetes集群中。

    [root@master1 ~]# kubectl uncordon 172.16.123.61 
    node/172.16.123.61 uncordoned
    [root@master1 ~]# kubectl  get  node
    NAME            STATUS                     ROLES    AGE     VERSION
    172.16.123.61   Ready                      node     3d21h   v1.20.2
    172.16.123.62   Ready                      node     3d21h   v1.20.2
    172.16.123.63   Ready,SchedulingDisabled   master   3d21h   v1.20.2