Skip to content

Commit 6700656

Browse files
author
Tim Bannister
committed
Move Pod Topology Spread Constraints into scheduling
These constraints apply specifically to the mechanism for placing Pods onto nodes (that is, scheduling).
1 parent bde5fe9 commit 6700656

File tree

11 files changed

+12
-10
lines changed

11 files changed

+12
-10
lines changed

content/en/blog/_posts/2020-05-05-introducing-podtopologyspread.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ Let's see an example of a cluster to understand this API.
6767
As the feature name "PodTopologySpread" implies, the basic usage of this feature
6868
is to run your workload with an absolute even manner (maxSkew=1), or relatively
6969
even manner (maxSkew>=2). See the [official
70-
document](/docs/concepts/workloads/pods/pod-topology-spread-constraints/)
70+
document](/docs/concepts/scheduling-eviction/topology-spread-constraints/)
7171
for more details.
7272

7373
In addition to this basic usage, there are some advanced usage examples that

content/en/blog/_posts/2020-09-30-writing-crl-scheduler/index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ To correct the latter issue, we now employ a "hunt and peck" approach to removin
7070
### 1. Upgrade to kubernetes 1.18 and make use of Pod Topology Spread Constraints
7171

7272
While this seems like it could have been the perfect solution, at the time of writing Kubernetes 1.18 was unavailable on the two most common managed Kubernetes services in public cloud, EKS and GKE.
73-
Furthermore, [pod topology spread constraints](/docs/concepts/workloads/pods/pod-topology-spread-constraints/) were still a [beta feature in 1.18](https://v1-18.docs.kubernetes.io/docs/concepts/workloads/pods/pod-topology-spread-constraints/) which meant that it [wasn't guaranteed to be available in managed clusters](https://cloud.google.com/kubernetes-engine/docs/concepts/types-of-clusters#kubernetes_feature_choices) even when v1.18 became available.
73+
Furthermore, [pod topology spread constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/) were still a beta feature in 1.18 which meant that it [wasn't guaranteed to be available in managed clusters](https://cloud.google.com/kubernetes-engine/docs/concepts/types-of-clusters#kubernetes_feature_choices) even when v1.18 became available.
7474
The entire endeavour was concerningly reminiscent of checking [caniuse.com](https://caniuse.com/) when Internet Explorer 8 was still around.
7575

7676
### 2. Deploy a statefulset _per zone_.

content/en/docs/concepts/scheduling-eviction/_index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ of terminating one or more Pods on Nodes.
2323
* [Kubernetes Scheduler](/docs/concepts/scheduling-eviction/kube-scheduler/)
2424
* [Assigning Pods to Nodes](/docs/concepts/scheduling-eviction/assign-pod-node/)
2525
* [Pod Overhead](/docs/concepts/scheduling-eviction/pod-overhead/)
26+
* [Pod Topology Spread Constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/)
2627
* [Taints and Tolerations](/docs/concepts/scheduling-eviction/taint-and-toleration/)
2728
* [Scheduling Framework](/docs/concepts/scheduling-eviction/scheduling-framework)
2829
* [Scheduler Performance Tuning](/docs/concepts/scheduling-eviction/scheduler-perf-tuning/)

content/en/docs/concepts/scheduling-eviction/kube-scheduler.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ of the scheduler:
8383
## {{% heading "whatsnext" %}}
8484

8585
* Read about [scheduler performance tuning](/docs/concepts/scheduling-eviction/scheduler-perf-tuning/)
86-
* Read about [Pod topology spread constraints](/docs/concepts/workloads/pods/pod-topology-spread-constraints/)
86+
* Read about [Pod topology spread constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/)
8787
* Read the [reference documentation](/docs/reference/command-line-tools-reference/kube-scheduler/) for kube-scheduler
8888
* Read the [kube-scheduler config (v1beta3)](/docs/reference/config-api/kube-scheduler-config.v1beta3/) reference
8989
* Learn about [configuring multiple schedulers](/docs/tasks/extend-kubernetes/configure-multiple-schedulers/)

content/en/docs/concepts/workloads/pods/_index.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -320,12 +320,12 @@ in the Pod Lifecycle documentation.
320320
* Learn about the [lifecycle of a Pod](/docs/concepts/workloads/pods/pod-lifecycle/).
321321
* Learn about [RuntimeClass](/docs/concepts/containers/runtime-class/) and how you can use it to
322322
configure different Pods with different container runtime configurations.
323-
* Read about [Pod topology spread constraints](/docs/concepts/workloads/pods/pod-topology-spread-constraints/).
324323
* Read about [PodDisruptionBudget](/docs/concepts/workloads/pods/disruptions/) and how you can use it to manage application availability during disruptions.
325324
* Pod is a top-level resource in the Kubernetes REST API.
326325
The {{< api-reference page="workload-resources/pod-v1" >}}
327326
object definition describes the object in detail.
328327
* [The Distributed System Toolkit: Patterns for Composite Containers](/blog/2015/06/the-distributed-system-toolkit-patterns/) explains common layouts for Pods with more than one container.
328+
* Read about [Pod topology spread constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/)
329329

330330
To understand the context for why Kubernetes wraps a common Pod API in other resources (such as {{< glossary_tooltip text="StatefulSets" term_id="statefulset" >}} or {{< glossary_tooltip text="Deployments" term_id="deployment" >}}), you can read about the prior art, including:
331331

content/en/docs/contribute/style/diagram-guide.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -438,7 +438,7 @@ Note that the live editor doesn't recognize Hugo shortcodes.
438438
### Example 1 - Pod topology spread constraints
439439

440440
Figure 6 shows the diagram appearing in the
441-
[Pod topology pread constraints](/docs/concepts/workloads/pods/pod-topology-spread-constraints/#node-labels)
441+
[Pod topology pread constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/#node-labels)
442442
page.
443443

444444
{{< mermaid >}}

content/en/docs/reference/command-line-tools-reference/feature-gates.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -808,7 +808,7 @@ Each feature gate is designed for enabling/disabling a specific feature:
808808
availability during update per node.
809809
See [Perform a Rolling Update on a DaemonSet](/docs/tasks/manage-daemon/update-daemon-set/).
810810
- `DefaultPodTopologySpread`: Enables the use of `PodTopologySpread` scheduling plugin to do
811-
[default spreading](/docs/concepts/workloads/pods/pod-topology-spread-constraints/#internal-default-constraints).
811+
[default spreading](/docs/concepts/scheduling-eviction/topology-spread-constraints/#internal-default-constraints).
812812
- `DelegateFSGroupToCSIDriver`: If supported by the CSI driver, delegates the
813813
role of applying `fsGroup` from a Pod's `securityContext` to the driver by
814814
passing `fsGroup` through the NodeStageVolume and NodePublishVolume CSI calls.
@@ -854,7 +854,7 @@ Each feature gate is designed for enabling/disabling a specific feature:
854854
{{< glossary_tooltip text="ephemeral containers" term_id="ephemeral-container" >}}
855855
to running pods.
856856
- `EvenPodsSpread`: Enable pods to be scheduled evenly across topology domains. See
857-
[Pod Topology Spread Constraints](/docs/concepts/workloads/pods/pod-topology-spread-constraints/).
857+
[Pod Topology Spread Constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/).
858858
- `ExecProbeTimeout`: Ensure kubelet respects exec probe timeouts.
859859
This feature gate exists in case any of your existing workloads depend on a
860860
now-corrected fault where Kubernetes ignored exec probe timeouts. See
@@ -995,7 +995,7 @@ Each feature gate is designed for enabling/disabling a specific feature:
995995
- `MemoryQoS`: Enable memory protection and usage throttle on pod / container using
996996
cgroup v2 memory controller.
997997
- `MinDomainsInPodTopologySpread`: Enable `minDomains` in Pod
998-
[topology spread constraints](/docs/concepts/workloads/pods/pod-topology-spread-constraints/).
998+
[topology spread constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/).
999999
- `MixedProtocolLBService`: Enable using different protocols in the same `LoadBalancer` type
10001000
Service instance.
10011001
- `MountContainers`: Enable using utility containers on host as the volume mounter.

content/en/docs/reference/scheduling/config.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ extension points:
123123
and [node affinity](/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity).
124124
Extension points: `filter`, `score`.
125125
- `PodTopologySpread`: Implements
126-
[Pod topology spread](/docs/concepts/workloads/pods/pod-topology-spread-constraints/).
126+
[Pod topology spread](/docs/concepts/scheduling-eviction/topology-spread-constraints/).
127127
Extension points: `preFilter`, `filter`, `preScore`, `score`.
128128
- `NodeUnschedulable`: Filters out nodes that have `.spec.unschedulable` set to
129129
true.

content/en/docs/setup/best-practices/multiple-zones.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ These labels can include
6363

6464
If your cluster spans multiple zones or regions, you can use node labels
6565
in conjunction with
66-
[Pod topology spread constraints](/docs/concepts/workloads/pods/pod-topology-spread-constraints/)
66+
[Pod topology spread constraints](/docs/concepts/scheduling-eviction/topology-spread-constraints/)
6767
to control how Pods are spread across your cluster among fault domains:
6868
regions, zones, and even specific nodes.
6969
These hints enable the

0 commit comments

Comments
 (0)