k8s的node亲和性和pod亲和性和反亲和性 污点 cordon drain

node亲和性和pod亲和性和反亲和性 污点 cordon drain

集群调度:

schedule的调度算法

预算策略

过滤出合适的节点

优先策略

选择部署的节点

nodeName:硬匹配,不走调度策略,node01

nodeSelector:根据节点的标签选择,会走调度的算法

只要是走调度算法,在不满足预算策略的情况下,所有pod都是pending状态。

node节点的亲和性:

硬策略和软策略

硬策略:必须满足条件,匹配原则也是根据节点的标签

软策略:尽量满足你的要求而不是一定满足

pod的亲和性和反亲和性

调度策略:  匹配标签操作符拓扑域调度目标
node的亲和性主机标签In(在) Notin(不在) exists(:存在选择标签对象) DoesNotExist(不存在,选择不具有指定标签的对象) Gt(大于选择的标签值) Lt(小于选择标签值)不支持指定主机
pod的亲和性 pod的标签In(在) Notin(不在) exists(:存在选择标签对象) DoesNotExist(不存在,选择不具有指定标签的对象) Gt(大于选择的标签值) Lt(小于选择标签值)支持pod和指定标签的pod部署同一拓扑域
pod的反亲和性 pod的标签In(在) Notin(不在) exists(:存在选择标签对象) DoesNotExist(不存在,选择不具有指定标签的对象) Gt(大于选择的标签值) Lt(小于选择标签值)支持pod和指定标签的pod部署不同拓扑域

拓扑域:k8s集群节点当中的一个组织机构,可以根据节点的物理关系或者逻辑关系进行划分。可以用来表示节点之间空间关系,网络关系或者其他关系

标签,主机标签

注意点

1、pod的亲和亲和性策略,在配置时,必须要加上拓扑域,必须要加上拓扑域的关键字topologyKet,指向节点的标签

2、pod的亲和性的策略也分为硬策略和软策略

3、pid亲和性notin可以替代反亲和性

4、pod亲和性只要是为了把相关联的pod部署在同一节点,lnmp

你在进行部署的时候怎么考虑node节点

硬策略 软策略还有污点和容器可以配合node的亲和性一块使用

污点:是node调度机制,不是pod

被设为污点的节点不会部署pod

污点的亲和性相反,亲和性是尽量选择和一定选择

污点的节点一定不被选择

污点的名称taint

taint有三种:

1、NoSchedule:k8s是不会把pod调度这个节点上

2、PreferNoSchedule:如果污点类型是他,尽量避免把pod部署在该节点上,不是一定。(master节点的污点就是这个)

3、NoExecute:如果污点类型是它,k8s将会把该节点上pod全部驱除,而且也不会调度到这个节点,不是基于控制器创建pod的会被直接杀死,基于控制器创建pod的会在其他节点重新部署

基于控制器创建的pod,虽然被驱逐,会在其他节点重新部署

kubectl describe nodes node01 | grep -i taints #查看污点

kubectl taint node node01 key=1:NoSchedule #创建污点

kubectl taint node node01 key:NoSchedule- #删除NoSchedule污点

注意点:

节点服务器需要维护的,维护的情况下服务器关机,几点上的pod将会失效。在工作中主要主要部署pod的方式控制器部署,deployment控制器是最多的,一旦节点设置为驱逐,控制器创建的pod会在其他节点重新部署

1、所有的pod都会被驱逐,跟命名空间无关,所有的一切都会被驱逐

2、不会创建方式是什么,都会被驱逐

3、系统集群组件不会被驱逐

容忍机制:

即使节点上设置了污点有了容忍机制,依然可以在设置为污点的节点上部署pod.

特殊情况:NoExecute依然可以部署pod,但是有生命周期,时间一到pod会被销毁重新拉起 并不

生命周期结束之后,会驱逐一部分pod到其他节点,有的节点还是会保留在污点上,有的节点还是会保留在污点节点上

该节点维护完毕测试下节点的工作是否正常

tolerations:

-key: key operator: Exists

指定key的值,指标节点的标签值,但是不指定污点的类型,要么所有节点上只要包含了这个指定的标签名,可以容忍所有的污点

tolerations

-operator: Exists

-effect: Noschedule

没有key,不匹配节点标签,会容忍所有污点,类型是我指定的类型

node的亲和性

pod亲和性和反亲和性

污点和容忍

如何选择node节点部署pod

选择一个我期望的节点来部署pod

第一个例子

有多个master节点 一般会把kubectl taint node master名称 node-role.kubernetes.io/master=:PreferNoschedule

尽量不忘master节点上部署pod,但是不是一定的,防止资源浪费,自定义一个标签

业务维护:

node02需要维护2个小时

但是这个节点还有业务pod在运行

就需要把这个节点的污点设置为:NoExecute

我们部署pod一般都使用deployment部署,会在其他的重新部署,并不是被杀死

自主式的pod会被杀死

一点节点恢复,一定要污点去除

cordon和drain

cordon可以直接把节点标记为不可用状态

kubectl cordon node01 标记节点不可用

kubectl uncordon node01 删除标记不可用

drain:排水,把该节点下的po全部转移到其他node节点上运行

