IDC

容器服务 设置工作负载的调度规则 - 用户指南

作者:admin 2021-09-14 我要评论

简介 通过设置工作负载中高级设置的调度规则,指定该工作负载下的 Pod 在集群内进行调度。 存在以下应用场景: 将 Pod 运行在指定的节点上。 将 Pod 运行在某一...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

简介

通过设置工作负载中高级设置的调度规则,指定该工作负载下的 Pod 在集群内进行调度。 存在以下应用场景:

  • 将 Pod 运行在指定的节点上。
  • 将 Pod 运行在某一作用域(作用域可以是可用区、机型等属性)的节点上。
  • 将 Pod 强制打散到节点上(每个节点一个,不符合条件的 Pod 停止调度)。

使用方法

前置条件

  • 设置工作负载高级设置中的调度规则,且集群的 Kubernetes 版本必须是1.7以上的版本。
  • 为确保您的 Pod 能够调度成功,请确保您设置的调度规则完成后,节点有空余的资源用于容器的调度。
  • 使用自定义调度功能时,需要为节点设置对应 Label。详情请参见 设置节点 Label。

设置调度规则

如果您的集群是1.7或更高的版本,则可以在创建工作负载中设置调度规则。
您可以根据实际需求,选择以下两种调度类型:

  • 指定节点调度:可设置实例( Pod )调度到指定规则的节点上,匹配节点标签。
  • 自定义调度规则:可自定义实例( Pod )调度规则,匹配实例标签。

自定义调度规则包含以下两种模式:

  • 强制满足要求条件:调度期间如果满足亲和性条件,则调度到对应 node。如果没有节点满足条件,则调度失败。
  • 尽量满足要求条件:调度期间如果满足亲和性条件,则调度到对应 node。如果没有节点满足条件,则随机调度到任意节点。

自定义调度规则均可以添加多条调度规则, 各规则操作符的含义如下:

  • In:Label 的 value 在列表中。
  • NotIn:Label 的 value 不在列表中。
  • Exists:Label 的 key 存在。
  • DoesNotExits:Label 的 key 不存在。
  • Gt:Label 的值大于列表值 (字符串匹配)。
  • Lt:Label 的值小于列表值 (字符串匹配)。

原理介绍

服务的调度规则主要通过下发 Yaml 到 Kubernetes 集群, Kubernetes 的 Affinity and anti-affinity 机制会使得 Pod 按一定规则进行调度。更多 Kubernetes 的 Affinity and anti-affinity 机制介绍可 查看详情。

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
腾讯云代理商
精彩导读
海外云服务器
热门资讯
腾讯云代理商