K8s scheduler 调度:NodeName、NodeSelector与Taint

news2024/11/17 5:53:41

d81a408015e5049f43d0984337b06156.gif

1

前言

上篇介绍了k8s调度的预选和优选策略,K8s scheduler 调度:预选和优选策略。

本篇介绍三个影响pod调度的配置:NodeName、NodeSelector与Taint。

2

NodeName


NodeName是根据node的名称调度pod。可用于强制约束Pod跳过默认的Kubernetes调度规则,直接调度Pod到指定的Node节点上。参数Pod.spec.nodeName。

例如我们有3台k8s节点,其中249.11状态是notReady,我们将nginx的deploy设置nodeName:192-168-249-11。

153ca4105551d73f900096e291887f5d.jpeg

尽管249.12节点是正常的,但是nginx pod仍然会调度到249.11。所以除了测试或开发期间,我们最好不要使用 nodeName。

00f8455d2fccd91bbc5943a5b404bdfc.jpeg


3

NodeSelector


使用 nodeSelector 可以约束 Pod 在有特定标签的节点上运行,例如我们在249.11打上 A=a的标签

3a30d1fa7c4b52fc06bcf2b8096077f4.jpeg

然后给nginx打上 参数Pod.spec.nodeSelector:A:a。

38de95e014f119cb74833117316372fe.jpeg

这时由于249.11节点是notReady的,所以pod状态仍然为pending。通过kubectl describe pod可以查看pod的event信息。

8d83f7c12ed267ff0974e8db5d20553b.jpeg

这时候我们给249.12也打上 A=a的标签,那么nginx的pod就可以调度到249.12上了,状态也变成running。

8db7061910273145674f0bcd4cd1d1f0.jpeg

4

污点taint

可以通过如下命令给node设置污点

kubectl taint nodes 192-168-249-12 key=value:NoSchedule

如果设置NoSchedule的污点,则node上面的pod仍然会继续运行,只是新建的pod无法调度到 192-168-249-12上。

如果设置污点为NoExecute,则node上面运行的无法容忍node污点的pod将立即被驱逐。如下图,nginx pod在node打完污点后立即变成pending状态。

153665b58e5da436d1707ec87f5a7d41.jpeg

此时node上仍然是有nodeSelector的,说明taint污点的优先级高于nodeSelector。

我们可以通过如下在pod上设置tolerations的方式容忍node污点。

9a9794be4c168ddaf186f3dbc74d5a7a.jpeg

设置完tolerations容忍污点后可以发现,pod又可以调度到有污点的node上,状态为running。

a7af85bc9c560e6dfd8a5a1b79a4e183.jpeg


点个赞

f27e03d873f21a209d9f2cf91faf3044.gif

再走吧

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

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

相关文章

Hive on Spark调优(大数据技术6)

第6章 Join优化 6.1 Hive Join算法概述 Hive拥有多种join算法,包括common join,map join,sort Merge Bucket Map Join等。下面对每种join算法做简要说明: 1)common join Map端负责读取参与join的表的数据&#xff…

Hive on Spark调优(大数据技术8)

第8章 任务并行度优化 8.1 优化说明 对于一个分布式的计算任务而言,设置一个合适的并行度十分重要。在Hive中,无论其计算引擎是什么,所有的计算任务都可分为Map阶段和Reduce阶段。所以并行度的调整,也可从上述两个方面进行调整。 …

Maven基础学习---3、Maven的使用(命令行)

