问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何指定pod的运行节点?

发布网友 发布时间:2022-11-24 04:16

我来回答

1个回答

热心网友 时间:2024-10-12 01:06

一般情况下kubernets可以通过kube-scheler默认的调度策略合理的将pod分配到可用的节点上, 但是随着pod数量的增加以及不同pod对资源的使用情况不同我们需要更加合理的分配集群中的资源, 所以对一些pod运行节点的控制是由必要的。

源于硬件和软件层多样性,我们需要将某个 pod 调度到某些特定的节点上,例如指定机房,存储类型,网络类型等等:

有两种方法 nodeSelector 以及 affinity 可以实现对应的需求

K8S中pod的调度都是通过节点label实现的, 所以对于除必要的节点label外对于其它用途也要做一些规划

设置参数

为 node 设置 taint 与 label:

or

删除taint:

删除node的label

查看 node上的 taint:

查看node1的label

kubernetes中是通过label-selector机制进行节点选择,由scheler调度策略 MatchNodeSelector 进行label匹配,调度pod到目标节点,该匹配规则是强制约束。

类型包括:

*方式:

匹配逻辑label

如果nodeAffinity中nodeSelector有多个选项,节点满足任何一个条件即可;如果matchExpressions有多个选项,则节点必须同时满足这些选项才能运行pod 。需要说明的是,node并没有anti-affinity这种东西,因为NotIn和DoesNotExist能提供类似的功能。

这个 pod 同时定义了 requiredDuringSchelingIgnoredDuringExecution 和 preferredDuringSchelingIgnoredDuringExecution 两种nodeAffinity。第一个要求 pod 运行在特定 devops 的节点上,第二个希望节点最好有对应的department:model和dedicated:app标签, 根据权重决定了顺序 NodeSelectorTerms 可以有多个,之间是或的关系,满足任意一个既满足, MatchExpressions 也可以有多个,他们之间是且的关系 必须都满足
preferredDuringSchelingIgnoredDuringExecution 值为列表,根据权重决定顺序 MatchExpressions 值为列表 关系为且,必须都满足

PodAffinit是根据通过已运行在节点上的pod的标签而不是node的标签来决定被调度pod的运行节点,因为pod运行在指定的namespace所以需要自己指定运行pod的namesapce

上面这个例子中的 POD 需要调度到某个指定的主机上,至少有一个节点上运行了这样的 POD:这个 POD 有一个app=busybox-pod的 label。podAntiAffinity则是希望最好不要调度到这样的节点:这个节点上运行了某个 POD,而这个 POD 有app=node-affinity-pod的 label。根据前面两个 POD 的定义,我们可以预见上面这个 POD 应该会被调度到一个busybox-pod被调度的节点上,而node-affinity-pod被调度到了该节点以外的节点

对于nodeAffinity无论是硬策略还是软策略方式,都是调度 POD 到预期节点上,而Taints恰好与之相反,如果一个节点标记为 Taints ,除非 POD 也被标识为可以容忍污点节点,否则该 Taints 节点不会被调度pod。

比如用户希望把 Master 节点保留给 Kubernetes 系统组件使用,或者把一组具有特殊资源预留给某些 POD,则污点就很有用了,POD 不会再被调度到 taint 标记过的节点。taint 标记节点举例如下:

如果仍然希望某个 POD 调度到 taint 节点上,则必须在 Spec 中做出Toleration定义,才能调度到该节点,举例如下:

effect 共有三个可选项,可按实际需求进行设置:

设置label 和 taint, edgenode为特殊属性的节点所以需要设置taint

资源文件

运维服务部署在固定的几台主机上, 每个主机设置 department 的label, 部署服务时指定该label

设置label

资源文件

如何指定pod的运行节点?

第一个要求 pod 运行在特定 devops 的节点上,第二个希望节点最好有对应的department:model和dedicated:app标签, 根据权重决定了顺序 NodeSelectorTerms 可以有多个,之间是或的关系,满足任意一个既满足, MatchExpressions 也可以有多个,他们之间是且的关系 必须都满足 preferredDuringSchedulingIgnoredDu...

k8s一个pod加载多个containers,指定pod运行的node

假设以下场景:有三个Node,分别为107、108、109,创建Deployments来部署Tomcat应用,指定在107节点上创建Pod。解决方案 nodeName Pod.spec.nodeName将Pod直接调度到指定的Node节点上,会跳过Scheduler的调度策略,该匹配规则是强制匹配。Tomcatl.yaml文件 apiVersion: extensions/v1beta1 kind: Deployment met...

jenkinspipeline如何可以指定执行某个节点?

基础环境准备确保Jenkins Agent端口可访问,修改全局安全配置中的代理(TCP port for inbound agents)为30634,同时更新Kubernetes Pod暴露的端口。若使用临时解决办法,可以在Jenkins控制器资源清单中设置`hostNetwork: true`。添加新的Jenkins agent节点,操作步骤包括:在Dashboard中管理节点,新建节点并按照提...

简述Kubernetes Scheduler使用哪两种算法将Pod绑定到worker节点?

预选(Predicates):输入是所有节点,输出是满足预选条件的节点。kube-scheduler根据预选策略过滤掉不满足策略的Nodes。如果某节点的资源不足或者不满足预选策略的条件则无法通过预选。如“Node的label必须与Pod的Selector一致”。优选(Priorities):输入是预选阶段筛选出的节点,优选会根据优先策略为通过预选的...

