@@ -56,7 +56,7 @@ is enabled.
56
56
57
57
You can also use PDBs with pods which are not controlled by one of the above
58
58
controllers, or arbitrary groups of pods, but there are some restrictions,
59
- described in [ Arbitrary Controllers and Selectors ] ( #arbitrary-controllers-and-selectors ) .
59
+ described in [ Arbitrary workloads and arbitrary selectors ] ( #arbitrary-controllers-and-selectors ) .
60
60
61
61
## Think about how your application reacts to disruptions
62
62
@@ -283,19 +283,24 @@ Policies:
283
283
Pods in `Pending`, `Succeeded` or `Failed` phase are always considered for eviction.
284
284
{{< /note >}}
285
285
286
- # # Arbitrary Controllers and Selectors
286
+ # # Arbitrary workloads and arbitrary selectors {#arbitrary-controllers-and-selectors}
287
287
288
288
You can skip this section if you only use PDBs with the built-in
289
- application controllers (Deployment, ReplicationController, ReplicaSet, and StatefulSet),
290
- with the PDB selector matching the controller's selector.
289
+ workload resources (Deployment, ReplicaSet, StatefulSet and ReplicationController)
290
+ or with {{< glossary_tooltip term_id="CustomResourceDefinition" text="custom resources" >}}
291
+ that implement a `scale` [subresource](/docs/concepts/extend-kubernetes/api-extension/custom-resources/#advanced-features-and-flexibility),
292
+ and where the PDB selector exactly matches the selector of the Pod's owning resource.
291
293
292
- You can use a PDB with pods controlled by another type of controller , by an
294
+ You can use a PDB with pods controlled by another resource , by an
293
295
" operator" , or bare pods, but with these restrictions:
294
296
295
297
- only `.spec.minAvailable` can be used, not `.spec.maxUnavailable`.
296
298
- only an integer value can be used with `.spec.minAvailable`, not a percentage.
297
299
298
- You can use a selector which selects a subset or superset of the pods belonging to a built-in
299
- controller. The eviction API will disallow eviction of any pod covered by multiple PDBs,
300
+ It is not possible to use other availability configurations,
301
+ because Kubernetes cannot derive a total number of pods without a supported owning resource.
302
+
303
+ You can use a selector which selects a subset or superset of the pods belonging to a
304
+ workload resource. The eviction API will disallow eviction of any pod covered by multiple PDBs,
300
305
so most users will want to avoid overlapping selectors. One reasonable use of overlapping
301
306
PDBs is when pods are being transitioned from one PDB to another.
0 commit comments