Promote Pod Disruption Budgets to GA

This commit is contained in:
Morten Torkildsen
2021-03-18 14:50:56 -07:00
parent aea393a0d0
commit d341b96fb3
6 changed files with 16 additions and 12 deletions
@@ -90,7 +90,7 @@ disruptions, if any, to expect.
## Pod disruption budgets ## Pod disruption budgets
{{< feature-state for_k8s_version="v1.5" state="beta" >}} {{< feature-state for_k8s_version="v1.21" state="stable" >}}
Kubernetes offers features to help you run highly available applications even when you Kubernetes offers features to help you run highly available applications even when you
introduce frequent voluntary disruptions. introduce frequent voluntary disruptions.
@@ -145,8 +145,6 @@ different Kubernetes components.
| `NonPreemptingPriority` | `false` | Alpha | 1.15 | 1.18 | | `NonPreemptingPriority` | `false` | Alpha | 1.15 | 1.18 |
| `NonPreemptingPriority` | `true` | Beta | 1.19 | | | `NonPreemptingPriority` | `true` | Beta | 1.19 | |
| `PodDeletionCost` | `false` | Alpha | 1.21 | | | `PodDeletionCost` | `false` | Alpha | 1.21 | |
| `PodDisruptionBudget` | `false` | Alpha | 1.3 | 1.4 |
| `PodDisruptionBudget` | `true` | Beta | 1.5 | |
| `PodAffinityNamespaceSelector` | `false` | Alpha | 1.21 | | | `PodAffinityNamespaceSelector` | `false` | Alpha | 1.21 | |
| `PodOverhead` | `false` | Alpha | 1.16 | 1.17 | | `PodOverhead` | `false` | Alpha | 1.16 | 1.17 |
| `PodOverhead` | `true` | Beta | 1.18 | | | `PodOverhead` | `true` | Beta | 1.18 | |
@@ -299,6 +297,9 @@ different Kubernetes components.
| `PersistentLocalVolumes` | `false` | Alpha | 1.7 | 1.9 | | `PersistentLocalVolumes` | `false` | Alpha | 1.7 | 1.9 |
| `PersistentLocalVolumes` | `true` | Beta | 1.10 | 1.13 | | `PersistentLocalVolumes` | `true` | Beta | 1.10 | 1.13 |
| `PersistentLocalVolumes` | `true` | GA | 1.14 | - | | `PersistentLocalVolumes` | `true` | GA | 1.14 | - |
| `PodDisruptionBudget` | `false` | Alpha | 1.3 | 1.4 |
| `PodDisruptionBudget` | `true` | Beta | 1.5 | 1.20 |
| `PodDisruptionBudget` | `true` | GA | 1.21 | - |
| `PodPriority` | `false` | Alpha | 1.8 | 1.10 | | `PodPriority` | `false` | Alpha | 1.8 | 1.10 |
| `PodPriority` | `true` | Beta | 1.11 | 1.13 | | `PodPriority` | `true` | Beta | 1.11 | 1.13 |
| `PodPriority` | `true` | GA | 1.14 | - | | `PodPriority` | `true` | GA | 1.14 | - |
@@ -2,11 +2,12 @@
title: Specifying a Disruption Budget for your Application title: Specifying a Disruption Budget for your Application
content_type: task content_type: task
weight: 110 weight: 110
min-kubernetes-server-version: v1.21
--- ---
<!-- overview --> <!-- overview -->
{{< feature-state for_k8s_version="v1.5" state="beta" >}} {{< feature-state for_k8s_version="v1.21" state="stable" >}}
This page shows how to limit the number of concurrent disruptions This page shows how to limit the number of concurrent disruptions
that your application experiences, allowing for higher availability that your application experiences, allowing for higher availability
@@ -17,6 +18,8 @@ nodes.
## {{% heading "prerequisites" %}} ## {{% heading "prerequisites" %}}
{{< version-check >}}
* You are the owner of an application running on a Kubernetes cluster that requires * You are the owner of an application running on a Kubernetes cluster that requires
high availability. high availability.
* You should know how to deploy [Replicated Stateless Applications](/docs/tasks/run-application/run-stateless-application-deployment/) * You should know how to deploy [Replicated Stateless Applications](/docs/tasks/run-application/run-stateless-application-deployment/)
@@ -112,9 +115,9 @@ of the number of pods from that set that can be unavailable after the eviction.
It can be either an absolute number or a percentage. It can be either an absolute number or a percentage.
{{< note >}} {{< note >}}
For versions 1.8 and earlier: When creating a `PodDisruptionBudget` The behavior for an empty selector differs between the policy/v1beta1 and policy/v1 APIs for
object using the `kubectl` command line tool, the `minAvailable` field has a PodDisruptionBudgets. For policy/v1beta1 an empty selector matches zero pods, while
default value of 1 if neither `minAvailable` nor `maxUnavailable` is specified. for policy/v1 an empty selector matches every pod in the namespace.
{{< /note >}} {{< /note >}}
You can specify only one of `maxUnavailable` and `minAvailable` in a single `PodDisruptionBudget`. You can specify only one of `maxUnavailable` and `minAvailable` in a single `PodDisruptionBudget`.
@@ -160,7 +163,7 @@ Example PDB Using minAvailable:
{{< codenew file="policy/zookeeper-pod-disruption-budget-minavailable.yaml" >}} {{< codenew file="policy/zookeeper-pod-disruption-budget-minavailable.yaml" >}}
Example PDB Using maxUnavailable (Kubernetes 1.7 or higher): Example PDB Using maxUnavailable:
{{< codenew file="policy/zookeeper-pod-disruption-budget-maxunavailable.yaml" >}} {{< codenew file="policy/zookeeper-pod-disruption-budget-maxunavailable.yaml" >}}
@@ -206,7 +209,7 @@ You can get more information about the status of a PDB with this command:
kubectl get poddisruptionbudgets zk-pdb -o yaml kubectl get poddisruptionbudgets zk-pdb -o yaml
``` ```
```yaml ```yaml
apiVersion: policy/v1beta1 apiVersion: policy/v1
kind: PodDisruptionBudget kind: PodDisruptionBudget
metadata: metadata:
annotations: annotations:
@@ -27,7 +27,7 @@ spec:
selector: selector:
app: zk app: zk
--- ---
apiVersion: policy/v1beta1 apiVersion: policy/v1
kind: PodDisruptionBudget kind: PodDisruptionBudget
metadata: metadata:
name: zk-pdb name: zk-pdb
@@ -1,4 +1,4 @@
apiVersion: policy/v1beta1 apiVersion: policy/v1
kind: PodDisruptionBudget kind: PodDisruptionBudget
metadata: metadata:
name: zk-pdb name: zk-pdb
@@ -1,4 +1,4 @@
apiVersion: policy/v1beta1 apiVersion: policy/v1
kind: PodDisruptionBudget kind: PodDisruptionBudget
metadata: metadata:
name: zk-pdb name: zk-pdb