污点类型 解释(相当于做标签)
kubectl taint nodes node key=value:NoSchedule 添加effect类型污点,新的pod不能调度过来,老的不影响
kubectl taint nodes node key=value:NoExecute 添加effecf类型污点,新的pod不能调度过来,老的被驱除
kubectl taint nodes node key=value:PreferNoSchedule 会尝试将pod分配到该节点

污点、容忍度

手动创建deployment

[root@ceshi-130 ~]# kubectl create deployment nginx-dp --image=harbor.od.com/public/nginx:v1.7.9 -n kube-public

伸缩副本为2,两台node都存在nginx-dp-xxx的pod

[root@ceshi-130 ~]# kubectl scale --replicas=2 deployment/nginx-dp -n kube-public
[root@ceshi-130 ~]# kubectl get pods -n kube-public -o wide
NAME                        READY   STATUS    RESTARTS   AGE     IP           NODE                 NOMINATED NODE   READINESS GATES
nginx-dp-5dfc689474-wkfn9   1/1     Running   0          25s     172.7.21.4   ceshi-130.host.com   <none>           <none>
nginx-dp-5dfc689474-zbgnp   1/1     Running   0          3m10s   172.7.22.2   ceshi-131.host.com   <none>           <none>

比如我们现在就不想让pod运行在某个node上

输出 yaml格式

[root@ceshi-130 ~]# kubectl get deployment nginx-dp -o yaml -n kube-public > nginx-dp.yaml
apiVersion: extensions/v1beta1
kind: Deployment
metadata:annotations:labels:app: nginx-dpname: nginx-dpnamespace: kube-public
spec:replicas: 2selector:matchLabels:app: nginx-dptemplate:metadata:labels:app: nginx-dpspec:containers:- image: harbor.od.com/public/nginx:v1.7.9imagePullPolicy: IfNotPresentname: nginx

伸缩一份,查看只有131节点存在,那就去130节点打污点

[root@ceshi-130 ~]# kubectl scale --replicas=1 deployment/nginx-dp -n kube-public
deployment.extensions/nginx-dp scaled
[root@ceshi-130 ~]# kubectl get pods -n kube-public -o wide
NAME                        READY   STATUS    RESTARTS   AGE   IP           NODE                 NOMINATED NODE   READINESS GATES
nginx-dp-5dfc689474-zbgnp   1/1     Running   0          11m   172.7.22.2   ceshi-131.host.com   <none>           <none>

节点 130
在130节点打污点

[root@ceshi-130 ~]# kubectl taint nodes ceshi-130.host.com defect=fat:NoSchedule


查看节点详细资源已经现在污点信息,此时不论将pod扩容几份pod都不会调度到130-node,因为130-node已经有污点新的pod不会在被调度

tolerations:容忍度
修改nginx-dp.yaml文件让他可以容忍污点(containers同一级对齐)

spec:tolerations:- key: defectvalue: fateffect: NoSchedulereplicas: 1

再次交付

[root@ceshi-130 ~]# kubectl apply -f nginx-dp.yaml
Warning: kubectl apply should be used on resource created by either kubectl create --save-config or kubectl apply
deployment.extensions/nginx-dp configured

扩容4台后查看可以被调度到污点node,因为yaml文件配置是tolerations,意思是可以容忍污点

可以将节点打多个污染

[root@ceshi-130 ~]# kubectl taint nodes ceshi-130.host.com cs=:NoSchedule
[root@ceshi-130 ~]# kubectl taint nodes ceshi-130.host.com cf=:NoSchedule

yaml配置也可以配置多个容忍度key(同spec下级containers同级配置),但是当node打污点为多个,yaml配置为一个时也不满足容忍度要求,同样不会被调度

spec:tolerations:- key: cseffect: NoSchedule- key: cfeffect: NoSchedule

nodeName

nodeName方式也是一种手动指定pod被调度到某个node的方法,比较简单直接
也是在spec下级和containers同级指定即可

spec:nodeName: ceshi-130.host.comcontainers:

两种方式简单来说:
前者是除了能容忍污点的pod会被调度进来,其他都不会被调度
后者是指定当前pod选择node,其他pod也会被调度到次node

