Merge pull request #45648 from asa3311/sync-zh-108
[zh] sync kube-scheduler taint-and-toleration topology-spread-constraints
This commit is contained in:
commit
73edd86532
|
|
@ -122,7 +122,7 @@ kube-scheduler 给一个 Pod 做调度选择时包含两个步骤:
|
||||||
<!--
|
<!--
|
||||||
The _filtering_ step finds the set of Nodes where it's feasible to
|
The _filtering_ step finds the set of Nodes where it's feasible to
|
||||||
schedule the Pod. For example, the PodFitsResources filter checks whether a
|
schedule the Pod. For example, the PodFitsResources filter checks whether a
|
||||||
candidate Node has enough available resource to meet a Pod's specific
|
candidate Node has enough available resources to meet a Pod's specific
|
||||||
resource requests. After this step, the node list contains any suitable
|
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
|
Nodes; often, there will be more than one. If the list is empty, that
|
||||||
Pod isn't (yet) schedulable.
|
Pod isn't (yet) schedulable.
|
||||||
|
|
|
||||||
|
|
@ -141,7 +141,7 @@ An empty `effect` matches all effects with key `key1`.
|
||||||
{{< /note >}}
|
{{< /note >}}
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
The above example used `effect` of `NoSchedule`. Alternatively, you can use `effect` of `PreferNoSchedule`.
|
The above example used the `effect` of `NoSchedule`. Alternatively, you can use the `effect` of `PreferNoSchedule`.
|
||||||
-->
|
-->
|
||||||
上述例子中 `effect` 使用的值为 `NoSchedule`,你也可以使用另外一个值 `PreferNoSchedule`。
|
上述例子中 `effect` 使用的值为 `NoSchedule`,你也可以使用另外一个值 `PreferNoSchedule`。
|
||||||
|
|
||||||
|
|
@ -389,7 +389,7 @@ are true. The following taints are built in:
|
||||||
* `node.kubernetes.io/network-unavailable`: Node's network is unavailable.
|
* `node.kubernetes.io/network-unavailable`: Node's network is unavailable.
|
||||||
* `node.kubernetes.io/unschedulable`: Node is unschedulable.
|
* `node.kubernetes.io/unschedulable`: Node is unschedulable.
|
||||||
* `node.cloudprovider.kubernetes.io/uninitialized`: When the kubelet is started
|
* `node.cloudprovider.kubernetes.io/uninitialized`: When the kubelet is started
|
||||||
with "external" cloud provider, this taint is set on a node to mark it
|
with an "external" cloud provider, this taint is set on a node to mark it
|
||||||
as unusable. After a controller from the cloud-controller-manager initializes
|
as unusable. After a controller from the cloud-controller-manager initializes
|
||||||
this node, the kubelet removes this taint.
|
this node, the kubelet removes this taint.
|
||||||
-->
|
-->
|
||||||
|
|
|
||||||
|
|
@ -496,7 +496,7 @@ can use a manifest similar to:
|
||||||
|
|
||||||
<!--
|
<!--
|
||||||
From that manifest, `topologyKey: zone` implies the even distribution will only be applied
|
From that manifest, `topologyKey: zone` implies the even distribution will only be applied
|
||||||
to nodes that are labelled `zone: <any value>` (nodes that don't have a `zone` label
|
to nodes that are labeled `zone: <any value>` (nodes that don't have a `zone` label
|
||||||
are skipped). The field `whenUnsatisfiable: DoNotSchedule` tells the scheduler to let the
|
are skipped). The field `whenUnsatisfiable: DoNotSchedule` tells the scheduler to let the
|
||||||
incoming Pod stay pending if the scheduler can't find a way to satisfy the constraint.
|
incoming Pod stay pending if the scheduler can't find a way to satisfy the constraint.
|
||||||
|
|
||||||
|
|
@ -780,7 +780,7 @@ There are some implicit conventions worth noting here:
|
||||||
above example, if you remove the incoming Pod's labels, it can still be placed onto
|
above example, if you remove the incoming Pod's labels, it can still be placed onto
|
||||||
nodes in zone `B`, since the constraints are still satisfied. However, after that
|
nodes in zone `B`, since the constraints are still satisfied. However, after that
|
||||||
placement, the degree of imbalance of the cluster remains unchanged - it's still zone `A`
|
placement, the degree of imbalance of the cluster remains unchanged - it's still zone `A`
|
||||||
having 2 Pods labelled as `foo: bar`, and zone `B` having 1 Pod labelled as
|
having 2 Pods labeled as `foo: bar`, and zone `B` having 1 Pod labeled as
|
||||||
`foo: bar`. If this is not what you expect, update the workload's
|
`foo: bar`. If this is not what you expect, update the workload's
|
||||||
`topologySpreadConstraints[*].labelSelector` to match the labels in the pod template.
|
`topologySpreadConstraints[*].labelSelector` to match the labels in the pod template.
|
||||||
-->
|
-->
|
||||||
|
|
@ -981,7 +981,7 @@ section of the enhancement proposal about Pod topology spread constraints.
|
||||||
because, in this case, those topology domains won't be considered until there is
|
because, in this case, those topology domains won't be considered until there is
|
||||||
at least one node in them.
|
at least one node in them.
|
||||||
|
|
||||||
You can work around this by using an cluster autoscaling tool that is aware of
|
You can work around this by using a cluster autoscaling tool that is aware of
|
||||||
Pod topology spread constraints and is also aware of the overall set of topology
|
Pod topology spread constraints and is also aware of the overall set of topology
|
||||||
domains.
|
domains.
|
||||||
-->
|
-->
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue