【云原生之kubernetes系列】--污点与容忍

污点与容忍

  • 污点(taints):用于node节点排斥Pod调度,与亲和效果相反,即taint的node排斥Pod的创建
  • 容忍(toleration):用于Pod容忍Node节点的污点信息,即node节点有污点,也将新的pod创建到改node上

1.1污点配置

  • NoSchedule:硬限制,不将新创建的Pod调度到具有该污点的Node上.
  • PreferNoSchedule:软限制.避免k8s将尽量避免将Pod调度到具有该污点的Node上.
  • NoExecute:表示K8s将不会将Pod调度到具有该污点的Node上,同时会将Node上已经存在的Pod强制驱逐出去.

1.1.1污点配置方法一:

加污点
root@k8s-master1:/app/yaml/qhx# kubectl get nodes
NAME           STATUS                     ROLES    AGE   VERSION
172.17.1.101   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.102   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.103   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.107   Ready                      node     10d   v1.22.3
172.17.1.108   Ready                      node     10d   v1.22.3
172.17.1.109   Ready                      node     10d   v1.22.3
root@k8s-master1:/app/yaml/qhx# kubectl cordon 172.17.1.107
node/172.17.1.107 cordoned
root@k8s-master1:/app/yaml/qhx# kubectl get nodes
NAME           STATUS                     ROLES    AGE   VERSION
172.17.1.101   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.102   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.103   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.107   Ready,SchedulingDisabled   node     10d   v1.22.3
172.17.1.108   Ready                      node     10d   v1.22.3
172.17.1.109   Ready                      node     10d   v1.22.3

去污点
root@k8s-master1:/app/yaml/qhx# kubectl get nodes
NAME           STATUS                     ROLES    AGE   VERSION
172.17.1.101   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.102   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.103   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.107   Ready,SchedulingDisabled   node     10d   v1.22.3
172.17.1.108   Ready                      node     10d   v1.22.3
172.17.1.109   Ready                      node     10d   v1.22.3
root@k8s-master1:/app/yaml/qhx# kubectl uncordon 172.17.1.107
node/172.17.1.107 uncordoned
root@k8s-master1:/app/yaml/qhx# kubectl get nodes
NAME           STATUS                     ROLES    AGE   VERSION
172.17.1.101   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.102   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.103   Ready,SchedulingDisabled   master   10d   v1.22.3
172.17.1.107   Ready                      node     10d   v1.22.3
172.17.1.108   Ready                      node     10d   v1.22.3
172.17.1.109   Ready                      node     10d   v1.22.3

1.1.2污点配置方法二:

加污点:
root@k8s-master1:/app/yaml/qhx# kubectl taint node 172.17.1.107 key1=value:NoSchedule
node/172.17.1.107 tainted
Events:
  Type    Reason              Age    From     Message
  ----    ------              ----   ----     -------
  Normal  NodeNotSchedulable  5m44s  kubelet  Node 172.17.1.107 status is now: NodeNotSchedulable
去污点:
root@k8s-master1:/app/yaml/qhx# kubectl taint node 172.17.1.107 key1:NoSchedule-
node/172.17.1.107 untainted

1.2容忍

  • 定义pod的容忍度,可以调度至含有污点的node节点
  • 容忍基于operator的匹配污点
  • 如果operator是Exists,则容忍度不需要value而是直接匹配污点类型
  • 如果operator是Equal,则需要指定value并且value的值需要等于tolerations的key
root@k8s-master1:/app/yaml/qhx# kubectl cordon 172.17.1.107
node/172.17.1.107 cordoned
root@k8s-master1:/app/yaml/qhx# kubectl taint nodes 172.17.1.108 key1=value1:NoSchedule
node/172.17.1.108 tainted
root@k8s-master1:/app/yaml/qhx# kubectl describe nodes 172.17.1.108|grep Tain
Taints:             key1=value1:NoSchedule

此时部署pod,就会避开172.17.1.107和172.17.1.108

在这里插入图片描述

打开pod的容忍

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx-2
  namespace: webwork
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      tolerations:
      - key: "key1"
        operator: "Equal"
        value: "value1"
        effect: "NoSchedule"
      containers:
      - name: nginx
        image: nginx:latest
        ports:
        - containerPort: 80

此时172.17.1.107和172.17.1.108就可以被调度了

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

​亚马逊测评礼品卡撸C采退如何搬砖?

亚马逊测评礼品卡搬砖、撸C是什么? 拿亚马逊礼品卡搬砖来讲,除了汇率差还有佣金。因为盈利的是美刀,因此比我们国内礼品卡的利润更多。比如亚马逊礼品卡,它的折损率比较低,很容易出手,所以是硬通货的存在。…

SD-WAN与MPLS没有取代之说,合适的才最重要

随着企业网络需求的不断增长和变化,SD-WAN(软件定义广域网)和MPLS(多协议标签交换)成为企业网络架构中备受关注的两种技术。然而,值得注意的是,并不存在SD-WAN完全取代MPLS或相反的情况。本文将…

SpringMVC实现对网页的访问,在请求控制器中创建处理请求的方法

