kubernetes中Pod调度-Taints污点和污点容忍

一、污点的概念

        所谓的污点,是给k8s集群中的节点设置的,通过设置污点,来规划资源创建是所在的节点

污点的类型 解释说明
PreferNoshedule

节点设置这个污点类型后;

表示,该节点接收调度,但是会降低调度的概率

NoSheule表示,该节点不接收新的调度,以前有的资源,也依然存在
NoExecute表示,不接收信息的调度,驱逐以前的资源调度

根据节点设置污点

二、污点的管理

1、查看污点

查看过滤数据的前后两行

[root@master deployment-demo]# kubectl describe nodes | grep -i taint -A 2 -B 2
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Fri, 29 Mar 2024 16:03:58 +0800
Taints:             node-role.kubernetes.io/master:NoSchedule
Unschedulable:      false
Lease:
--
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Fri, 29 Mar 2024 16:09:38 +0800
Taints:             <none>
Unschedulable:      false
Lease:
--
                    volumes.kubernetes.io/controller-managed-attach-detach: true
CreationTimestamp:  Fri, 29 Mar 2024 16:39:55 +0800
Taints:             <none>
Unschedulable:      false
Lease:
 

2、创建污点

2.1 创建资源

[root@master deployment-demo]# cat taint.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: taint-demo
spec:
  replicas: 5
  selector:
    matchLabels:
      k8s: dolphin
  template:
    metadata:
      name: pod01
      labels:
        k8s: dolphin
    spec:
      containers:
      - name: c1
        image: nginx
        ports:
        - containerPort: 80

[root@master deployment-demo]# kubectl apply -f taint.yaml 
deployment.apps/taint-demo created
 

我们可以看到资源是随机分布的

2.2 创建污点 

创建污点有两种方式:

  •         第一种:key=value:污点类型
  •         第二种:key:污点类型

创建污点

[root@master deployment-demo]# kubectl taint node node1 dolphin:NoExecute

查看状态,全都被驱离到node2节点上了

2.3 删除污点

[root@master deployment-demo]# kubectl taint node node1 dolphin:NoExecute-
node/node1 untainted

我们看到删除pod,node1节点又能重新分配pod资源了

2.4 修改污点

[root@master deployment-demo]#  kubectl taint node node1 dolphin:NoExecute
[root@master deployment-demo]#  kubectl taint node node1 dolphin2=123:NoExecute --overwrite
node/node1 modified

3、 污点容忍tolerations

3.1 污点容忍的概念

        通过上文,我们知道可以通过给k8s集群节点设置不同类型的“污点”,来控制资源创建的节点范围;

        那么,k8s也同时提供了“污点容忍”,就是即便你的节点设置了“污点”,我的资源也可以创建在这个节点上的能力;

        假设:一个节点上有两个污点,但是你创建pod的时候,还想在这个节点上创建,那么你就需要在资源清单中,写如“容忍这两个污点”,才会创建成功

3.2 污点容忍案例

上边案例中我们已经创建了2个污点,且创建资源时,node1节点不允许分配资源

3.2.1 修改资源清单,设置污点容忍

[root@master deployment-demo]# cat taint.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: taint-demo
spec:
  replicas: 5
  selector:
    matchLabels:
      k8s: dolphin
  template:
    metadata:
      name: pod01
      labels:
        k8s: dolphin
    spec:
      # 设置污点容忍
      tolerations:
      - key: node-role.kubernetes.io/master # master节点的污点
        effect: NoSchedule #指定污点类型
        operator: Exists #只要匹配到key就满足这个条件
      - key: dolphin
        effect: NoExecute
        operator: Equal
      - key: dolphin2
        value: "123"
        effect: NoExecute
        operator: Equal #key和value都要满足匹配条件

      containers:
      - name: c1
        image: nginx
        ports:
        - containerPort: 80

[root@master deployment-demo]# kubectl apply -f taint.yaml 
deployment.apps/taint-demo created

通过以上污点容忍配置,我们可以看到三个节点都能分配pod资源了

3.2.2 无视所有污点配置

[root@master deployment-demo]# cat taint.yaml 
apiVersion: apps/v1
kind: Deployment
metadata:
  name: taint-demo