CKA备考实验 | 节点taint及pod的tolerations

需要理解,节点设置污点,pod设置容忍污点,并不意味着pod一定能在该节点上运行,还需要通过label指定pod运行在特定节点上。删除此pod。删除vms11的污点设置。给vms11重新设置多个污点。尝试在podtaint.yaml不修改的情况下再次运行pod,发现状态为Pending,因为pod的容忍污点没有与节点的所有污点匹配。删除此...

kubernetes入门:pod、节点、容器和集群都是什么?

Pod是Kubernetes集群中最小的可运行单元,代表着集群中运行的进程,能够共享网络和存储资源。一个Pod内部可以同时运行一个或多个容器,通过Pause容器使得容器之间可以共享网络、共享存储。节点是Kubernetes中的最小计算硬件单元,可以理解为集群中的单个机器。节点汇聚资源,形成更强大的计算能力。集群作为一个...

Kubernetes——Pod控制器详解

使用压测工具对service地址 192.168.109.100:31136 进行压测,然后通过控制台查看hpa和pod的变化 hpa变化 deployment变化 pod变化 DaemonSet类型的控制器可以保证在集群中的每一台(或指定)节点上都运行一个副本。一般适用于日志收集、节点监控等场景。也就是说,如果一个Pod提供的功能是节点级别的(每个...

Kubernetes-Pod基本概念(六)

运行应用两大步骤:1)构建镜像并推送至镜像仓库中;2)K8s创建pod进行调度;流程: 1)本地构建镜像; 2)推送镜像至镜像仓库; 3)kubectl创建并部署应用; 4)kubectl发出REST请求至REST API服务器; 5)创建pod并调度到工作节点; 6)kubelet收到通知; 7)...

持续集成案例之使用Docker运行自构建Jenkins的Agent镜像固定工作节点实 ...

遂利用装有Docker的机器,立即使用自行构建的jenkins-jnlp-agent镜像,并在 jenkins 中创建一个固定节点,通过docker运行该镜像并连接到Jenkins,在流水线项目绑定到该节点执行,通过几分钟的时间就快速解决了jenkins agent问题,在项目完成持续集成和交互后,趁着间隙更新Jenkins上配置连接kubernetes apiserver的...

Kubernetes:默认调度器三大机制

Predicates 在调度过程中的作用,可以理解为 Filter ,即:它按照调度策略,从当前集群的所有节点中,“过滤”出一系列符合条件的节点。这些节点,都是可以运行待调度 Pod 的宿主机。 GeneralPredicates 负责的是最基础的调度策略。比如, PodFitsResources 计算的就是宿主机的 CPU 和内存资源等是否够用。 PodFitsResources ...

求根节点到指定节点的路径 链表如何删除指定节点 网站运行缓慢如何自动换节点 dom4j解析指定节点 无向图计算指定节点的度 将删除指定元素的子节点 abaqus中输出指定节点的位移 npm应该在节点之外运行 k8s指定节点
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
嘴唇上有颗突出的痣怎么去掉 嘴唇上的痣 幼升小联审通过了社保什么时候可以停缴?个人觉得交社保没意义!_百度... 北京朝阳区幼升小户口提前多久办理 朝阳区幼升小,媳妇社保不在北京因是外派人员社保一直在外地总公司,可是... 梦幻中的祭台问题 负胜负负胜平负是怎么玩的 幼儿园的教学计划该怎么写? 从零开始的异世界生活第三季消息? 自然堂雪域皙白好呢还是芙利芳丝纯白好? ipad 4的Apple Id不知道。我是从淘宝买的二手。格式化了。需要的Ap... n5100cpu能不能搭配显卡 想问hd5100相当于什么显卡 安卓系统如何虚拟定位打卡 请高手给我分析一下,600085同仁堂成本价是33,2。600216浙江医药成本... 保险公司 工资能多少钱 长隆几岁小孩去合适,长隆欢乐世界适合多大孩子 广州儿童游乐场有哪些 长隆欢乐世界适合小孩子玩的项目 公司注销了还能要回工资吗 联想手机怎么退出Recovery 昨天晚上梦到抽奖一根金项链,什么意蓄?谢 炮炮兵经典语录 能告诉我卖炮的具体位置吗。。谢谢了 坦克世界中炮管上的星星是永久的吗 请教各位大侠,PPTV怎麼删啊 我电脑上的PPTV怎么卸载不掉?重装系统的时候自带的 怎么卸载PPTV 谢谢 在哪买ipad便宜 CAC检测对肺结节恶性风险评估怎么样? 命令行执行pod的时候报错 明日之后模拟器扫码登录不上 明日之后室友不上线怎么解除 请问:总账上的凭证号码填什么?具体点,本人新手 ...是有一个动漫也是这个名字啊?貌似俄用安卓模拟器 时 看到过!_百度... 张学友唱歌拿了多少奖 买房中定金与订金到底有什么区别? 债券交易的流程有哪些? when引导的从句后的时态 when引导的句子前后时态 when前后的时态怎么用 when前后的时态 黄龙溪是哪里的地方 shscrap.dll怎么导入注册表,没有reg格式的文件 ...了shs格式`在C盘中复制了xp的shscrap.dll还是出现乱码` SHS格式文件如何打开? ...xp下c:\windows\system32文件夹下shscrap.dll的文件 为什么vista打不开shs文件 在线等啊 社保卡金融账户不激活可以吗? 人体正常体温 人的正常体温是多少