pod的亲和性和反亲和性

pod的亲和性和反亲和性

调度策略: 匹配标签 操作符 拓扑域 调度目标

node的亲和性 主机标签 In Notin exists doesexists Gt Lt 不支持 指定主机

pod的亲和性 pod的标签 In Notin exists doesexists 支持 pod和指定标签的pod部署在同一拓扑域

pod的反亲和性 pod的标签 In Notin exists doesexists 支持 pod和指定标签的pod部署在不同拓扑域

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

反亲和性:

注意点:

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

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

3、pod亲和性的notln可以替代反亲和性

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

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

污点和容忍可以配合node的亲和性一块使用

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

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

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

污点的节点一定不被选择?

taint三种:

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

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

3、NoExecute:如果污点类型是他,k8s将会把该节点上的pod驱逐出去,而且也不会调度到这个节点

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

自主pod会被直接杀死

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

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

不论你的创建方式是什么,都会被驱逐

系统集群组件不会被驱逐*

查看污点:kubectl describe nodes master01 | grep -i taints

设置污点:kubectl taint node node01 key=1:NoSchedule

去除污点:kubectl taint node01 key:NoSchedule-

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

特殊情况:NoExecute依然可以部署pod,但是有生命周期,时间一到,pod会被销毁,生命周期结束之后,会被驱逐一部分pod到其他节点,有的节点还是会保留在污点节点上

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

加上容忍时间

tolerations:

-key:key

operator:Exists

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

node的亲和性

pod的亲和性和反亲和性

污点和容忍

如何选择node节点部署pod

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

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

cordon和drain

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

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

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

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

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

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

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

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

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

还是如何来管理和部署pod

node亲和性

pod的亲和性和反亲和性

污点:

NoExecute

相关推荐
码路飞3 小时前
GPT-5.3 Instant 终于学会好好说话了,顺手对比了下同天发布的 Gemini 3.1 Flash-Lite
java·javascript
SimonKing4 小时前
OpenCode AI编程助手如何添加Skills,优化项目!
java·后端·程序员
Seven975 小时前
剑指offer-80、⼆叉树中和为某⼀值的路径(二)
java
哈里谢顿14 小时前
Kubernetes Operator核心概念、实现原理和实战开发
云原生
怒放吧德德16 小时前
Netty 4.2 入门指南:从概念到第一个程序
java·后端·netty
雨中飘荡的记忆18 小时前
大流量下库存扣减的数据库瓶颈:Redis分片缓存解决方案
java·redis·后端
阿里云云原生18 小时前
你的 OpenClaw 真的在受控运行吗?
云原生
阿里云云原生19 小时前
5 分钟零代码改造,让 Go 应用自动获得全链路可观测能力
云原生·go
Shanyoufusu1220 小时前
RKE2 单节点集群安装 Rancher+ 私有镜像仓库搭建 完整教程
云原生
阿里云云原生20 小时前
Dify 官方上架 Higress 插件,轻松接入 AI 网关访问模型服务
云原生