You need to enable JavaScript to run this app.
导航

创建部署策略(控制台)

最近更新时间2024.01.19 14:39:11

首次发布时间2023.07.20 10:49:31

部署策略是资源跨集群分发的基础,可用于指定资源部署在哪些集群中。本文介绍如何通过控制台创建部署策略。

前提条件

操作步骤

  1. 登录 分布式云原生控制台
  2. 在左侧导航栏选择 联邦主控实例,进入主控实例管理页面。
  3. 在主控实例列表,单击目标主控实例名称,进入主控实例配置页面。
  4. 在左侧导航栏选择 策略管理 > 部署策略
  5. 单击 创建部署策略,配置部署策略相关基本信息和高级配置。

alt

配置项说明
名称自定义部署策略名称,相同主控实例内不允许重名。命名规则:长度 1-63 个字符,由小写字母、连字符、数字组成,以字母、数字开头和结尾。

策略级别

配置部署策略的生效级别,包括:命名空间级、集群级。

  • 命名空间级:表示部署策略在指定命名空间内生效。

  • 集群级:表示部署策略在集群内所有的命名空间内生效。

命名空间当策略级别为命名空间级时,需要配置此参数。当前场景下,每个部署策略有且只能指定一个命名空间。

副本模式调度

默认开启,针对部分资源(例如:Deployment)启用权重分发副本调度模式,支持动态集群权重、静态集群权重。

  • 若开启此配置,Deployment 资源会根据权重将副本分发到多个成员集群中;其他资源仍按照复制分发模式调度;CRD 资源的副本模式调度参见:添加 CDR 资源

  • 若关闭此配置,所有资源将按照复制分发模式进行调度。

说明

  • 动态集群权重:工作负载实例调度时,控制器会根据可选集群当前可用资源量(不包括 vNode)进行动态权重计算,并按照期望的总实例数进行多集群部署。

  • 静态集群权重:工作负载实例调度时,控制器会根据手动配置的静态权重进行多集群部署。

跟随调度默认开启。允许工作负载关联的资源(如 ConfigMap、Secret等)自动跟随副本分发到成员集群中,具体支持的资源类型参见:关联资源跟随调度

alt

说明

部署策略最终选择调度的成员集群必须满足集群调度策略中配置的所有条件。

配置项说明
集群选择方式选择部署策略最终调度的成员集群,成员集群选择方式包括:所有集群、指定集群、指定标签,但控制台仅支持使用其中一种方式。

指定集群:部署策略只在指定的成员集群内生效,资源仅在指定成员集群中进行调度。推荐选择多个成员集群作为部署集群,以满足联邦调度的场景。

  • 若副本调度模式选择 动态集群权重, 选择需要执行部署策略的集群即可。

  • 若副本调度模式选择 静态集群权重 ,选择需要执行部署策略的集群外,还需要手动配置选中集群的权重。

说明

  • 静态集群权重的取值范围为 1 ~ 100 ,数字越大相对权重越高,实际按照生效成员集群配置的相对权重生效。例如:所选两个部署集群的权重分别为 1(或者 100),则静态权重各为 50%。

  • 动态集群权重无需额外配置,资源调度时,控制器会根据可选集群当前可用资源量进行动态权重计算,并按照期望的总实例数进行多集群部署。

集群标签:副本模式调度为动态集群权重时可用。部署策略只在标签匹配的成员集群内生效,资源仅在匹配标签的成员集群中进行调度。标签类型包括:ClusterSelector、ClusterAffinity。

  • ClusterSelector:通过键值对形式的标签来匹配集群。

  • ClusterAffinity:通过强制调度条件中配置的选择器标签来匹配集群。

说明

控制台要求选择一种类型的集群标签进行配置,若同时配置多个标签,生效规则如下:

  • 若使用 ClusterSelector 类型的集群标签,成员集群必须匹配以下所有标签。

  • 若使用 ClusterAffinity 类型的集群标签,成员集群只需满足以下任意一个「条件」,每个「条件」中的所有标签必须同时匹配。

所有集群:副本模式调度为动态集群权重时可用。部署策略会在主控实例下所有的成员集群内生效,资源调度目标包括当前联邦集群中的已有成员集群,以及后续新添加的成员集群。
集群污点调度默认关闭。开启后可按需配置污点容忍,并按照选择的多个污点进行集群调度,类似 Kubernetes 的 Taint 和 Tolerations。

最大集群数

默认关闭。开启后可设置资源可调度到的成员集群数上限,取值范围为正整数。
例如:可应用于任务类负载调度,将最大集群数设置为 1,任务负载将会在多个可选成员集群中选择一个资源最优的集群调度执行。

alt

配置项说明

重调度

默认开启,重调度功能的总开关。

  • 若开启此配置,资源分发到成员集群后将根据配置的重调度条件、避免中断现有副本、副本不可调度迁移等策略,触发副本重调度。

  • 若关闭此配置,资源分发到成员集群后不会因为资源修改、策略变更等原因触发资源重调度。

重调度条件

启用重调度机制下,可指定触发重调度的条件,当条件发生时会自动触发资源按照最新的策略配置及集群环境重新调度。
包括:资源配置变更、部署策略调度语义变更、新增成员集群、成员集群标签变更、成员集群 API Resource 变化。

说明

资源配置变更是系统默认配置,无法取消。仅 request、replica 字段变化会触发重调度,其他字段变化仅会将配置同步更新到已分发的成员集群中的副本。

避免中断现有副本

默认开启。开启后,因扩缩容、策略更新、副本不可调度迁移等原因导致副本重分配时,不会影响当前已调度的副本。

示例一:副本数不变场景
重调度时可能遇到副本数量达到预期,但分布与权重不符的情况(尤其动态集群权重,集群可用资源持续变化的场景),若此时改变副本分布,可能造成可用性波动。因此,允许用户按需配置:

  • 关闭此配置时,不感知当前副本分布,都将按照权重重新分布,将导致分配期间的瞬时副本数偏低。

  • 开启此配置时,只要副本数量达到预期,不管当前分布是否符合权重,都不改变分布,不影响业务可用性。

示例二:扩容场景
假设将副本数从 12 扩容到 18 副本,3 个集群权重相等,目前分布为 10+1+1。

  • 关闭此配置时,会将副本重分布为 6+6+6。杀掉 A 中 4 个副本,B 和 C 中各起 5 个副本,B 和 C 中新副本运作前,瞬时可用副本只有 6+1+1=8,低于当前副本数。

  • 开启此配置时,会造成 10+4+4 的分布,任何集群中都不会影响正在运行的副本,任何时间可用副本数都不低于 12,不影响业务可用性。

示例三:缩容场景
假设将副本数从 60 缩容到 30 副本,3 个集群权重相等,目前分布为 60+1+1。

  • 关闭此配置时,会将副本重分布为 20+20+20。杀掉 A 中的 40 个副本,B 和 C 中各起 20 个副本,B 和 C 新的副本运作前,瞬时可用副本只有 20+0+0,低于目标副本数。

  • 开启此配置时,会造成 30+0+0 的分布,任何时间可用副本数都不低于 30,不影响业务可用性。

副本不可调度迁移

默认关闭。开启后,当副本在成员集群中处于不可调度状态超过一定时间,会自动迁移到其他健康成员集群中。

  • 不可调度持续时间:副本在成员集群中不可调度持续的时间阈值,取值范围:大于 1 的正整数,单位为分钟。

  • 故障恢复迁回:默认勾选,副本迁移时会保留原集群不可调度的副本,当副本恢复后,迁移到其他集群的副本会被删除;若不勾选,副本迁移时原集群不可调度副本会被删除。

说明

副本调度模式为 动态集群权重 时,不支持故障恢复迁回能力。

  1. 单击 确定,完成部署策略创建。

后续操作

完成创建部署策略后,可在进行资源分发时,直接引用部署策略,从而实现与预期相符的资源分发。详细介绍参见:资源分发实践