Merge pull request #39196 from atiratree/pdbs-arbitrary-controllers

PDBs: mention scale subresource in Arbitrary Controllers and Selectors
pull/41993/head
Kubernetes Prow Robot 2023-07-13 05:24:05 -07:00 committed by GitHub
commit b55e8bcaf5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 7 deletions

View File

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