网站首页 返回列表 像“草根”一样,紧贴着地面,低调的存在,冬去春来,枯荣无恙。 k8s 容器调度亲和性与反亲和性 24-11-1 10:24:06 曹大卫 86 ```shell ###节点亲和性 containers: - name: my-container image: my-image affinity: nodeAffinity: ##硬亲和性,且匹配多个节点标签 requiredDuringSchedulingIgnoredDuringExecution: nodeSelectorTerms: - matchExpressions: - key: category operator: In values: - czh - matchExpressions: - key: app operator: In values: - mid ###,节点软亲和性 containers: - name: my-container image: my-image affinity: nodeAffinity: ##使用节点软亲和性规则,Pod 会尽可能调度到满足条件的节点上,但如果无法满足所有规则,Pod 仍然可以被调度到不满足条件的节点上。 preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: category operator: In values: - czh ###权重的值越高,表示越希望调度器将 Pod 调度到满足该规则的节点上 weight: 50 - preference: matchExpressions: - key: app operator: In values: - mid weight: 20 ###节点反亲和性 ##这意味着调度器会尽可能避免将Pod调度到符合 app 存在的节点上。调度器将优先考虑没有 <label-key> 的节点。 ##请注意,节点反亲和性规则是一种首选规则,调度器会尽量遵循这个规则,但如果没有其他可用的节点,Pod 仍然可以被调度到具有指定标签条件的节点上。权重的数值越高,调度器越倾向于避免将Pod调度到具有反亲和性标签的节点上 containers: - name: my-container image: my-image affinity: nodeAffinity: preferredDuringSchedulingIgnoredDuringExecution: - preference: matchExpressions: - key: app operator: DoesNotExist weight: 100 ####pod亲和性 ###调度到同一节点的pod亲和性 ###这种亲和性可以使多个Pod被调度到同一节点,以便它们之间可以快速高效地通信 containers: - name: container1 image: nginx affinity: podAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - mid topologyKey: "kubernetes.io/hostname" ####pod反亲和性 ##避免调度到同一节点的亲和性(Pod反亲和性):这种亲和性可以防止多个Pod被调度到同一节点,以便提高可靠性和故障隔离 containers: - name: container1 image: nginx affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - mid topologyKey: "kubernetes.io/hostname" ###topologyKey 在Kubernetes中,topologyKey 是一种用于指定 Pod 亲和性和反亲和性规则的关键字。它用于定义节点的拓扑域(Topology Domain)。 拓扑域是指 Kubernetes 集群中的节点之间的逻辑划分,可以根据不同的拓扑域进行调度和亲和性控制。通过使用 topologyKey 来指定拓扑域,你可以控制 Pod 只在指定的拓扑域内进行调度。 常见的 topologyKey 值包括: kubernetes.io/hostname:基于节点的主机名来定义拓扑域,它表示在同一主机上的 Pod 之间进行调度和亲和性关系。 topology.kubernetes.io/region:基于 Kubernetes 集群的区域来定义拓扑域,这适用于跨多个区域部署的集群,以实现区域级的 Pod 调度和亲和性。 topology.kubernetes.io/zone:基于 Kubernetes 集群的区域的某个可用区(Zone)来定义拓扑域,这适用于跨多个可用区部署的集群,以实现可用区级的 Pod 调度和亲和性。 ``` 关键字词[k8s] 分享到: 上一篇:docker的几种网络模式 下一篇:linux上k8s使用2进制高可用搭建 如需留言,请 登录,没有账号?请 注册 0 条评论 0 人参与 最新文章 企业微信群机器人@成员的方式 promethues operator修改告警规则 centos7配置阿里云yum源 pt-duplicate-key-checker 工具检测mysql是否有重复索引 阿里云ecs扩容磁盘 es启用 tcp和http的ssl后报错 promethues operator修改数据保留时间 linux上k8s使用2进制高可用搭建 点击排行 alertmanager按标签分发告警到接收者 calico三种网络模式 centos7配置阿里云yum源 k8s 容器调度亲和性与反亲和性 promethues operator修改告警规则 最新评论 友情链接
0 条评论 0 人参与