spec:
  replicas: 5
  selector:
    matchLabels:
      k8s: dolphin
  template:
    metadata:
      name: pod01
      labels:
        k8s: dolphin
    spec:
      # 设置污点容忍
      tolerations:

        # 不写污点key的相关属性表示匹配所有key
      - operator: Exists

      containers:
      - name: c1
        image: nginx
        ports:
        - containerPort: 80

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/5063.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

如何退出远程桌面连接?

远程桌面连接是一种便捷的远程访问方式&#xff0c;可以让用户在任何地方远程访问并控制另一台计算机。但是&#xff0c;在使用远程桌面连接过程中&#xff0c;有时我们需要及时退出连接&#xff0c;以保护数据安全或释放计算资源。本文将介绍如何退出远程桌面连接。 使用Windo…

IC设计数据传输 如何能保障安全高效?

IC&#xff08;集成电路&#xff09;设计数据&#xff0c;对于IC设计企业来说&#xff0c;其重要性不言而喻。所以IC设计数据传输过程中&#xff0c;其安全性和效率&#xff0c;也需要有保障。 首先我们来看看IC设计数据为什么重要&#xff0c;其重要性体现在多个方面&#xff…

分布式与一致性协议之Raft算法(二)

Raft算法 什么是任期 我们知道&#xff0c;议会选举中的领导者是有任期的&#xff0c;当领导者任命到期后&#xff0c;需要重新再次选举。Raft算法中的领导者也是有任期&#xff0c;每个任期由单调递增的数字(任期编号)标识。比如&#xff0c;节点A的任期编号是1。任期编号会…

Python基础学习之去除换行符

strip() 方法 strip() 方法用于去除字符串开头和结尾的空白字符&#xff0c;包括换行符&#xff08;\n&#xff09;、制表符&#xff08;\t&#xff09;和空格等。如果您想从字符串数据中去掉换行符&#xff0c;无论是单独存在的还是与其他空白字符一起&#xff0c;strip() 方…

自动驾驶中的深度学习和计算机视觉

书籍&#xff1a;Applied Deep Learning and Computer Vision for Self-Driving Cars: Build autonomous vehicles using deep neural networks and behavior-cloning techniques 作者&#xff1a;Sumit Ranjan&#xff0c;Dr. S. Senthamilarasu 出版&#xff1a;Packt 书籍…

算法设计与分析4.1 迷宫问题 栈与队列解法、打印矩阵、三壶问题、蛮力匹配

1.ROSE矩阵 实现&#xff1a; 使用算法2 分析&#xff1a; 每半圈元素值的增长规律变换一次 设增量为t&#xff0c;每半圈变换一次t <— -t . 设矩阵边长为i&#xff0c;每半圈的元素个数是2*(i-1)个&#xff0c;hc为记数变量&#xff0c;则1≤hc<2i-1&#xff0c;前1/…

[华为OD]C卷 找座位,在一个大型体育场内举办了一场大型活动,由于疫情防控的需要 100

题目&#xff1a; 在一个大型体育场内举办了一场大型活动&#xff0c;由于疫情防控的需要&#xff0c;要求每位观众的必须间隔至 少一个空位才允许落座。现在给出一排观众座位分布图Q,座位中存在已落座的观众&#xff0c;请计 算出&#xff0c;在不移动现有观众座位的情况…

Linux中ssh登录协议

目录 一.ssh基础 1.ssh协议介绍 2.ssh协议的优点 3.ssh文件位置 二.ssh原理 1.公钥传输原理&#xff08;首次连接&#xff09; 2.ssh加密通讯原理 &#xff08;1&#xff09;对称加密 &#xff08;2&#xff09;非对称加密 3.远程登录 三.服务端的配置 常用的配置项…

vscode 配置与插件记录

vscode插件 python PythonPython DebuggerruffisortPylanceJupyterJupyter KeymapJupyter Slide ShowJupyter Cell TagsautoDocstring - Python Docstring Generator ruff isort pylance autodocsting 在setting.json里这么配置&#xff0c;这样你保存时就会自动format…

Matlab|含sop的33节点配电网优化