K8S污点容忍度调度相关推荐

  1. k8s污点容忍度概念介绍

    1. 概念介绍 污点(Taint) 应用于node身上,表示该节点有污点了,如果不能忍受这个污点的pod,你就不要调度/运行到这个节点上.如果是不能运行到这个节点上,那就是污点驱逐了. 容忍度(Tol ...

  2. 云原生kubernetes七 :Pod进阶篇:污点-容忍度-亲和性-Affinity-调度

    1.pod资源清单详细介绍 #版本号 apiVersion: v1 #资源类型 kind: Pod #元数据 metadata:#Pod名字name: string#pod所属命名空间namespac ...

  3. Kubernetes 调度 - 污点和容忍度详解

    当我们使用节点亲和力(Pod 的一个属性)时,它会将Pod吸引到一组节点(作为偏好或硬性要求).污点的行为完全相反,它们允许一个节点排斥一组 Pod. 在 Kubernetes 中,您可以标记(污染) ...

  4. k8s调度:亲和度、容忍度

    k8s调度:亲和性调度.容忍度调度 一.实验环境及简介 1.1.实验环境 1.2.亲和性 1.3.污点和容忍度 二.节点亲和性调度 2.1.节点硬亲和性 2.2.节点软亲和性 三.Pod亲和度 3.1 ...

  5. 3.11 污点和容忍度

    文章目录 一.污点和容忍度介绍 1.显示污点信息 2.显示容忍度信息 3.污点因子 二.污点应用 三.污点容忍度应用 上一章节介绍了,pod的调度方式有选择器.节点亲和性.pod亲和性和反亲和性,本章 ...

  6. 云原生之Kubernetes:24、污点和容忍度详解

    文章目录 前言 1.概念引入 2.污点和容忍度配置 3.该如何配置? 4.内置污点 5.常用命令补充 6.实战:Taints and Tolerations 前言 Taint(污点)和Tolerati ...

  7. K8s 污点(Taints)与容忍(Tolerations)

    概念 先来看一个容忍标记和污点标记的调度关系图: 与 亲和性(点击查看) 不同的是:Taints(污点)恰恰相反,它可以 Pod 不被调度到污点 Node,甚至将已经在污点中运行的 Pod 驱逐掉. ...

  8. Kubernetes 笔记(08)— Daemonset 产生缘由、yaml 描述、使用方法、污点和容忍度的定义及使用、静态 Pod

    DaemonSet,它会在 Kubernetes 集群的每个节点上都运行一个 Pod,就好像是 Linux 系统里的"守护进程"(Daemon). 1. 产生缘由 Deployme ...

  9. 图解 K8S(06):调度利器之污点与容忍度(压力驱逐)

    本系列教程目录(已发布): 图解 K8S(01):基于ubuntu 部署最新版 k8s 集群 图解 K8S(02):认识 K8S 中的资源对象 图解 K8S(03):从 Pause 容器理解 Pod ...

最新文章

  1. 获取系统时间精确到毫秒级C++代码实现
  2. C语言-程序运行效率总结及注意事项
  3. 牛客 - 树上求和(贪心+树形dp)
  4. iphone中怎么强制view重绘
  5. JAVA多线程,真的能提高效率吗
  6. java c语言 实现des算法_C语言实现DES算法
  7. eclipse中spring配置文件代码提示(全)
  8. sstap tun虚拟网卡没有安装_虚拟设备之TUN和TAP
  9. 数据分析融入至BI工具的新思路
  10. 详细介绍SWFUpload
  11. 好用的免费CMS网站模板源码下载推荐
  12. 使用ViewPager和RecyclerView实现微信表情包分页显示
  13. 每日一题:1.function Person(firstName, lastName) { this.firstName = firstName; this.lastName = lastNa
  14. 移动硬盘在计算机中不显示数据能恢复,移动硬盘无法访问提示'此卷不包含可识别的文件系统'怎么办?...
  15. 正规的伦敦金投资平台排行榜
  16. USB学习入门(三)------众里寻他千百度(windows)
  17. matlab磁场计算公式,利用MATLAB计算电磁场有关分布.doc
  18. 幸福工厂超级计算机有什么用,幸福工厂全替换配方简评
  19. apache mima 过滤器
  20. Markdown取消超链接的下划线

热门文章

  1. 【问题】连接mysql报错errorCode 0, state 08S01
  2. markman高效的设计稿标注、测量工具
  3. 泪目了!原河南常务副省长的艰辛求学路竟然这么感人
  4. 活力无限的J2ME技术
  5. 新年伊始 张孝祥老师 离开了
  6. html制作多媒体课件,多媒体课件设计与制作 教师课件制作平台
  7. ps制作苹果中的返回按钮
  8. maven找不到,变小蜘蛛问题
  9. 小米路由器3G建站折腾笔记6 - 总结
  10. 数学之美:常用的微分,求导和积分公式大总结