8-k8s-污点与容忍

news2025/1/11 16:54:27

文章目录

    • 一、概念
    • 二、相关操作
    • 三、实操污点NoSchedule
    • 四、实操污点NoExecute
    • 五、实操容忍

一、概念

  1. 污点与容忍

    污点taints定义在节点之上的键值型属性数据。当节点被标记为有污点,那么意味着不允许pod调度到该节点。

    容忍tolerations是定义在 Pod对象上的键值型属性数据。被打上污点的节点,如果同时被pod标记为可以容忍污点的节点,则允许pod调度到该节点。。

    ps:在使用kubeadm部署的k8s集群的时候应该会发现,通常情况下,应用不会调度到master节点。因为默认给master节点加了污点。

    1)污点一般打在节点上,且一个节点可以配置使用多个污点

    2)容忍是标注在pod(资源控制器)上的。一个Pod(资源控制器)也可以有多个容忍度。启动pod一般不会调度在有污点的节点上,除非该pod标注了这些污点的容忍,才可以被调度。

  2. 污点配置类型

    1)Noschdule:如果Pod不能忍受这类污点,则该污点节点后续不会进行pod调度,已经创建的pod不会受到影响。
    2)NoExecute:如果Pod不能忍受这类污点,则该污点节点会马上驱除该节点上所有非kube-system空间的所有pod节点。

    3)PreferNoSchedule: NoSchedule的软约束,即该污点节点后续基本不会进行pod调度,但是无其他节点可供调度时,才允许调度到该节点。已经创建的pod不会受到影响。

二、相关操作

  1. 为节点打上污点:kubectl taint node kas-master key=value:Noschedule

  2. 移除污点:kubectl taint node k8s-master key=value:Noschedule-

  3. 查看污点指令:kubectl taint -h

  4. pod配置容忍

    # pod的 spec下面配置容忍
    tolerations:
    - key: "污点的 key"
      value: "污点的value"
      offect: "NoSchedule" #污点产生的影响
      operator: "Equal" #1.Equal:pod和节点的key+value都要相等。2.Exists:pod和节点的key相等即可。
      tolerationSeconds: 时间(s)  #tolerationSeconds不设置,则Pod会一直在满足容忍的节点上一直执行。
    

三、实操污点NoSchedule

  1. 给worker1节点打上污点:kubectl taint no worker1 key1=value1:NoSchedule

  2. 查看节点: kubectl describe no worker1
    在这里插入图片描述

  3. 编写yaml清单:vi deployment-nginx.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: deployment-nginx     #Deployment 的名称
      labels:
        app: nginx
    spec:
      replicas: 3       # 创建 Pod 的副本数
      selector:         #定义 Deployment 如何找到要管理的 Pod,与 template 的 label(标签)对应
        matchLabels:
          app: nginx
      template:          #字段包含以下字段:
        metadata:
          labels:
            app: nginx    #使用 label(标签)标记 Pod
        spec:             #表示 Pod 运行一个名字为 nginx 的容器
          containers:
          - name: nginx
            image: nginx:1.15       #表示 Pod 运行一个名字为 nginx 的容器
            ports:                  #容器用于发送和接收流量的端口
            - containerPort: 80
    
  4. 创建:kubectl apply -f deployment-nginx.yaml

  5. 查看,发现worker1上面没有调度pod:kubectl get pod -o wide
    在这里插入图片描述

  6. 移除污点:kubectl taint no worker1 key1=value1:NoSchedule-

四、实操污点NoExecute

  1. 删除所有pod:kubectl delete -f deployment-nginx.yaml

  2. 重新部署:kubectl apply -f deployment-nginx.yaml

  3. 查看:kubectl get pod -o wide
    在这里插入图片描述

  4. 设置NoExecute:kubectl taint no worker1 key1=value1:NoExecute

  5. 查看节点:kubectl get pod -o wide

    ps:可以看到,除了kube-system空间以外的其他空间,所有worker1上的pod都被驱除
    在这里插入图片描述

