From 23c39e44e2b519a3e517e998d872ab8bc06e605c Mon Sep 17 00:00:00 2001 From: Wanqiang Ji Date: Fri, 11 Feb 2022 23:17:42 +0800 Subject: [PATCH] [zh] Resync configure multiple schedulers file --- .../configure-multiple-schedulers.md | 63 ++++++++++++------- .../zh/examples/admin/sched/my-scheduler.yaml | 33 +++++++--- 2 files changed, 66 insertions(+), 30 deletions(-) diff --git a/content/zh/docs/tasks/extend-kubernetes/configure-multiple-schedulers.md b/content/zh/docs/tasks/extend-kubernetes/configure-multiple-schedulers.md index 37f0beb2e5..a90ddad7e4 100644 --- a/content/zh/docs/tasks/extend-kubernetes/configure-multiple-schedulers.md +++ b/content/zh/docs/tasks/extend-kubernetes/configure-multiple-schedulers.md @@ -32,12 +32,12 @@ Pod 使用哪个调度器。 关于实现调度器的具体细节描述超出了本文范围。 请参考 kube-scheduler 的实现,规范示例代码位于 -[pkg/scheduler](https://github.com/kubernetes/kubernetes/tree/{{< param "githubbranch" >}}/pkg/scheduler)。 +[pkg/scheduler](https://github.com/kubernetes/kubernetes/tree/master/pkg/scheduler)。 ## {{% heading "prerequisites" %}} @@ -116,18 +116,33 @@ ReplicaSet 再管理 Pod,从而使调度器能够免受一些故障的影响 {{< codenew file="admin/sched/my-scheduler.yaml" >}} -这里需要注意的是,在容器规约中配置的调度器启动命令参数(--scheduler-name)所指定的 -调度器名称应该是唯一的。 -这个名称应该与 Pod 上的可选参数 `spec.schedulerName` 的值相匹配,也就是说调度器名称的匹配 -关系决定了 Pods 的调度任务由哪个调度器负责。 +在以上的清单中,你使用 [KubeSchedulerConfiguration](/zh/docs/reference/scheduling/config/) +来自定义调度器实现的行为。当使用 `--config` 选项进行初始化时,该配置被传递到 `kube-scheduler`。 +`my-scheduler-config` ConfigMap 存储配置数据。 +`my-scheduler` Deployment 的 Pod 将 `my-scheduler-config` ConfigMap 挂载为一个卷。 +在前面提到的调度器配置中,你的调度器通过 [KubeSchedulerProfile](/docs/reference/config-api/kube-scheduler-config.v1beta3/#kubescheduler-config-k8s-io-v1beta3-KubeSchedulerProfile) 进行实现。 +{{< note >}} +要确定一个调度器是否可以调度特定的 Pod,PodTemplate 或 Pod 清单中的 `spec.schedulerName` +字段必须匹配 `KubeSchedulerProfile` 中的 `schedulerName` 字段。 +所有运行在集群中的调度器必须拥有唯一的名称。 +{{< /note >}} + + 还要注意,我们创建了一个专用服务账号 `my-scheduler` 并将集群角色 `system:kube-scheduler` @@ -136,10 +151,13 @@ Note also that we created a dedicated service account `my-scheduler` and bind th 请参阅 [kube-scheduler 文档](/docs/reference/command-line-tools-reference/kube-scheduler/) -以获取其他命令行参数的详细说明。 +获取其他命令行参数以及 [Scheduler 配置参考](/docs/reference/config-api/kube-scheduler-config.v1beta3/) +获取自定义 `kube-scheduler` 配置的详细说明。 ### 启用领导者选举 要在启用了 leader 选举的情况下运行多调度器,你必须执行以下操作: -首先,更新上述 Deployment YAML(my-scheduler.yaml)文件中的以下字段: +更新你的 YAML 文件中的 `my-scheduler-config` ConfigMap 里的 KubeSchedulerConfiguration 相关字段如下: -* `--leader-elect=true` -* `--lock-object-namespace=` -* `--lock-object-name=` +* `leaderElection.leaderElect` to `true` +* `leaderElection.resourceNamespace` to `` +* `leaderElection.resourceName` to `` {{< note >}} - 在这种情况下,我们指定此 pod 使用我们部署的 `my-scheduler` 来调度。 - 请注意,`spec.schedulerName` 参数的值应该与 Deployment 中配置的提供给 - scheduler 命令的参数名称匹配。 + 在这种情况下,我们指定此 Pod 使用我们部署的 `my-scheduler` 来调度。 + 请注意,`spec.schedulerName` 参数的值应该与调度器提供的 `KubeSchedulerProfile` 中的 `schedulerName` 字段相匹配。