栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

k8s容忍度和污点(固定只运行某个服务)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

k8s容忍度和污点(固定只运行某个服务)

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

每个污点的组成如下:

key=value:effect
每个污点有一个key和value作为污点的标签,effect描述污点的作用。当前taint effect支持如下选项:

NoSchedule:表示K8S将不会把Pod调度到具有该污点的Node节点上
PreferNoSchedule:表示K8S将尽量避免把Pod调度到具有该污点的Node节点上
NoExecute:表示K8S将不会把Pod调度到具有该污点的Node节点上,同时会将Node上已经存在的Pod驱逐出去

污点taint的NoExecute详解
taint 的 effect 值 NoExecute,它会影响已经在节点上运行的 pod:

如果 pod 不能容忍 effect 值为 NoExecute 的 taint,那么 pod 将马上被驱逐
如果 pod 能够容忍 effect 值为 NoExecute 的 taint,且在 toleration 定义中没有指定 tolerationSeconds,则 pod 会一直在这个节点上运行。
如果 pod 能够容忍 effect 值为 NoExecute 的 taint,但是在toleration定义中指定了 tolerationSeconds,则表示 pod 还能在这个节点上继续运行的时间长度。

可见已经添加上了污点
[root@k8s-master taint]# kubectl describe node k8s-node01
 Name:               k8s-node01
 Roles:              
 Labels:             beta.kubernetes.io/arch=amd64
                     beta.kubernetes.io/os=linux
                     cpu-num=12
                     disk-type=ssd
                     kubernetes.io/arch=amd64
                     kubernetes.io/hostname=k8s-node01
                     kubernetes.io/os=linux
                     mem-num=48
 Annotations:        flannel.alpha.coreos.com/backend-data: {"VtepMAC":"3e:15:bb:f8:85:dc"}
                     flannel.alpha.coreos.com/backend-type: vxlan
                     flannel.alpha.coreos.com/kube-subnet-manager: true
                     flannel.alpha.coreos.com/public-ip: 10.0.0.111
                     kubeadm.alpha.kubernetes.io/cri-socket: /var/run/dockershim.sock
                     node.alpha.kubernetes.io/ttl: 0
                     volumes.kubernetes.io/controller-managed-attach-detach: true
 CreationTimestamp:  Tue, 12 May 2020 16:50:54 +0800
 **Taints:             test=true:NoSchedule**   ### 可见已添加污点
 Unschedulable:      false```


通过添加Tolerations来匹配容忍度然后调度到相应的节点
其中key、value、effect要与Node上设置的taint保持一致
operator的值为Exists时,将会忽略value;只要有key和effect就行
tolerationSeconds:表示pod 能够容忍 effect 值为 NoExecute 的 taint;当指定了 tolerationSeconds【容忍时间】,则表示 pod 还能在这个节点上继续运行的时间长度。

tolerations:

  • key: “key”
    operator: “Equal”
    value: “value”
    effect: “NoSchedule”

tolerations:

  • key: “key”
    operator: “Exists”
    effect: “NoSchedule”

tolerations:

  • key: “key”
    operator: “Equal”
    value: “value”
    effect: “NoExecute”
    tolerationSeconds: 3600 (容忍度持续的时间)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/830950.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号