From db58c59730d83e80ae30ad79ecfe0c049ecf3a13 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 25 Jul 2022 13:19:44 +0800 Subject: [PATCH] [zh-cn] resync /scheduling-eviction/kube-scheduler.md --- .../concepts/scheduling-eviction/_index.md | 2 - .../scheduling-eviction/kube-scheduler.md | 78 ++++++++++--------- 2 files changed, 43 insertions(+), 37 deletions(-) diff --git a/content/zh-cn/docs/concepts/scheduling-eviction/_index.md b/content/zh-cn/docs/concepts/scheduling-eviction/_index.md index 2a95b678a5..f90a06410f 100644 --- a/content/zh-cn/docs/concepts/scheduling-eviction/_index.md +++ b/content/zh-cn/docs/concepts/scheduling-eviction/_index.md @@ -64,8 +64,6 @@ of terminating one or more Pods on Nodes. -在 Kubernetes 中,_调度_ 是指将 {{< glossary_tooltip text="Pod" term_id="pod" >}} 放置到合适的 -{{< glossary_tooltip text="Node" term_id="node" >}} 上,然后对应 Node 上的 -{{< glossary_tooltip term_id="kubelet" >}} 才能够运行这些 pod。 +在 Kubernetes 中,**调度** 是指将 {{< glossary_tooltip text="Pod" term_id="pod" >}} +放置到合适的{{< glossary_tooltip text="节点" term_id="node" >}}上,以便对应节点上的 +{{< glossary_tooltip term_id="kubelet" >}} 能够运行这些 Pod。 -调度器通过 kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。 -调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。 +调度器通过 Kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到节点上的 Pod。 +调度器会将所发现的每一个未调度的 Pod 调度到一个合适的节点上来运行。 调度器会依据下文的调度原则来做出调度选择。 -如果你想要理解 Pod 为什么会被调度到特定的 Node 上,或者你想要尝试实现 -一个自定义的调度器,这篇文章将帮助你了解调度。 +如果你想要理解 Pod 为什么会被调度到特定的节点上, +或者你想要尝试实现一个自定义的调度器,这篇文章将帮助你了解调度。 -对每一个新创建的 Pod 或者是未被调度的 Pod,kube-scheduler 会选择一个最优的 -Node 去运行这个 Pod。然而,Pod 内的每一个容器对资源都有不同的需求,而且 -Pod 本身也有不同的资源需求。因此,Pod 在被调度到 Node 上之前, -根据这些特定的资源调度需求,需要对集群中的 Node 进行一次过滤。 +对每一个新创建的 Pod 或者是未被调度的 Pod,kube-scheduler 会选择一个最优的节点去运行这个 Pod。 +然而,Pod 内的每一个容器对资源都有不同的需求, +而且 Pod 本身也有不同的需求。因此,Pod 在被调度到节点上之前, +根据这些特定的调度需求,需要对集群中的节点进行一次过滤。 -在一个集群中,满足一个 Pod 调度请求的所有 Node 称之为 _可调度节点_。 -如果没有任何一个 Node 能满足 Pod 的资源请求,那么这个 Pod 将一直停留在 -未调度状态直到调度器能够找到合适的 Node。 +在一个集群中,满足一个 Pod 调度请求的所有节点称之为 **可调度节点**。 +如果没有任何一个节点能满足 Pod 的资源请求, +那么这个 Pod 将一直停留在未调度状态直到调度器能够找到合适的 Node。 调度器先在集群中找到一个 Pod 的所有可调度节点,然后根据一系列函数对这些可调度节点打分, -选出其中得分最高的 Node 来运行 Pod。之后,调度器将这个调度决定通知给 -kube-apiserver,这个过程叫做 _绑定_。 +选出其中得分最高的节点来运行 Pod。之后,调度器将这个调度决定通知给 +kube-apiserver,这个过程叫做 **绑定**。 -kube-scheduler 给一个 pod 做调度选择包含两个步骤: +kube-scheduler 给一个 Pod 做调度选择时包含两个步骤: 1. 过滤 2. 打分 @@ -127,17 +127,17 @@ resource requests. After this step, the node list contains any suitable Nodes; often, there will be more than one. If the list is empty, that Pod isn't (yet) schedulable. --> -过滤阶段会将所有满足 Pod 调度需求的 Node 选出来。 -例如,PodFitsResources 过滤函数会检查候选 Node 的可用资源能否满足 Pod 的资源请求。 -在过滤之后,得出一个 Node 列表,里面包含了所有可调度节点;通常情况下, -这个 Node 列表包含不止一个 Node。如果这个列表是空的,代表这个 Pod 不可调度。 +过滤阶段会将所有满足 Pod 调度需求的节点选出来。 +例如,PodFitsResources 过滤函数会检查候选节点的可用资源能否满足 Pod 的资源请求。 +在过滤之后,得出一个节点列表,里面包含了所有可调度节点;通常情况下, +这个节点列表包含不止一个节点。如果这个列表是空的,代表这个 Pod 不可调度。 -在打分阶段,调度器会为 Pod 从所有可调度节点中选取一个最合适的 Node。 +在打分阶段,调度器会为 Pod 从所有可调度节点中选取一个最合适的节点。 根据当前启用的打分规则,调度器会给每一个可调度节点进行打分。 -最后,kube-scheduler 会将 Pod 调度到得分最高的 Node 上。 -如果存在多个得分最高的 Node,kube-scheduler 会从中随机选取一个。 +最后,kube-scheduler 会将 Pod 调度到得分最高的节点上。 +如果存在多个得分最高的节点,kube-scheduler 会从中随机选取一个。 -1. [调度策略](/zh-cn/docs/reference/scheduling/policies) 允许你配置过滤的 _断言(Predicates)_ - 和打分的 _优先级(Priorities)_ 。 +1. [调度策略](/zh-cn/docs/reference/scheduling/policies) + 允许你配置过滤所用的 **断言(Predicates)** 和打分所用的 **优先级(Priorities)**。 2. [调度配置](/zh-cn/docs/reference/scheduling/config/#profiles) 允许你配置实现不同调度阶段的插件, - 包括:`QueueSort`, `Filter`, `Score`, `Bind`, `Reserve`, `Permit` 等等。 + 包括:`QueueSort`、`Filter`、`Score`、`Bind`、`Reserve`、`Permit` 等等。 你也可以配置 kube-scheduler 运行不同的配置文件。 ## {{% heading "whatsnext" %}} @@ -177,11 +177,19 @@ of the scheduler: * Learn about [configuring multiple schedulers](/docs/tasks/extend-kubernetes/configure-multiple-schedulers/) * Learn about [topology management policies](/docs/tasks/administer-cluster/topology-manager/) * Learn about [Pod Overhead](/docs/concepts/scheduling-eviction/pod-overhead/) +* Learn about scheduling of Pods that use volumes in: + * [Volume Topology Support](/docs/concepts/storage/storage-classes/#volume-binding-mode) + * [Storage Capacity Tracking](/docs/concepts/storage/storage-capacity/) + * [Node-specific Volume Limits](/docs/concepts/storage/storage-limits/) --> -* 阅读关于 [调度器性能调优](/zh-cn/docs/concepts/scheduling-eviction/scheduler-perf-tuning/) -* 阅读关于 [Pod 拓扑分布约束](/zh-cn/docs/concepts/scheduling-eviction/topology-spread-constraints/) -* 阅读关于 kube-scheduler 的 [参考文档](/zh-cn/docs/reference/command-line-tools-reference/kube-scheduler/) +* 阅读关于[调度器性能调优](/zh-cn/docs/concepts/scheduling-eviction/scheduler-perf-tuning/) +* 阅读关于 [Pod 拓扑分布约束](/docs/concepts/scheduling-eviction/topology-spread-constraints/) +* 阅读关于 kube-scheduler 的[参考文档](/zh-cn/docs/reference/command-line-tools-reference/kube-scheduler/) * 阅读 [kube-scheduler 配置参考 (v1beta3)](/zh-cn/docs/reference/config-api/kube-scheduler-config.v1beta3/) -* 了解关于 [配置多个调度器](/zh-cn/docs/tasks/extend-kubernetes/configure-multiple-schedulers/) 的方式 -* 了解关于 [拓扑结构管理策略](/zh-cn/docs/tasks/administer-cluster/topology-manager/) -* 了解关于 [Pod 额外开销](/zh-cn/docs/concepts/scheduling-eviction/pod-overhead/) +* 了解关于[配置多个调度器](/zh-cn/docs/tasks/extend-kubernetes/configure-multiple-schedulers/) 的方式 +* 了解关于[拓扑结构管理策略](/zh-cn/docs/tasks/administer-cluster/topology-manager/) +* 了解关于 [Pod 开销](/zh-cn/docs/concepts/scheduling-eviction/pod-overhead/) +* 了解关于如何在以下情形使用卷来调度 Pod: + * [卷拓扑支持](/zh-cn/docs/concepts/storage/storage-classes/#volume-binding-mode) + * [存储容量跟踪](/zh-cn/docs/concepts/storage/storage-capacity/) + * [特定于节点的卷数限制](/zh-cn/docs/concepts/storage/storage-limits/)