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

联邦资源 dryrun

最近更新时间2024.04.26 15:29:00

首次发布时间2024.01.19 14:39:14

分布式云原生平台联邦资源支持 dryrun 返回调度结果,对于特定资源,实际调度前仅展示调度结果,并不会直接分发到具体集群。本文为您介绍使用联邦资源 dryrun 功能。

背景信息

dryrun 是一种联邦资源预部署机制。对于特定资源或特定场景,若要求实际调度前仅展示调度结果,并不会分发到具体集群中,待调度结果后,再决定是否下发到具体集群,即可使用 dryrun 返回调度结果进行预部署。

例如:用户尚未下发联邦应用时,打上 dryrun 注解,调度器计算的调度结果将不会下发到应用;删除注解后,应用将会按照当前展示的调度结果下发到成员集群。

跟随调度场景下,dryrun 生效策略如下:

场景说明

leader dryrun 生效;follower 未置 dryrun

follower 不会被 leader 关联 dryrun,因此,不会被下发到成员集群。

leader 未置 dryrun;follower dryRun 生效

leader 正常下发,但 follower 未下发,预部署的数量为跟随调度下发的集群的数量。

前提条件

使用限制

dryrun 仅在尚未下发应用时生效,若用户已下发应用则无法生效。

操作步骤

dryrun 功能由 Annotation kubeadmiral.io/dry-run: true控制,通过以下方式和步骤为联邦资源添加此 Annotation 即可。本文以创建任务为例进行介绍,其他联邦资源的操作入口不同但操作方式相同。

方式一:通过控制台配置

  1. 登录 分布式云原生控制台
  2. 在左侧导航栏选择 联邦主控实例,进入主控实例管理页面。
  3. 在主控实例列表,单击目标主控实例名称,进入主控实例配置页面。
  4. 在左侧导航栏选择 工作负载 > 任务,进入任务管理页面。
  5. 单击 创建任务,在基本信息配置中添加kubeadmiral.io/dry-run: true注解,其他参数和步骤按需配置即可。

alt

方式二:通过 Yaml 配置

  1. 登录 分布式云原生控制台
  2. 在左侧导航栏选择 联邦主控实例,进入主控实例管理页面。
  3. 在主控实例列表,单击目标主控实例名称,进入主控实例配置页面。
  4. 在左侧导航栏选择 工作负载 > 任务,进入任务管理页面。
  5. 单击 使用 Yaml 创建资源,在已经准备的 Yaml 中补充 Annotation kubeadmiral.io/dry-run: true,其他参数和步骤按需配置即可。

alt

Yaml 示例如下:

apiVersion: batch/v1
kind: Job
metadata:
  name: job-mlt
  namespace: default
  annotations:
    kubeadmiral.io/dry-run: "true"     # dryrun 功能开关,添加此 Annotation 表示开启功能。
spec:
  template:
    spec:
      containers:
      - name: pi
        image: perl 
        command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      restartPolicy: Never 
  backoffLimit: 4 

后续操作

预览调度结果

联邦资源创建完成后,可在资源列表查看集群分发状态,单击 查看 可预览详细调度结果。

alt

alt

联邦资源分发

若调度结果符合预期,可前往资源 更新编辑 Yaml 页面,删除注解(Annotation)kubeadmiral.io/dry-run: true,应用将会按照当前展示的调度结果下发到成员集群。

  1. 登录 分布式云原生控制台,在左侧导航栏选择 联邦主控实例
  2. 单击目标主控实例名称,进入主控实例配置页面,在左侧导航栏选择 工作负载 > 任务
  3. 单击目标任务列表右侧操作列...中的 更新 或 编辑 Yaml,删除注解并保存配置,应用将会按照当前展示的调度结果下发到成员集群。

alt