节点污点 Taint 和容忍度 Toleration在生产中的使用
目录
一、前言
二、节点设置taints
1、设置taint
2、查看taint
3、删除taint
三、配置toleration及测试
1、没配置tiant时,Pod正常调度
2、配置taint时,不配置容忍度 toleration
3、配置tolerations
四、总结
一、前言
在生产环境使用中,有时会遇到一些使用场景需求,当集群中存在多种节点类型的情况,如master节点、ssd硬盘类型的node节点,或者是高计算性能的node节点,这个时候,只想某些节点上只运行指定类型的pod,不想让其它pod调度到这些节点上,则可以使用节点污点(Taint)的方式,配合容忍度(Toleration),实现指定节点只运行特定类型的pod服务。
小结如下:
节点污点(Taint):使节点能够排斥特定的 Pod
容忍度(Toleration):应用于 Pod 上,允许Pod 调度到带有与之匹配的污点的节点上。
污点和容忍度(Toleration)相互配合,可以用来避免 Pod 被分配到不合适的节点上。 每个节点上都可以应用一个或多个污点,这表示对于那些不能容忍这些污点的 Pod,是不会被该节点接受的。
二、节点设置taints
1、设置taint
可以使用命令 kubectl taint 给节点增加一个污点
kubectl taint node [node] key=value[effect] # [effect] 可取值: NoSchedule: 一定不能被调度PreferNoSchedule: 尽量不要调度NoExecute: 不仅不会调度, 还会驱逐Node上已有的Pod
Tips:
当节点维护并驱逐时,节点控制器会在相应的节点添加带有 NoExecute 效应的污点,实现基于污点的驱逐功能,一般来说,用的多的还是NoSchedule和toleration的方式相结合
示例: 设置节点minikube tiant标签,当标签key为master,值为true时,禁止Pod调度到节点上
2、查看taint
kubectl describe node [node] | grep Taints
3、删除taint
# 删除指定effect标签
kubectl taint node [node] key:[effect]- # 删除指定key所有effect标签
kubectl taint node [node] key-
例: 删除节点taint
三、配置toleration及测试
当节点配置了taint时,如果Pod上没配置对应 tiant 的容忍度配置,Pod将无法调度到节点上
1、没配置tiant时,Pod正常调度
2、配置taint时,不配置容忍度 toleration
Pod将无法正常调度到节点,处于Pending状态
可以查看Pod事件看到,无节点满足调度条件
3、配置tolerations
可以看到Pod正常调度到节点
nginx.yaml增加tolerations字段,文件配置如下
apiVersion: v1
kind: Pod
metadata:creationTimestamp: nulllabels:run: nginx-no-tolerationname: nginx-no-toleration
spec:containers:- image: nginxname: nginx-no-tolerationports:- containerPort: 80resources: {}dnsPolicy: ClusterFirstrestartPolicy: Alwaystolerations:- key: "master"operator: "Equal"value: "true"effect: "NoSchedule"
四、总结
通过污点 taint 和 容忍度 toleration 相结合,可以灵活地实现 Pod 避开某些节点或者将 Pod 从某些节点驱逐。生产环境中比较常用的使用场景是指定专用节点,即节点只给某些指定的服务或用户使用,具体用法如下:
将某些节点专门分配给特定的服务使用,可以给这些节点添加一个污点( kubectl taint nodes nodename dedicated=AppName:NoSchedule
), 然后给对应服务的 Pod 添加一个相对应的 toleration。 拥有上述容忍度的 Pod 就能够被分配到上述专用节点,同时也能够被分配到集群中的其它节点。注意,如果你希望这些 Pod 只能被分配到上述专用节点,那么可以给这些专用节点添加一个和污点类似的 label (例如:dedicated=AppName
),同时,在 Pod 配置中增加节点亲和性要求或使用节点选择 NodeSelector ,实现上述 Pod 只能被分配到添加了 dedicated=AppName
标签的节点上。
以上是基于污点和容忍度的理解及生产中使用的解析
觉得有用的点个收藏和关注吧~
节点污点 Taint 和容忍度 Toleration在生产中的使用相关推荐
- Kubernetes资源调度之污点与Pod容忍度
Kubernetes资源调度之污点与Pod容忍度 概述 污点是定义在节点之上的键值型属性数据,用于让节点有能力主动拒绝调度器将Pod调度运行到节点上,除非该Pod对象具有接纳节点污点的容忍度.容忍度( ...
- Kubernetes 污点 Taint 和容忍 Toleration
参考地址: kubernetes 官方文档 Taint And Toleration 系统环境: kubernetes 版本:1.16.6 一.介绍 在 Kubernetes 中,节点亲和性 Node ...
- 《Kubernetes知识篇:Kubernetes污点和容忍度》
文章目录 一.简介 二.pod对象的排斥等级 三.污点且无容忍度 3.1.污点之排斥等级NoSchedule 3.2.污点之排斥等级NoExecute 3.3.污点之排斥等级PreferNoSched ...
- k8s污点容忍度概念介绍
1. 概念介绍 污点(Taint) 应用于node身上,表示该节点有污点了,如果不能忍受这个污点的pod,你就不要调度/运行到这个节点上.如果是不能运行到这个节点上,那就是污点驱逐了. 容忍度(Tol ...
- Kubernetes Pod调度进阶:Taints(污点)和Tolerations(容忍)
[注意]最后更新于 2 years ago,文中内容可能已过时,请谨慎使用. 污点(Taint)和容忍(Toleration)是从Kubernetes 1.6开始提供的高级调度功能. 在Kuberne ...
- Kubernetes调度器-Pod分配给节点(Taint污点和Toleration容忍)
Taint和Toleration 节点亲和性是pod的一种属性(偏好或硬性要求),它使pod被吸引到一类特定的节点.Taint则相反,它使节点能够排斥一类特定的pod. Taint和toleratio ...
- 污点(Taint )和容忍(Toleration)
污点(Taint) 1.污点的组成 使用kubectl taint命令可以给某个 Node 节点设置污点,Node 被设置上污点之后就和 Pod 之间存在了一种相斥的关系,可以让 Node 拒绝 Po ...
- 【项目实战23】k8s(9)—k8s调度(节点亲和性,Taint污点,pod容忍性)
k8s调度 一.k8s调度背景介绍 二.nodeName方式调度 三.nodeSelector方式调度 (1).使用方式 (2).节点亲和性 四.Taints污点 (1).介绍 (2).使用 五.to ...
- K8S 污点和容忍度
污点和容忍度 节点亲和性(详见这里) 是 Pod 的一种属性,它使 Pod 被吸引到一类特定的节点. 这可能出于一种偏好,也可能是硬性要求. Taint(污点)则相反,它使节点能够排斥一类特定的 Po ...
最新文章
- git遇到错误: Failed connect to github.com:443
- synchronized锁升级
- 常用的SSH注解标签
- PHP 发邮件《转》
- linux内核mtd分区,linux-kernel – ubifs卷与mtd分区
- pip install 镜像_pypi私有镜像仓库部署
- Python画图库Turtle库详解篇
- java 蓝桥杯 石子游戏(题解)
- 用位运算实现有符号16bit数据clamp
- 鹏业软件CAD云服务转图纸没反应的说明
- 数字逻辑——时序逻辑电路
- 利用Excel Power Query获取基金历史净值、估值和日增长率等信息
- 读 孙卫琴《Tomcat与Javaweb开发技术详解》
- 怎样恢复被删除的文件
- vue和socket.io开发简单web聊天室
- 3D打印喷嘴大小如何选择0.2-0.5mm喷嘴
- Citrix XenApp/XenDesktop 7.8 版本新功能介绍
- 测试经理谈软件测试行业(想学习转行的看收益颇多)
- 检查服务器是否支持ipv6
- java程序线上故障排查及解决方案
热门文章
- EVE-NG模拟器社区版网络模拟环境搭建教程
- 运行ant-design-pro报错ERROR in ./node_modules/swagger-ui-react/swagger-ui.js 2:107055-107070Module not
- 【C++】Big Five: 构造函数、拷贝构造函数、拷贝赋值函数、移动构造函数、析构函数
- 虚拟机VMware安装Ubuntu记录
- JVM垃圾清理机制详解 ✨ 每日积累
- 9月赠书活动名单公布啦!
- AAA与AAM指令代码实验
- java高仿新浪微博短链接地址生成工具ShortUrlGenerator.java
- 时间煮雨,人生浅笑嫣然
- 《 iOS-checkIPA 》ipa 文件信息检查工具