1、一旦执行drain,被执行的节点会变成不可调用状态

2、驱逐该节点上的所有pod

kubectl drain node02 --ignore-daemonsets --delete-local-data --force

drarin:排水,标记node节点为不可调度,然后驱逐pod

--ignore-daemonsets:忽视daemonsets部署的pod,daemonsets部署的pod还在节点

--delete-local-data:有本地挂载卷的会被强制杀死

--force:强制释放不是控制器管的pod

--ignore-daemonsets

还是如何来管理和部署pod

node亲和性和pod亲和性和反亲和性

污点 cordon drain

如何部署pod是比价重要的子群资源调度机制,合理的配置pod的调度机制可以是资源最大化利用

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

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

相关文章

20、Kubernetes核心技术 - 基于Prometheus和Grafana搭建集群监控平台

目录 一、概述 二、监控平台架构图​编辑 三、部署 Prometheus 3.1、Prometheus简介 3.2、部署守护进程node-exporter 3.3、部署rbac 3.4、ConfigMap 3.5、Deployment 3.6、Service 3.7、验证Prometheus 四、部署Grafana 4.1、Deployment 4.2、Service 4.3、Ing…

Python办公自动化 – 操作NoSQL数据库和自动化图像识别

Python办公自动化 – 操作NoSQL数据库和自动化图像识别 以下是往期的文章目录,需要可以查看哦。 Python办公自动化 – Excel和Word的操作运用 Python办公自动化 – Python发送电子邮件和Outlook的集成 Python办公自动化 – 对PDF文档和PPT文档的处理 Python办公自动…

雍禾植发袁宣心中有“术”,雍禾医疗帮用户重启人生

从公立医院烧伤外科来到雍禾,可以说是袁宣职业生涯里最重要的一个决定。据了解,袁宣医生所在的雍禾植发,是国内最大的毛发医疗机构。截至2022年12月31日,雍禾医疗已组建1341人的专业医疗团队,其中毛发医生294人&#x…

Android 13 移除下拉栏中的设置入口

介绍 因为当前项目的设置已被加密,客户不希望通过下拉窗口的设置图标进入设置,决定去掉该图标。 效果展示 分析 这里首先想到在SystemUI寻找这个图标的资源文件,找到资源文件后寻找对应控件调用的地方,根据id寻找控件代码即可。…

FPGA UDP协议栈:基于88E1111,支持RGMII、GMII、SGMII三种模式,提供3套工程源码和技术支持

目录 1、前言免责声明 2、相关方案推荐我这里已有的以太网方案本协议栈的 1G-UDP版本本协议栈的 10G-UDP版本本协议栈的 25G-UDP版本1G 千兆网 TCP-->服务器 方案1G 千兆网 TCP-->客户端 方案10G 万兆网 TCP-->服务器客户端 方案 3、该UDP协议栈性能4、详细设计方案设…

什么是HTTP协议以及对HTTP协议的见解

目录 HTTP协议 (1)什么是http协议 (2)http协议的特点: (3)http协议请求头 (4)http协议响应头 HTTP协议 (1)什么是http协议 http&#xff0…

通信用磷酸铁锂电池做YD/T2344.1招标报告

通信用磷酸铁锂电池做YD/T2344.1标准报告 YD/T 2344.1标准范国: YD/T 2344.1规定了通信用磷酸铁鲤电池组的定义、要求、试验方法、检验规则及标志、包装、运输和贮存本部分适用于电池模块与电池管理系统集成为一体的通信用磷酸铁电池组。 YD/T 2344.1测试要求&…

mysql定时备份shell脚本和还原

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言数据库备份分类mysqldump命令备份计划1.每日备份,保留30天备份文件2.每月1号备份,保留12个月备份文件 定时调度还原总结 前言 数据库备…

最优化理论复习--使用导数的最优化方法

文章目录 上一篇最速下降法牛顿法下一篇 上一篇 最优化理论复习–最优性条件(二) 最速下降法 考虑无约束问题 m i n f ( x ) , x ∈ R n min f(x), x\in R^n minf(x),x∈Rn, 其中 f ( x ) f(x) f(x) 具有一阶连续偏导数(梯度下降法&…

信号-进程间通信

信号 1. 信号概述 在 Linux 操作系统中,信号是一种进程间通信的机制,用于通知进程发生了某个事件。信号可以由内核、其他进程,或者进程自身发送。每个信号都对应一个特定的事件或异常,例如进程终止、CtrlC 中断等。 本质上是一…

Linux网络命令

文章目录 Linux网络网络配置命令1、ifconfig:查看网络接口信息(显示所有活动网卡)1.1 常用命令格式1.2 命令格式(图文详解)1.2.1 临时修改网卡名称1.2.2 永久修改网卡名称1.2.3 永久修改单个网卡 2、hostname&#xff…

【深度学习:数据增强】计算机视觉中数据增强的完整指南

【深度学习:数据增强】计算机视觉中数据增强的完整指南 为什么要做数据增强?等等,什么是数据增强?数据增强技术数据增强的注意事项和潜在陷阱什么时候应该做数据增强?类不平衡的数据增强那么我应该选择哪些转换呢&…