k8s集群调度序章

一、污点(taint)

1.1 污点简介

        ①节点亲和性,是Pod的一种属性(偏好或硬性要求),它是Pod被吸引到一类特定的节点。Taint则相反,它使得节点能够排斥一类特定的pod。

        ②Taint与Toleration相互配合,可以用来避免pod被分配到不合适的节点上。每个节点上的都可以应用一个或者多个Taint,这表示对于那些不能容忍这些 taint 的 Pod,是不会被该节点接受的。如果将 toleration 应用于 Pod 上,则表示这些 Pod 可以(但不一定)被调度到具有匹配 taint 的节点上。

        ③使用 kubectl taint 命令可以给某个 Node 节点设置污点,Node 被设置上污点之后就和 Pod 之间存在了一种相斥的关系,可以让 Node 拒绝 Pod 的调度执行,甚至将 Node 已经存在的 Pod 驱逐出去。

1.2 污点组成格式

key=value:effect
 
## 每个污点有一个 key 和 value 作为污点的标签,其中 value 可以为空,effect 描述污点的作用。

1.3 当前taint effect支持如下三个选项:

①NoSchedule:表示 k8s 将不会将 Pod 调度到具有该污点的 Node 上

②PreferNoSchedule:表示 k8s 将尽量避免将 Pod 调度到具有该污点的 Node 上

③NoExecute:表示 k8s 将不会将 Pod 调度到具有该污点的 Node 上,同时会将 Node 上已经存在的 Pod 驱逐出去

1.4 查看node节点上的污点

格式:kubectl describe nodes <节点名称> | grep Taints 
或者是kubectl describe nodes <节点名称> | grep -i taints
eg:查看master01的污点
kubectl describe nodes master01 |grep -i taints

 1.5 设置污点

格式kubectl taint node 指定的node key1=value1:NoSchedule
eg:给node01  设置污点进行测试
kubectl taint node node01 abc=a:NoSchedule

1.6 清除污点

格式:kubectl taint node 指定的node key:NoSchedule-
eg:清除node01 设置的污点
kubectl taint node node01 abc:NoSchedule-

1.7 示例一

查看pod状态,模拟驱逐node02上的pod

[root@master01 ~]]#kubectl get pods -owide
查看pod状态

设置驱逐node02

kubectl taint node node02 check=mycheck:NoExecute

再次查看pod状态

kubectl get pods -owide
NAME          

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值