1、根据坐标创建Maven工程 1、Maven核心概念:坐标 (1)数学中的坐标 使用x、y、z三个[向量]作为空间的坐标系,可以在[空间]中唯一定位到一个[点]。 (2)Maven中的坐标 1、向量说明 使用三个[向量]在[Maven…

MapReduce排序

MapTask和ReduceTask均会对数据按照key进行排序。该操作属于Hadoop的默认行为。任何应用程序中的数据均会被排序,而不管逻辑上是否需要。 默认排序是按照字典顺序排序,且实现该排序的方法是快速排序。 对于MapTask,它会将处理的结果暂时放到…

25 SQL ——标量子查询

create table dept(id int primary key auto_increment,name varchar(15))comment 部门;insert into dept(id, name) values (1,研发部),(2,市场部),(3,财务部),(4,销售部),(5,总经办),(6,人事部);create table staff (id int primary key auto_increment commentID,name …

Java课设部署教程

这里我只演示使用IDEA软件或Eclipse两种常用的Java编译器的导入项目的教程! IDEA部署教程 把下载的压缩包解压,解压后就是源码,打开IDEA,导入项目【源码】 选择源码所在的位置,点击ok即可导入 下面就是把源码导入到I…

(三)人工智能应用--深度学习原理与实战--神经网络的工作原理

机器学习是将输入(比如图像)映射到目标(比如标签“猫”),并建立映射规则(即模型)。在深度学习中,神经网络通过一系列数据变换层来实现这种输入到目标的映射,本章节我们具体来看这种学习过程是如何实现的。 学习内容 1、理解层(Layer)及权重(…

【王道·计算机网络】第四章 网络层

一、 概述和功能 1.1 网络层功能 主要任务:把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务传输单位:数据报功能: 路由选择与分组转发,即选择最佳路径异构网络互联(依靠路由器)拥塞控制(所有结点都来不…

基于PyQt5的图形化界面开发——自制ssh工具

基于PyQt5的图形化界面开发——自制ssh工具 0. 前言1. 第三方库的安装2. ssh原理3. 完整代码4. 演示效果5. 其他PyQt文章 0. 前言 本节我们使用PyQt5来制作一个简单的ssh小工具。 操作系统:Windows10 专业版 开发环境:Pycahrm Comunity 2022.3 Pytho…

设计模式中的UML基础

目录 1、UML概述 2、UML的用途 3、UML的构成 4、UML图 5、UML类图 5.1、类的构成 5.2、类与类之间的关系 6、绘制UML图的软件工具 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...)https://blog.csdn.net/chenlycl…

java线程组

文章目录 1. 简介2. 线程对象关联线程组:一级关联3. 线程对象关联线程组:多级关联4. 自动归属属性5. 获取根线程组 1. 简介 为了方便某些具有相同功能的线程进行管理,我们可以把线程归属到某一个线程组。线程组中可以有线程对象、线程&#…

【三维激光扫描】实验03:点云着色渲染模式详解

在SiScan软件中,点云的着色模式有:高程彩色、倾斜度、反射强度、自有颜色、点云测站、分隔片、分类7中,本文进行详细讲解。 文章目录 一、高程彩色二、倾斜度三、反射强度四、自有颜色五、分隔片一、高程彩色 高程彩色模式是按点云数据的Z值起算,颜色渐变显示。 二、倾斜度…

【AIGC】10、Chinese CLIP | 专为中文图文匹配设计

文章目录 一、背景二、方法2.1 基础内容2.2 数据集2.3 预训练方法2.4 模型尺寸 三、效果 论文:Chinese CLIP: Contrastive Vision-Language Pretraining in Chinese 代码:https://github.com/OFA-Sys/Chinese-CLIP 出处:阿里达摩院 时间&a…

061:cesium设置棋盘图材质(material-5)

第061个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置棋盘材质,请参考源代码,了解CheckerboardMaterialProperty的应用。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 文章目录 示例效果配置方式示例源代码(共89行)相关API参考:专栏目标…

第09章_子查询

第09章_子查询 子查询指一个查询语句嵌套在另一个查询语句内部的查询,这个特性从MySQL 4.1开始引入。 SQL 中子查询的使用大大增强了 SELECT 查询的能力,因为很多时候查询需要从结果集中获取数据,或者需要从同一个表中先计算得出一个数据结果…

SeaweedFs使用-环境准备

SeaweedFs使用-环境准备 1.下载go语言包实现go语言环境2.下载SeaweedFs文件3.安装SeaweedFs SeaweedFs是一款开源的分布式存储软件,在存储大量小文件方面有更好的优化,比较适合存储web项目的图片等文件。 1.下载go语言包实现go语言环境 因为SeaweedFs是…

实战TCP三次握手

开篇 在几乎所有的后端开发面试题中,TCP三次握手绝对是最被面试官青睐的题目之一。但是这个东西,平时开发中看不见,摸不着,对于很多人来说,是纯理论的知识,玄之又玄。但是为了应对面试,又不得不…

《JavaEE》网络编程TCP/IP五层协议万字详解

文章目录 TCP/IP五层协议栈应用层xml (可读性比较好 但是运行效率不高)json(可读性好 但是运行效率不高)prtobuffer(可读性不好 但是运行效率很高) 传输层UDP TCPTCP数据解读32位序号32位确认序号4位首部的长度保留位6位标志位字段…

C语言实现学生管理系统

学习完C语言之后,我们可以通过简单写一个学生管理系统来检验自己学的怎么样。很多计算机系大学生都会学到C语言,对于C语言课程的设计作业可能会感到困难,该篇博客的核心点就是带领读者单独完成学生管理系统,此篇博客附有整个学生管…

【C++ 入坑指南】(11)指针

文章目录 一、概念定义和使用二、空指针 & 野指针2.1 空指针2.2 野指针2.3 小结 三、const 修饰的指针四、指针 和 数组五、指针和函数六、实例 学习 C 的指针既简单又有趣。通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态…