Kubernetes(k8s):Pod 的 Node Selector详解

Kubernetes(k8s):Pod 的 Node Selector详解

  • 1、什么是Node Selector?
  • 2、Node Selector的工作原理
  • 3、Node Selector的用法
    • 1、例如:给node01 、node02 分别打上标签
    • 2、使用标签调度Pod
    • 3、删除节点的标签


💖The Begin💖点点关注,收藏不迷路💖

1、什么是Node Selector?

Node Selector是Kubernetes中一个用于指定Pod部署位置的重要概念。通过Node Selector,用户可以将Pod调度到具有特定标签的节点上。

这种标签通常用于区分节点的硬件配置、地理位置、网络特性等。通过合理地设置Node Selector,用户可以优化应用程序的性能、稳定性和可用性。

2、Node Selector的工作原理

在这里插入图片描述

Node Selector的工作原理相对简单,主要包括以下几个步骤:

1、用户为集群中的节点打上标签(Label):用户需要在Kubernetes集群中为节点打上相应的标签,以便后续将Pod调度到合适的节点上。标签可以是任意的键值对,例如zone: east、gpu: true等。

2、用户在Pod的定义中指定Node Selector:在创建Pod的时候,用户可以通过Pod的Spec部分,使用nodeSelector字段来指定Node Selector。Node Selector是一个键值对,Pod将被调度到具有匹配标签的节点上。

3、调度器进行节点选择:Kubernetes的调度器会根据Pod的Node Selector,选择具有匹配标签的节点来部署Pod。如果没有匹配的节点,则Pod将处于Pending状态,直到有合适的节点可用。

3、Node Selector的用法

1、例如:给node01 、node02 分别打上标签

给node01打上标签 zone=east 和 node02 打上标签zone=west。

# 给节点打上标签(为了演示先不给k8s-node01打标签,验证后面如果没有任何节点具有该标签,则pod会一直处于Pending状态)
kubectl label nodes k8s-node01 zone=east
kubectl label nodes k8s-node02 zone=west


## 验证标签是否已添加
kubectl get nodes --show-labels

在这里插入图片描述

2、使用标签调度Pod

在给节点添加了标签后,可以在Pod配置中使用nodeSelector来指定Pod应该被调度到哪些节点上。

1、例如,如果希望Pod只在zone=east的节点上运行,可以在Pod的配置文件中添加nodeSelector字段,如下所示:

vim mypod.yaml, 添加下面内容,指定  nodeSelector: zone: east
apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - name: mycontainer
    image: nginx
  nodeSelector:
    zone: east

在这里插入图片描述

在上面的示例中,我们创建了一个名为nginx的Pod,并指定了Node Selector为zone: east。

2、使用 kubectl apply 命令将 mypod 应用到集群。

 kubectl apply -f mypod.yaml

在这里插入图片描述

3、查看所有pod

kubectl get pods

在这里插入图片描述
4、给k8s-node01节点打上zone: east标签

kubectl label nodes k8s-node01 zone=east

5、再次查看所有pod

kubectl get pods

在这里插入图片描述

这意味着该Pod将被调度到具有zone: east标签的节点上,如果没有任何节点具有该标签,则pod会一直处于Pending状态,直到符合要求的节点出现为止。

3、删除节点的标签

可以使用 kubectl label 命令并将要删除的标签键的值设置为空字符串。以下是如何删除节点 k8s-node01 上的 zone 标签的示例:

kubectl label nodes k8s-node01 zone-

在这里插入图片描述

同样地,你也可以通过相同的方式删除 k8s-node02 上的标签:

kubectl label nodes k8s-node02 zone-

通过将标签的值设置为空字符串来实现标签的删除。

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

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

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

相关文章

java面试题(Redis)

事情干的差不多了,开刷面试题和算法,争取在短时间内快速成长,理解java面试的常见题型 一、redis使用场景: 缓存:穿透、击穿、雪崩 双写一致、持久化 数据过期、淘汰策略 分布式锁:setnx、redisson 计数…

武汉星起航推出亚马逊一站式孵化平台,助力合作伙伴快速成长

武汉星起航电子商务有限公司,自2020年正式成立以来,凭借其专业的运营团队和丰富的行业经验,在跨境电商领域取得了显著的成绩。为了进一步满足市场需求,武汉星起航决定推出亚马逊一站式孵化平台,旨在为合作伙伴提供更全…

网盘分享链接

点击打开下面这条链接,保存文件 https://pan.xunlei.com/s/VNuDMRtfBQvmfqqwjsBAIg2pA1?pwdhqd3 网盘里文件太多,找不到,怎么办? 进入我的B站主页【I泠霖I的个人空间-哔哩哔哩】 https://b23.tv/VYxaiJb,点击右上角的…

PC发送指令给单片机控制LED(与上一篇文章相反)

此时要重新配置寄存器 ,实现电脑往单片机传输数据 1、配置SCON寄存器的REN 即 REN 1 2、有TI(发送中断)就有RI(接收中断) 3、优化 发现发送 o 时,D5亮灯会有延迟 下面就是做到真正的无延迟的全双工通信 …

JVM基础

初识JAM JVM就是JAVA虚拟机,本质上是一个运行在计算机上的程序,他的职责是运行JAVA字节码文件. 下面是java代码执行过程 JVM的功能 1.解释和运行 对字节码文件中的指令实时的解释成机器码 2.内存管理 自动为对象,方法等分配内存自动的垃圾回…

