Kubernetes(14):cordon暂停调度/uncordon恢复调度/drain驱逐

本文介绍如何使用Kubernetes(k8s)进行节点调度管理,包括暂停(node cordon)、恢复(node uncordon)调度操作,以及如何通过驱逐(pod drain)将Pod从特定节点迁移至其他节点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

如何让k8s集群某台node暂停调度?
如何恢复调度?
如果某台node需要维护,如果将pod从这台node中驱逐?

cordon暂停调度

暂停node调度,使node不可用,使node不接收新的pod。
命令示例

kubectl cordon node2
[root@master ~]# kubectl get node
NAME     STATUS   ROLES    AGE    VERSION
master   Ready    master   4d6h   v1.17.4
node1    Ready    <none>   4d6h   v1.17.4
node2    Ready    <none>   4d6h   v1.17.4
[root@master ~]# kubectl cordon node2
node/node2 cordoned
[root@master ~]# kubectl get node
NAME     STATUS                     ROLES    AGE    VERSION
master   Ready                      master   4d6h   v1.17.4
node1    Ready                      <none>   4d6h   v1.17.4
node2    Ready,SchedulingDisabled   <none>   4d6h   v1.17.4
[root@master ~]# 

在这里插入图片描述

可以看到node2节点的状态变成了SchedulingDisabled

解释 :SchedulingDisabled 调度不可用

uncordon恢复调度

取消node暂停调度状态,使node可以接收调度
命令示例

kubectl uncordon node2
[root@master ~]# kubectl get node
NAME     STATUS                     ROLES    AGE    VERSION
master   Ready                      master   4d6h   v1.17.4
node1    Ready                      <none>   4d6h   v1.17.4
node2    Ready,SchedulingDisabled   <none>   4d6h   v1.17.4
[root@master ~]# kubectl uncordon node2
node/node2 uncordoned
[root@master ~]# kubectl get node
NAME     STATUS   ROLES    AGE    VERSION
master   Ready    master   4d6h   v1.17.4
node1    Ready    <none>   4d6h   v1.17.4
node2    Ready    <none>   4d6h   v1.17.4

在这里插入图片描述

drain驱逐

驱逐,把pod赶走

#把pod从node1赶走
kubectl drain node1
[root@master ~]# kubectl get node
NAME     STATUS   ROLES    AGE    VERSION
master   Ready    master   4d6h   v1.17.4
node1    Ready    <none>   4d6h   v1.17.4
node2    Ready    <none>   4d6h   v1.17.4
[root@master ~]# kubectl get pod -n dev -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP            NODE    NOMINATED NODE   READINESS GATES
nginx-64777cd554-dsvzn    1/1     Running   0          5m6s    10.244.1.35   node1   <none>           <none>
nginx2-56684bd57d-kgnd4   1/1     Running   0          4m45s   10.244.1.36   node1   <none>           <none>
nginx3-74c945c4c4-96dkf   1/1     Running   0          4m36s   10.244.1.37   node1   <none>           <none>
nginx4-d989c76f4-6dwkd    1/1     Running   0          2m35s   10.244.2.32   node2   <none>           <none>
nginx5-5794c9cd74-n8rl2   1/1     Running   0          2m28s   10.244.2.33   node2   <none>           <none>
[root@master ~]# kubectl drain node1
node/node1 cordoned
evicting pod "nginx-6867cdf567-jknt5"
evicting pod "nginx-64777cd554-dsvzn"
evicting pod "nginx2-56684bd57d-kgnd4"
evicting pod "nginx3-74c945c4c4-96dkf"
pod/nginx-6867cdf567-jknt5 evicted
pod/nginx2-56684bd57d-kgnd4 evicted
pod/nginx-64777cd554-dsvzn evicted
pod/nginx3-74c945c4c4-96dkf evicted
node/node1 evicted
[root@master ~]# kubectl get pod -n dev -o wide
NAME                      READY   STATUS    RESTARTS   AGE     IP            NODE    NOMINATED NODE   READINESS GATES
nginx-64777cd554-fgrf9    1/1     Running   0          7s      10.244.2.37   node2   <none>           <none>
nginx2-56684bd57d-mkcpt   1/1     Running   0          7s      10.244.2.36   node2   <none>           <none>
nginx3-74c945c4c4-5clvj   1/1     Running   0          7s      10.244.2.35   node2   <none>           <none>
nginx4-d989c76f4-6dwkd    1/1     Running   0          2m51s   10.244.2.32   node2   <none>           <none>
nginx5-5794c9cd74-n8rl2   1/1     Running   0          2m44s   10.244.2.33   node2   <none>           <none>

可以看到node1上的pod被驱逐到了其它node上(这里是node2)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值