k8s污点与容忍

污点(taints)与容忍(tolerations)


污点taints是定义在节点之上的键值型属性数据,用于让节点拒绝将Pod调度运于其上, 除非该Pod对象具有接纳节点污点的容忍度。而容忍度tolerations是定义在 Pod对象上的键值型属性数据,用于配置其可容linux是什么操作系统忍的节点污点,而且调度器仅能将Pod对象调度至其能够容忍该节点污点的节点之上.

定义污点和容忍度

污点定义在节点的node Spe系统/运维c中,而容忍度则定义k8s集群在Pod的podSpec中,它们都是键值型数据,但又都额外支持一个效果effk8s微服务架构ect标记,语法格式为k系统运维工程师面试问题及答案ey=value:effect,其中key和value的用法及格式与资源注俯-信息相似, 而effelinux删除文件命令ct则用于定义对Pod对象的排斥等级,它主要包含以下三种类型:

NoSchedule

k8s微服务架构能容忍此污点的新Pod对象不可调度至当前节点,属于强制型约束关系,节点上现存的P系统运维的主要任务od对象不受影响。

PreferNoSchedule

NoSchedule的系统运维工程师面试问题及答案柔性约束版本,即不能容忍此污点的新Pod对象尽量不要调度至当前节点,不过无其他节点可供调度时也允系统运维包括哪些内容许接受相linux应的Pod对象。节点上现存的Pod对象系统运维工程师面试问题及答案不受影响。

NoExk8s是干嘛的ecute

不能容忍此污点的新Pok8s面试题与答案d对象不可调度至当前节点,属于强制型约束关系,而且节点上现存的Pod对象因节点污点变动或Podlinux容忍度变动而不再满足匹配规则时,Pod对象将被驱逐。

在Pod对象上定义容忍度时,它支持两种操k8s证书作符:一种是等值比较Equal,表示容忍度与污点必须在key、value和effect三者之上完全匹配;另一种是存在性判断Exists,表示二者的key和effect必须完全匹配,而容忍度中的vak8s安装部署步骤lk8s证书ue字段要使用空值。

Node1打污点系统运维主要做什么:

对于没有控制器的pod,打完污点就k8s微服务架构会自动删除;如果有deploy控制器控制podcom.cn/tag/%e5%89%af%e6%9c%ac" target="_blank">副本数,当前节点打污点,为了保持副本数一致,排除当前node节点,会系统运维包括哪些内容在其他node节点运

[root@master ~]# kubectl taint nodes node1 check=mew:NoExecute
node/node1 tainted

查看node节点污点属性:

[root@master ~]# kubectl describlinuxe node node1


                                            k8s污点与容忍

污点容忍:

当前k8s集群工三台机器,node1和node2都打污点.

Node1污linux重启命令点kay/k8s是干嘛的value属性:


                                            k8s污点与容忍

Nodek8s微服务架构2污点linux中文乱码视频kay/value属性:


                                            k8s污点与容忍

创建pod,查看pod容忍:

[root@master afff]# cat pod.yaml 
apiVersion: v1
kind: Pod
metadata:
name: nginx-example
labels:
app: nginx
spec:
containers:
- name: test-nginx
image: nginx
tolerations:
- key: "check"
operator: "Equal"
value: "mew"
effect: "NoExecute"
tolerationSeconds: 3600

[root@master afff]# kubectl get pod -o wide

NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE REAk8s安装部署步骤DINESSlinux必学的60个命令 GATES

nginx-linux删除文件命令example 1linux删除文件命令/1 Running 0 3m56k8sms 10.244.1.31 node1 <none> <none>


                                            k8s污点与容忍

注释:虽然所有节点都有污点,但是能容忍check=mew:NoExcute属性的节点。

1.其中key,value,effelinux删除文件命令ct要与Node上设置的taint保持一致

2.Operator的值Exists将会忽略k8s中的kubelet主要负责value值

3.tolek8smrationSeconds用于描述当前pod需要被驱逐时可以在pod上继续保留运行的时间

linux系统不指定key值时,表示容忍所有的污点key:

tok8s和docker区别lerations:

operator: "Existsk8s面试题与答案"

当不指定effect值时,表示容忍所有的污点作用

tolerations:

- key: "check"

operator: "Exists"

有多个mask8smter存在时,防止资源浪费,可以如下设置:

# kubectl taint nk8s是干嘛的odes master01 node-role.kuk8s集群bernetes.io/master=:PreferNoSchedule

注释:新pod尽量不要调度到此节点,当其他node无可调度时,在不影响当前node运行的pod下,k8s和docker区别可以调度到此节点。

删除污点:

[root@master afff]# kubectl taint  nodes node2 check=mew22:NoExecute-
node/node2 untainted
[root@master afff]# kubectl taint nodes node1 check=mew:NoExecute-
node/node1 untainted


                                            k8s污点与容忍