kubenetes 设置不可调度方式

k8s不可调度

如果节点设置为不可调度(unschedulable),将阻止新 Pod 调度到该 Node 之上, 在主机发生故障的时候。设置不可调度是避免其他pod调度到主机失败的一种手段。设置不可调度的方案有两种形式。cordon 和 drain两种方式。那么我们来谈谈这两种方式的区别是什么?

  • 语法结构
kubectl cordon   node1 #设置不可调度
kubectl uncordon node1 #恢复可调度
kubectl drain node1 --force --ignore-daemonsets #设置不可调度
  • cordon 和 drain的区别
cordon:不可调度,临时从K8S集群隔离,不会对节点上的pod有任何影响。官方提示:(被 DaemonSet 控
制器创建的 Pod 能够容忍节点的不可调度属性。 DaemonSet 通常提供节点本地的服务,即使节点上的负载
应用已经被腾空, 这些服务也仍需运行在节点之上。)

drain:“kubectl drain  主机ip --force --ignore-daemonsets”后台强制剔除问题主机上所有pod,
并置不可调度。

参数解释:
--force 当一些pod不是经 ReplicationController, ReplicaSet, Job, DaemonSet 或者 
StatefulSet 管理的时候就需要用--force来强制执行 (例如:kube-proxy)
--ignore-daemonsets 无视DaemonSet管理下的Pod。即--ignore-daemonsets往往需要指定的,这是
因为deamonset会忽略unschedulable标签(使用kubectl drain时会自动给节点打上不可调度标签),
因此deamonset控制器控制的pod被删除后可能马上又在此节点上启动起来,这样就会成为死循环.因此
这里忽略daemonset。
--delete-local-data 如果有mount local volumn的pod,会强制杀掉该pod。
  • uncordon 设置可调度
节点维修完后,使用uncordon命令节点重新变得可调度;
检查节点状态,节点就会重新变回Ready状态。

主机故障的情况下,比如宕机、CPU高、内存oom、磁盘过高、连接数高等因素。都有可能影响到节点无法拉起、
生产中我们一定要注意对资源的设定。生产中也可能会出现主机存在孤儿pod、执行了命令依然不能就绪状态
也要考虑到docker、kubelet的状态以及日志查询。
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 要设置 k8s 节点不可调度,可以通过以下两种方式实现: 1. 使用 kubectl 命令设置节点不可调度: ``` kubectl cordon <node-name> ``` 这个命令会在节点上设置一个 taint ,使得 k8s 调度器不会将新的 Pod 调度到该节点上。 2. 在节点上设置 taint: 在要设置不可调度的节点上运行以下命令: ``` kubectl taint nodes <node-name> node-role.kubernetes.io/master:NoSchedule ``` 这个命令会在该节点上设置一个 taint,使得 k8s 调度器不会将新的 Pod 调度到该节点上。 这两种方式都可以实现节点不可调度的目的,但是第二种方式可以设置更多的 taints,例如可以设置 Pod 必需的节点标签,从而限制 Pod 的调度。 ### 回答2: 在Kubernetes(简称K8s)中,可以通过设置节点的调度状态来控制其可调度性。要将节点设置不可调度,可以使用以下步骤: 1. 首先,可以使用以下命令查看当前集群中的所有节点:`kubectl get nodes` 2. 选择要将其设置不可调度的节点,并使用以下命令标记该节点为不可调度的状态:`kubectl cordon <节点名称>` 3. 当节点被标记为不可调度后,新的Pod将不会被调度到该节点上,而已经运行在该节点上的Pod将继续运行。 4. 如果要将节点重新设置为可调度状态,可以使用以下命令:`kubectl uncordon <节点名称>` 5. 再次将节点设置为可调度后,K8s调度器将重新考虑该节点上的Pod的分布,并在需要时在该节点上调度新的Pod。 通过设置节点的调度状态,可以灵活地控制K8s集群中Pod的调度行为,确保节点的资源被有效利用,并实现负载均衡和高可用性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值