目录 测试HelloWorld RequestMapping注解 RequestMapping注解的位置 RequestMapping注解的value属性 RequestMapping注解的method属性 SpringMVC支持路径中的占位符(重点) SpringMVC获取请求参数 1、通过ServletAPI获取 2、通过控制器方法的形参…

Git系列---标签管理

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1.理解标签2.创建标签…

ThreadX_note:创建线程

ThreadX 创建线程 ThreadX 是一款实时操作系统 (RTOS),它提供了一套全面的 API,可以用于创建和管理线程。 创建线程 在 ThreadX 中,我们可以使用 tx_thread_create 函数来创建线程。 exam: #include "tx_api.h"/*…

Ansible自动化运维实战

一、abstract简介 ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric) 的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能.无客户端。我们要学一些Ansible的安装和一些基…

AI论文指南|ChatGPT在论文讨论部分能起到什么作用?

点击下方▼▼▼▼链接直达AIPaperPass ! AIPaperPass - AI论文写作指导平台 公众号原文▼▼▼▼: AI论文指南|ChatGPT在论文讨论部分能起到什么作用? 讨论部分是一篇论文的精华所在,也是写作中最难的部分。讨论部分主要是将文章…

单例模式有几种写法?请谈谈你的理解?

为什么有单例模式? 单例模式(Singleton),也叫单子模式,是一种常用的软件设计模式。在应用这个模式时,单例对象的类必须保证只有一个实例存在。许多时候整个系统只需要拥有一个全局对象,这样有利…

coreldraw怎么添加箭头?

使用coreldraw的时候知道箭头在哪里添加吗?下面小编就给大家带来coreldraw箭头添加教程,有需要的小伙伴不要错过哦。 coreldraw添加箭头方法 1、首先选择桌面Coreldraw格式图片。 2、然后点击文件夹按钮打开文件。 3、最后点击上方工具横线&#xff0c…

免费的ChatGPT网站 ( 7个 )

ChatGPT的核心功能是基于用户在输入时的语言或文本生成相应的回复或继续内容。此外,它还能够完成多种任务,如撰写邮件、视频脚本、文案、翻译、代码编写以及撰写论文等。 博主归纳总结了7个国内非常好用,而且免费的chatGPT网站,AI…

qt学习:http+访问百度智能云api实现车牌识别

目录 登录到百度智能云,找到文字识别 完成操作指引 开通 查看车牌识别的api文档 ​编辑​编辑 查看自己应用的api key 查看回应的数据格式 编程步骤 ui界面编辑 添加模块,头文件和定义变量 新建两个类,一个图像Image类&#xff0c…

使用Docker部署WBO白板并结合内网穿透实现远程访问WBO白板

本文主要是如何使用Docker部署WBO白板并实现公网地址远程访问的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 🌄每日一句&am…

leetcode刷题(剑指offer)54.螺旋矩阵

54.螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5]示例 2: 输入:ma…

编译和链接哪个才是最“猴急”的呢???

本篇会加入个人的所谓‘鱼式疯言’ ❤️❤️❤️鱼式疯言:❤️❤️❤️此疯言非彼疯言 而是理解过并总结出来通俗易懂的大白话, 我会尽可能的在每个概念后插入鱼式疯言,帮助大家理解的. 🤭🤭🤭可能说的不是那么严谨.但小编初心是能让更多人能…

Windows Server 2003 DNS服务器搭建

系列文章目录 目录 系列文章目录 文章目录 前言 一、DNS服务器是什么? 二、配置服务器 1.实验环境搭建 2.服务器搭建 3)安装Web服务器和DNS服务器 4)查看安装是否成功 5)这里直接配置DNS服务器了,Web服务器如何配置我已经发布过了 文章目录 Windows Serve…

从困惑到精通:私域运营领域10大问题全解析!

一、到底什么是“私域” 在探讨私域流量的实际操作之前,品牌需要对“私域”有一个清晰的认识。那么,究竟什么是“私域”呢? 有观点认为,私域是品牌方掌握的用户群体,这些用户可以在品牌的运营、沉淀和变现中发挥重要…

【第二十二课】最短路:dijkstra算法 ( acwing849 / acwing850 / c++ 代码)

目录 dijkstra算法求最短距离步骤 朴素的dijkstra算法---acwing-849 代码如下 代码思路 堆优化版的dijkstra算法---acwing-850 代码如下 关于最短路问题分有好几种类型 : 单源就是指:只求从一个顶点到其他各顶点 多源是指:要求每个顶…

基于springboot+vue的旅游管理系统(前后端分离)

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 研究现状…

uniapp顶部导航栏高度适配

为了实现好看又实用的顶部导航栏,不得不自己定义导航栏样式。而自己定义的导航栏高度会因为手机的型号不同所展示的效果也就不同,所以只能通过适配高度来达到预期的效果 1.需要在page.json文件中对需要自定义导航栏文件进行配置 "navigationStyle…

Leetcode第382场周赛

Leetcode第382场周赛 本人水平有限,只做前三道。 一、按键变更的次数 给你一个下标从 0 开始的字符串 s ,该字符串由用户输入。按键变更的定义是:使用与上次使用的按键不同的键。例如 s “ab” 表示按键变更一次,而 s “bBBb”…