[zh-cn] resync /scheduling-eviction/kube-scheduler.md
parent
af9b15a3bb
commit
db58c59730
|
@ -64,8 +64,6 @@ of terminating one or more Pods on Nodes.
|
|||
<!--
|
||||
## Pod Disruption
|
||||
|
||||
{{<glossary_definition term_id="pod-disruption" length="all">}}
|
||||
|
||||
* [Pod Priority and Preemption](/docs/concepts/scheduling-eviction/pod-priority-preemption/)
|
||||
* [Node-pressure Eviction](/docs/concepts/scheduling-eviction/node-pressure-eviction/)
|
||||
* [API-initiated Eviction](/docs/concepts/scheduling-eviction/api-eviction/)
|
||||
|
|
|
@ -16,9 +16,9 @@ In Kubernetes, _scheduling_ refers to making sure that {{< glossary_tooltip text
|
|||
are matched to {{< glossary_tooltip text="Nodes" term_id="node" >}} so that
|
||||
{{< glossary_tooltip term_id="kubelet" >}} can run them.
|
||||
-->
|
||||
在 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。
|
||||
|
||||
<!-- body -->
|
||||
<!--
|
||||
|
@ -33,8 +33,8 @@ for finding the best Node for that Pod to run on. The scheduler reaches
|
|||
this placement decision taking into account the scheduling principles
|
||||
described below.
|
||||
-->
|
||||
调度器通过 kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到 Node 上的 Pod。
|
||||
调度器会将发现的每一个未调度的 Pod 调度到一个合适的 Node 上来运行。
|
||||
调度器通过 Kubernetes 的监测(Watch)机制来发现集群中新创建且尚未被调度到节点上的 Pod。
|
||||
调度器会将所发现的每一个未调度的 Pod 调度到一个合适的节点上来运行。
|
||||
调度器会依据下文的调度原则来做出调度选择。
|
||||
|
||||
<!--
|
||||
|
@ -42,8 +42,8 @@ If you want to understand why Pods are placed onto a particular Node,
|
|||
or if you're planning to implement a custom scheduler yourself, this
|
||||
page will help you learn about scheduling.
|
||||
-->
|
||||
如果你想要理解 Pod 为什么会被调度到特定的 Node 上,或者你想要尝试实现
|
||||
一个自定义的调度器,这篇文章将帮助你了解调度。
|
||||
如果你想要理解 Pod 为什么会被调度到特定的节点上,
|
||||
或者你想要尝试实现一个自定义的调度器,这篇文章将帮助你了解调度。
|
||||
|
||||
<!--
|
||||
## kube-scheduler
|
||||
|
@ -60,8 +60,8 @@ write your own scheduling component and use that instead.
|
|||
[kube-scheduler](/zh-cn/docs/reference/command-line-tools-reference/kube-scheduler/)
|
||||
是 Kubernetes 集群的默认调度器,并且是集群
|
||||
{{< glossary_tooltip text="控制面" term_id="control-plane" >}} 的一部分。
|
||||
如果你真的希望或者有这方面的需求,kube-scheduler 在设计上是允许
|
||||
你自己写一个调度组件并替换原有的 kube-scheduler。
|
||||
如果你真得希望或者有这方面的需求,kube-scheduler
|
||||
在设计上允许你自己编写一个调度组件并替换原有的 kube-scheduler。
|
||||
|
||||
<!--
|
||||
For every newly created pods or other unscheduled pods, kube-scheduler
|
||||
|
@ -70,19 +70,19 @@ pods has different requirements for resources and every pod also has
|
|||
different requirements. Therefore, existing nodes need to be filtered
|
||||
according to the specific scheduling requirements.
|
||||
-->
|
||||
对每一个新创建的 Pod 或者是未被调度的 Pod,kube-scheduler 会选择一个最优的
|
||||
Node 去运行这个 Pod。然而,Pod 内的每一个容器对资源都有不同的需求,而且
|
||||
Pod 本身也有不同的资源需求。因此,Pod 在被调度到 Node 上之前,
|
||||
根据这些特定的资源调度需求,需要对集群中的 Node 进行一次过滤。
|
||||
对每一个新创建的 Pod 或者是未被调度的 Pod,kube-scheduler 会选择一个最优的节点去运行这个 Pod。
|
||||
然而,Pod 内的每一个容器对资源都有不同的需求,
|
||||
而且 Pod 本身也有不同的需求。因此,Pod 在被调度到节点上之前,
|
||||
根据这些特定的调度需求,需要对集群中的节点进行一次过滤。
|
||||
|
||||
<!--
|
||||
In a cluster, Nodes that meet the scheduling requirements for a Pod
|
||||
are called _feasible_ nodes. If none of the nodes are suitable, the pod
|
||||
remains unscheduled until the scheduler is able to place it.
|
||||
-->
|
||||
在一个集群中,满足一个 Pod 调度请求的所有 Node 称之为 _可调度节点_。
|
||||
如果没有任何一个 Node 能满足 Pod 的资源请求,那么这个 Pod 将一直停留在
|
||||
未调度状态直到调度器能够找到合适的 Node。
|
||||
在一个集群中,满足一个 Pod 调度请求的所有节点称之为 **可调度节点**。
|
||||
如果没有任何一个节点能满足 Pod 的资源请求,
|
||||
那么这个 Pod 将一直停留在未调度状态直到调度器能够找到合适的 Node。
|
||||
|
||||
<!--
|
||||
The scheduler finds feasible Nodes for a Pod and then runs a set of
|
||||
|
@ -91,8 +91,8 @@ score among the feasible ones to run the Pod. The scheduler then notifies
|
|||
the API server about this decision in a process called _binding_.
|
||||
-->
|
||||
调度器先在集群中找到一个 Pod 的所有可调度节点,然后根据一系列函数对这些可调度节点打分,
|
||||
选出其中得分最高的 Node 来运行 Pod。之后,调度器将这个调度决定通知给
|
||||
kube-apiserver,这个过程叫做 _绑定_。
|
||||
选出其中得分最高的节点来运行 Pod。之后,调度器将这个调度决定通知给
|
||||
kube-apiserver,这个过程叫做 **绑定**。
|
||||
|
||||
<!--
|
||||
Factors that need to be taken into account for scheduling decisions include
|
||||
|
@ -114,7 +114,7 @@ kube-scheduler selects a node for the pod in a 2-step operation:
|
|||
1. Filtering
|
||||
2. Scoring
|
||||
-->
|
||||
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 不可调度。
|
||||
|
||||
<!--
|
||||
In the _scoring_ step, the scheduler ranks the remaining nodes to choose
|
||||
the most suitable Pod placement. The scheduler assigns a score to each Node
|
||||
that survived filtering, basing this score on the active scoring rules.
|
||||
-->
|
||||
在打分阶段,调度器会为 Pod 从所有可调度节点中选取一个最合适的 Node。
|
||||
在打分阶段,调度器会为 Pod 从所有可调度节点中选取一个最合适的节点。
|
||||
根据当前启用的打分规则,调度器会给每一个可调度节点进行打分。
|
||||
|
||||
<!--
|
||||
|
@ -145,8 +145,8 @@ Finally, kube-scheduler assigns the Pod to the Node with the highest ranking.
|
|||
If there is more than one node with equal scores, kube-scheduler selects
|
||||
one of these at random.
|
||||
-->
|
||||
最后,kube-scheduler 会将 Pod 调度到得分最高的 Node 上。
|
||||
如果存在多个得分最高的 Node,kube-scheduler 会从中随机选取一个。
|
||||
最后,kube-scheduler 会将 Pod 调度到得分最高的节点上。
|
||||
如果存在多个得分最高的节点,kube-scheduler 会从中随机选取一个。
|
||||
|
||||
<!--
|
||||
There are two supported ways to configure the filtering and scoring behavior
|
||||
|
@ -162,10 +162,10 @@ of the scheduler:
|
|||
`QueueSort`, `Filter`, `Score`, `Bind`, `Reserve`, `Permit`, and others. You
|
||||
can also configure the kube-scheduler to run different profiles.
|
||||
-->
|
||||
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/)
|
||||
|
|
Loading…
Reference in New Issue