Skip to content

Commit 9c2e4c8

Browse files
Jonathan S. Katzdrewburr
andcommitted
Fix link to Kubernetes documentation
This was missing the full TLD. Co-authored-by: Drew Brown <[email protected]>
1 parent 507d34a commit 9c2e4c8

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

docs/content/advanced/multi-zone-design-considerations.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,15 @@ When using the PostgreSQL Operator in a Kubernetes cluster consisting of nodes t
1313
must be taken to ensure all pods and the associated volumes re scheduled and provisioned within the same zone.
1414

1515
Given that a pod is unable mount a volume that is located in another zone, any volumes that are dynamically provisioned must
16-
be provisioned in a topology-aware manner according to the specific scheduling requirements for the pod.
16+
be provisioned in a topology-aware manner according to the specific scheduling requirements for the pod.
1717

1818
This means that when a new PostgreSQL cluster is created, it is necessary to ensure that the volume containing the database
1919
files for the primary PostgreSQL database within the PostgreSQL clluster is provisioned in the same zone as the node containing the PostgreSQL primary pod that will be accesing the applicable volume.
2020

2121
#### Dynamic Provisioning of Volumes: Default Behavior
2222

23-
By default, the Kubernetes scheduler will ensure any pods created that claim a specific volume via a PVC are scheduled on a
24-
node in the same zone as that volume. This is part of the default Kubernetes [multi-zone support](https://kubernetes.io/docs/setup/multiple-zones/).
23+
By default, the Kubernetes scheduler will ensure any pods created that claim a specific volume via a PVC are scheduled on a
24+
node in the same zone as that volume. This is part of the default Kubernetes [multi-zone support](https://kubernetes.io/docs/setup/multiple-zones/).
2525

2626
However, when using Kubernetes [dynamic provisioning](https://kubernetes.io/docs/concepts/storage/dynamic-provisioning/),
2727
volumes are not provisioned in a topology-aware manner.
@@ -54,14 +54,14 @@ Unfortunately, the default setting for dynamic provisinoing of volumes in mulit-
5454

5555
Within the PostgreSQL Operator, a **node label** is implemented as a `preferredDuringSchedulingIgnoredDuringExecution` node
5656
affinity rule, which is an affinity rule that Kubernetes will attempt to adhere to when scheduling any pods for the cluster,
57-
but _will not guarantee_. More information on node affinity rules can be found [here](https://kubernetes.i/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity)).
57+
but _will not guarantee_. More information on node affinity rules can be found [here](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity)).
5858

5959
By using `Immediate` for the `volumeBindingMode` in a multi-zone cluster environment, the scheduler will ignore any requested
6060
_(but not mandatory)_ scheduling requirements if necessary to ensure the pod can be scheduled. The scheduler will ultimately
61-
schedule the pod on a node in the same zone as the volume, even if another node was requested for scheduling that pod.
61+
schedule the pod on a node in the same zone as the volume, even if another node was requested for scheduling that pod.
6262

6363
As it relates to the PostgreSQL Operator specifically, a node label specified using the `--node-label` option when creating a
64-
cluster using the `pgo create cluster` command in order target a specific node (or nodes) for the deployment of that cluster.
64+
cluster using the `pgo create cluster` command in order target a specific node (or nodes) for the deployment of that cluster.
6565

6666
Therefore, if the volume ends up in a zone other than the zone containing the node (or nodes) defined by the node label, the
6767
node label will be ignored, and the pod will be scheduled according to the zone containing the volume.
@@ -71,7 +71,7 @@ node label will be ignored, and the pod will be scheduled according to the zone
7171
In order to overcome this default behavior, it is necessary to make the dynamically provisioned volumes topology aware.
7272

7373
This is accomplished by setting the `volumeBindingMode` for the storage class to `WaitForFirstConsumer`, which delays the
74-
dynamic provisioning of a volume until a pod using it is created.
74+
dynamic provisioning of a volume until a pod using it is created.
7575

7676
In other words, the PVC is no longer bound as soon as it is requested, but rather waits for a pod utilizing it to be creating
7777
prior to binding. This change ensures that volume can take into account the scheduling requirements for the pod, which in the
@@ -124,13 +124,13 @@ From there those storage configurations can then be selected when creating a new
124124
pgo create cluster mycluster --storage-config=example-sc
125125
```
126126

127-
With this approach, the pod will once again be scheduled according to the zone in which the volume was provisioned.
127+
With this approach, the pod will once again be scheduled according to the zone in which the volume was provisioned.
128128

129129
However, the zone parameters defined on the Storage Class bring consistency to scheduling by guaranteeing that the volume, and
130130
therefore also the pod using that volume, are scheduled in a specific zone as defined by the user, bringing consistency
131131
and predictability to volume provisioning and pod scheduling in multi-zone clusters.
132132

133-
For more information regarding the specific parameters available for the Storage Classes being utilizing in your cloud
133+
For more information regarding the specific parameters available for the Storage Classes being utilizing in your cloud
134134
environment, please see the
135135
[Kubernetes documentation for Storage Classes](https://kubernetes.io/docs/concepts/storage/storage-classes/).
136136

0 commit comments

Comments
 (0)