五、实操容忍

  1. 在deployment-nginx上设置污点容忍,然后再次查看:vi deployment-nginx.yaml

    tolerations:
    - key: "key1"
      operator: "Equal"
      value: "value1"
      effect: "NoExecute"
    

    完整配置

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: deployment-nginx
      labels:
        app: nginx
    spec:
      replicas: 3
      selector:
        matchLabels:
          app: nginx
      template:
        metadata:
          labels:
            app: nginx
        spec:
          tolerations:
          - key: "key1"
            operator: "Equal"
            value: "value1"
            effect: "NoExecute"
          containers:
          - name: nginx
            image: nginx:1.15
            ports:
            - containerPort: 80
    
  2. 更新:kubectl apply -f deployment-nginx.yaml

  3. 查看pod:kubectl get pod -o wide
    在这里插入图片描述

  4. 测试完还原,删除污点:kubectl taint no worker1 key1=value1:NoExecute-

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

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

相关文章

深度学习——卷积神经网络(CNN)基础二

深度学习——卷积神经网络(CNN)基础二 文章目录 前言三、填充和步幅3.1. 填充3.2. 步幅3.3. 小结 四、多输入多输出通道4.1. 多输入通道4.2. 多输出通道4.3. 11卷积层4.4. 小结 总结 前言 上文对卷积有了初步的认识,其实卷积操作就是通过卷积…

《开箱元宇宙》:《福布斯》如何通过 Web3 改进讲故事的方式

你们是否想知道 The Sandbox 如何融入世界上最具标志性的品牌和名人的战略?在本期《开箱元宇宙》系列中,我们与《福布斯》一起探讨了他们为何决定在 The Sandbox 中尝试 Web3,以及他们如何改变讲故事的方式,以便在一次体验中吸引超…

C++QT---QT-day1

/*************************登陆窗口制作***************************/ #include "mywindow.h"MyWindow::MyWindow(QWidget *parent): QMainWindow(parent) {this->resize(500,350);this->setWindowTitle("登陆界面");this->setWindowIcon(QIcon(…

【特纳斯电子】基于单片机的火灾监测报警系统-实物设计

视频及资料链接:基于单片机的火灾监测报警系统-实物设计 - 电子校园网 (mcude.com) 编号: T0152203M-SW 设计简介: 本设计是基于单片机的火灾监测报警系统,主要实现以下功能: 1.通过OLED显示温度、烟雾、是否有火…

Leetcode—136.只出现一次的数字【简单】

2023每日刷题&#xff08;二&#xff09; Leetcode—136.只出现一次的数字 位运算法 实现代码 int singleNumber(int* nums, int numsSize){int i 0;int res 0;for(; i < numsSize; i) {res ^ nums[i];}return res; }运行结果 之后我会持续更新&#xff0c;如果喜欢我的…

【网络安全 --- win10系统安装】win10 系统详细安装过程(提供资源)

一&#xff0c;资源下载 百度网盘镜像下载地址链接&#xff1a; 百度网盘 请输入提取码百度网盘为您提供文件的网络备份、同步和分享服务。空间大、速度快、安全稳固&#xff0c;支持教育网加速&#xff0c;支持手机端。注册使用百度网盘即可享受免费存储空间https://pan.ba…

笔试算法题ACM模式输入输出处理

1. Python input之后得到的全是string类型&#xff0c;数字需要用int(n)进行转换 读取单个数 n int(input()) 读取一串数组&#xff1a; nums [int(n) for n in input().split()] &#xff08;nums是个数组&#xff09; 读取字符串&#xff1a; stringinput().split(…

队列的运行算法

1.链队&#xff1a; 插入 删除 打印 取队顶 #include <stdio.h> #include <stdlib.h>typedef struct Qnode{int data;struct Qnode *next; }Qnode,*QuenePtr;typedef struct {QuenePtr front;QuenePtr rear; }LinkQueue; //初始化 void InitQueue(LinkQueue *q){(…

从头开始编写BP,不使用MATLAB工具箱,纯手写matlab代码,以BP分类为例,MATLAB代码免费获取...

本期文章教大家纯代码搭建BP神经网络&#xff0c;适合大家深入理解BP神经网络&#xff0c;非常适合新手学习&#xff01; 现在直接用手写BP代码的很少&#xff0c;一般都是用的MATLAB自带BP函数。然而如果你会自行编写BP神经网络&#xff0c;将会深入理解BP神经网络的结构与原理…

计讯物联水利RTU强力推进小型水库雨水情测报和安全监测系统应用

政策背景 小型水库是城市供水、农业灌溉和防洪排涝的重要基础设施&#xff0c;关系到人民群众的生产生活和社会经济的稳定发展。当前&#xff0c;小型水库监测设施薄弱是水库安全管理的突出短板&#xff0c;因此&#xff0c;水利部自2021年以来推进实施小型水库雨水情测报设施、…

语法分析出错,不是 GROUP BY 表达式

报错 ### Cause: dm.jdbc.driver.DMException: 第 9 行, 第 69 列[30]附近出现错误: 语法分析出错 ; bad SQL grammar []; nested exception is dm.jdbc.driver.DMException: 第 9 行, 第 69 列[30]附近出现错误: 语法分析出错at org.springframework.jdbc.support.SQLState…

java入门程序-HelloWorld

1.java程序开发的三个步骤 1.开发java程序&#xff0c;需要三个步骤&#xff1a;编写代码&#xff0c;编译代码(javac)&#xff0c;运行代码(java) 注意事项&#xff1a; 1.第一个java程序建议使用记事本书写。 2.建议代码文件名全英文&#xff0c;首字母大写&#xff0c;满…

院内导航系统厂商分析

随着医疗技术的不断发展和医院规模的不断扩大&#xff0c;院内导航系统成为了现代化医院不可或缺的一部分。患者就医时&#xff0c;一个高效便捷的导航系统可以帮助他们快速找到目标科室&#xff0c;同时也能提高医院的整体运营效率。本文将推荐五家在院内导航市场具有竞争力的…

【算法|前缀和系列No.4】leetcode238. 除自身以外数组的乘积

个人主页&#xff1a;兜里有颗棉花糖 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【leetcode】 &#x1f354;本专栏旨在提高自己算法能力的同时&#xff0c;记录一下自己的学习过程&#xff0c;希望…

EL表达式与JSTL

1.EL表达式 1.EL表达式概述 EL(Expression Language)&#xff1a;表达式语言 在 JSP 2.0 规范中加入的内容&#xff0c;也是 Servlet 规范的一部分 作用&#xff1a;在 JSP 页面中获取数据。让我们的 JSP 脱离 java 代码块和 JSP 表达式 语法&#xff1a;${ 表达式内容 } …

群晖NAS drive的远程访问和电脑硬盘的内网穿透挂载设置方法

文章目录 前言1.群晖Synology Drive套件的安装1.1 安装Synology Drive套件1.2 设置Synology Drive套件1.3 局域网内电脑测试和使用 2.使用cpolar远程访问内网Synology Drive2.1 Cpolar云端设置2.2 Cpolar本地设置2.3 测试和使用 3. 结语 前言 群晖作为专业的数据存储中心&…

【弃坑xdm】docker容器作为开发环境,更加灵活可靠

关于我准备转行深度学习~~ 弃坑xdm 弃坑xdm 弃坑xdm 转发给你的同学&#xff0c;吓他们一跳~~ ps:其实我准备使用docker容器作为开发环境&#xff0c;vscode可以直接连接docker容器&#xff0c;更加灵活可靠。

企业常用的项目管理工具推荐,了解有哪些选择

项目管理软件是一种帮助项目经理和团队有效地计划、组织和管理项目的工具。它为协作、通信和任务管理提供了一个集中的平台。市场上有各种各样的项目管理软件&#xff0c;每个都有其独特的特性和功能。企业常用的项目管理工具有哪些&#xff1f; 1.Zoho Projects Zoho Projec…

基于tornado BELLE 搭建本地的web 服务

我的github 将BELLE 封装成web 后端服务&#xff0c;采用tornado 框架 import timeimport torch import torch.nn as nnfrom gptq import * from modelutils import * from quant import *from transformers import AutoTokenizer import sys import json #import lightgbm a…

2023年中国城市矿产行业产值及发展趋势分析[图]

城市矿产是指工业化和城镇化过程中产生和蕴藏于废旧机电设备、电线电缆、通讯工具、汽车、家电、电子产品、金属和塑料包装物以及废料中&#xff0c;可循环利用的钢铁、有色金属、贵金属、塑料、橡胶等资源。 开展“城市矿产”示范基地建设是缓解资源瓶颈约束&#xff0c;减轻环…