27.WEB渗透测试-数据传输与加解密(上)

免责声明:内容仅供学习参考,请合法利用知识,禁止进行违法犯罪活动! 内容参考于: 易锦网校会员专享课 上一个内容:26.WEB渗透测试-BurpSuite(五) BP抓包网站网址:http:…

IIC协议——OLED(128*64)外设

IIC协议(Inter-Integrated Circuit Protocol),也被称为I2C(Inter-Integrated Circuit),是一种串行通信协议,通常用于连接集成电路(IC)和外部设备,例如传感器、…

AWS入门实践-利用S3构建一个静态网站

使用Amazon S3托管静态网站是一个流行的选择,因为它简单、成本效益高,并且易于维护。静态网站由不含服务器端脚本的文件组成,如HTML、CSS和JavaScript文件。下面是使用S3托管静态网站的操作步骤: 如果大家没有AWS免费账号&#x…

STM32CubeIDE基础学习-舵机控制实验

STM32CubeIDE基础学习-舵机控制实验 文章目录 STM32CubeIDE基础学习-舵机控制实验前言第1章 硬件介绍第2章 工程配置2.1 基础工程配置部分2.2 生成工程代码部分 第3章 代码编写第4章 实验现象总结 前言 SG90、MG996舵机在机器人领域用得非常多,因为舵机有内置控制电…

【Java网络编程】OSI七层网络模型与TCP/IP协议簇

1.1、OSI七层网络模型 OSI七层网络模型中,每层的功能如下: 应用层:人与计算机网络交互的窗口。表示层:负责数据格式的封装,如加密、压缩、编解码等。会话层:建立、终止、管理不同端间的会话连接。传输层&a…

[技术闲聊]我对电路设计的理解(九)-如何与Layout工程师交互

一、“”电路设计“的理解 原理图设计完成,设计规则检测、netlist都通过后,就可以把原理图发送给Layout,是不是此刻意味着硬件工程师功成身退了呢? 远远没有,还有多件事情等待着,文章题目我对电路设计的理解…

【Node.js从基础到高级运用】二十一、使用child_process模块创建子进程

引言 在Node.js中,child_process模块是一个提供了创建和管理子进程的能力的核心模块。通过使用child_process模块,Node.js可以执行系统命令、运行其他脚本或应用程序,实现与Node.js进程的并行处理。 child_process模块提供了几种创建子进程的…

搭建电商独立站|适合做独立站的国家有哪些?该怎么布局?

在传统外贸和跨境电商行业,独立站是一种更专业并且获益空间相对会更高的方法,独立站可以让卖家拥有更多的自由控制权,卖家能更精准的定位用户人群,也可以自行流量推广,独立站不会被永远封店铺、不会对卖家进行罚款等等…

HTML - 你如何使H5页面禁止手动缩放

难度级别:初级及以上 提问概率:40% 我们知道,这道题其实是在考察meta标签的viewport属性,正常情况下设置viewport的代码为 <head><meta name="viewport" content="width=device-width,initial-scale=1.0" …

560.和为K的子数组

560.和为K的子数组 给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a; 输入&#xf…

线程池参数该怎么配置才能充分压榨CPU?

&#x1f3c3;‍♂️ 微信公众号: 朕在debugger© 版权: 本文由【朕在debugger】原创、需要转载请联系博主&#x1f4d5; 如果文章对您有所帮助&#xff0c;欢迎关注、点赞、转发和订阅专栏&#xff01; 目标 配置好线程池参数&#xff0c;压榨CPU&#xff0c;资本家看了都…

云备份day03

&#x1f4df;作者主页&#xff1a;慢热的陕西人 &#x1f334;专栏链接&#xff1a;C云备份项目 &#x1f4e3;欢迎各位大佬&#x1f44d;点赞&#x1f525;关注&#x1f693;收藏&#xff0c;&#x1f349;留言 主要内容介绍了第三方库httplib的一些内容&#xff0c;以及实现…

易宝OA getStockInRequestPrintDetail SQL注入漏洞复现

0x01 产品简介 易宝OA系统是一种专门为企业和机构的日常办公工作提供服务的综合性软件平台,具有信息管理、 流程管理 、知识管理(档案和业务管理)、协同办公等多种功能。 0x02 漏洞概述 易宝OA getStockInRequestPrintDetail 接口处存在SQL注入漏洞,未经身份认证的攻击者…

Promise和async/await

Promise是异步编程的一种解决方案&#xff0c;用来解决多层回调嵌套的问题。它的构造函数是同步执行的&#xff0c;then 方法是异步执行的&#xff0c;所以创建后里面的函数会立即执行&#xff0c;构造函数中的resolve和reject只有第一次执行有效&#xff0c;也就是说Promise状…

随手集☞MySQL部分知识盘点(loading。。。)

字段类型 数值类型 INT: 整数类型&#xff0c;可以是正数或负数。根据显示宽度和是否有符号&#xff0c;其范围会有所不同。TINYINT: 非常小的整数。SMALLINT: 小的整数。MEDIUMINT: 中等大小的整数。BIGINT: 大整数。FLOAT: 单精度浮点数。DOUBLE: 双精度浮点数。DECIMAL(M,N…