目录 1 主要内容 2 部分代码 3 程序结果 4 下载链接 1 主要内容 程序以IEEE33节点为例&#xff0c;分析含sop的配电网优化&#xff0c;包括sop有功约束、无功约束和容量约束&#xff0c;非线性部分通过转换为旋转锥约束进行编程&#xff0c;并且包括33节点配电网潮流及对应…

Re69:读论文 LaMDA: Language Models for Dialog Applications

诸神缄默不语-个人CSDN博文目录 诸神缄默不语的论文阅读笔记和分类 论文名称&#xff1a;LaMDA: Language Models for Dialog Applications ArXiv网址&#xff1a;https://arxiv.org/abs/2201.08239 本文介绍谷歌提出的对话大模型LaMDA&#xff0c;主要关注对各项指标&#x…

智慧能源数据监控平台

随着科技的飞速发展&#xff0c;能源管理已逐渐从传统的粗放型向精细化、智能化转变。在这个转型过程中&#xff0c;HiWoo Cloud平台的智慧能源数据监控平台以其独特的技术优势和创新理念&#xff0c;正引领着能源管理的新潮流。 一、智慧能源数据监控平台的概念 智慧能源数据…

经典文献阅读之--SurroundOcc(自动驾驶的环视三维占据栅格预测)

0. 简介 环视BEV已经是很多场景中需要的功能&#xff0c;也是视觉代替激光雷达的有效解决方案&#xff0c;而《SurroundOcc: Multi-camera 3D Occupancy Prediction for Autonomous Driving》一吻则代表了这个领域的SOTA算法&#xff0c;文中通过多帧点云构建了稠密占据栅格数据…

python爬虫插件XPath的安装

概要 XPath Helper是一款专用于chrome内核浏览器的实用型爬虫网页解析工具。XPath可以轻松快捷地找到目标信息对应的Xpath节点&#xff0c;获取xpath规则&#xff0c;并提取目标信息&#xff0c;并进行校对测试&#xff1b;可对查询出的xpath进行编辑&#xff0c;正确编辑的结…

微信开发api、微信视频号开发

接口地址&#xff1a; http://api.videostui.com/finder/v2/api/login/checkLogin 接口说明 获取到登录二维码后需每间隔5s调用本接口来判断是否登录成功新设备登录平台&#xff0c;次日凌晨会掉线一次&#xff0c;重新登录时需调用获取二维码且传appId取码&#xff0c;登录成…

android studio拍照功能问题解决

1.点击拍照功能直接闪退 2.拍照后不能选择确认键&#xff0c;无法保存 上述是在android studio做项目中经常会使用到模拟器或真机的拍照功能时主要遇到的两个问题。 解决方法&#xff1a; 1.直接闪退问题&#xff1a; if(Build.VERSION.SDK_INT>Build.VERSION_CODES.N)…

关于使用SpringSecurity框架发起JSON请求,但因登陆失效导致响应403的问题。

这里记录一个生产中遇到的一个问题。 现有环境是基于SpringBoot 2.6.8&#xff0c;然后是前后台一体化的项目。 安全框架使用的是内置版本的SpringSecurity。 在实际使用过程中遇到一个问题。 就是当用户登陆失效后&#xff0c;前端操作JSON请求获取列表数据&#xff0c;但…

323_C++_QT_使用QProcess执行cmd解压tar.gz等等其他压缩包文件到指定目录,不需要外部库,QT自带API的就行

// decompressPath : 解压到此目录 // fileName : 解压的tar.gz文件名executeCommand(decompressPath , QString::fromStdString(fileName));// 开始解压 void executeCommand

上海亚商投顾:沪指创年内新高 房地产板块掀涨停潮

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一.市场情绪 三大指数昨日继续反弹&#xff0c;沪指盘中涨超1%&#xff0c;重返3100点上方&#xff0c;深成指涨超2%&#…

初探 JUC 并发编程:Java 并发包中并发 List 源码剖析

最近在阅读 《Java 并发编程之美》这本书&#xff0c;感觉学到了很多东西&#xff1b;所以我决定将从事书中学到的思想和一些经典的案例整理成博客的形式与大家分享和交流&#xff0c;如果对大家有帮助别忘了留下点赞和关注捏。 第五部分&#xff1a;Java 并发包中并发 List 源…