C PodDisruptionBudget Kubernetes Resource
PodDisruptionBudget (PDB) is a Kubernetes resource. It helps to achieve the high availability of scalable application services in voluntary disruptions performed by cluster administrators to manage the cluster nodes. PDB can be defined for highly available and scalable SCP services such as scp-worker, scp-cache, and scp-nrfproxy microservices. PDB restricts the number of pods of a highly available and scalable application that are down simultaneously from voluntary disruptions.
PDB allows safe eviction of pods when a Kubernetes node is drained of pods to
perform maintenance on the node. SCP uses the default value of
maxPdbUnavailable
parameter specified in the Helm chart to
determine the maximum number of pods that can remain unavailable during a voluntary
disruption. For example, if maxPdbUnavailable
is 25%, the evictions are
allowed until not more than 25% of the desired replicas are unhealthy.
Note:
The performance and capacity of the SCP system may vary based on the call model, feature or interface configuration, network conditions, and underlying CNE and hardware environment.
For more information about this functionality, see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets.
The following table provides information about PDB values of different SCP microservices.
Table C-1 Default PodDisruptionBudget for SCP Deployment
Microservice | Default PodDisruptionBudget | PodDisruptionBudget Supported |
---|---|---|
scpc-subscription | NA | No
It is a single pod instance service. PDB is not recommended for single pod instance services because it may not help for service availability and manual intervention is not accepted by defining PDB maxPdbUnavailable=0. |
scpc-notification | NA | No
It is a single pod instance service. PDB is not recommended for single pod instance services because it may not help for service availability and manual intervention is not accepted by defining PDB maxPdbUnavailable=0. |
scpc-audit | NA | No
It is a single pod instance service. PDB is not recommended for single pod instance services because it may not help for service availability and manual intervention is not accepted by defining PDB maxPdbUnavailable=0. |
scpc-configuration | NA | No
It is a single pod instance service. PDB is not recommended for single pod instance services because it may not help for service availability and manual intervention is not accepted by defining PDB maxPdbUnavailable=0. |
scpc-alternate-resolution | NA | No
It is a single pod instance service. PDB is not recommended for single pod instance services because it may not help for service availability and manual intervention is not accepted by defining PDB maxPdbUnavailable=0. |
scp-cache | maxPdbUnavailable is 1 | Yes
To have uninterrupted service during voluntary disruptions in the Kubernetes cluster. |
scp-nrfproxy | maxPdbUnavailable is 25% | Yes
To have uninterrupted service during voluntary disruptions in the Kubernetes cluster. |
scp-worker | maxPdbUnavailable is 25% | Yes
To have uninterrupted service during voluntary disruptions in the Kubernetes cluster. |
scp-load-manager | maxPdbUnavailable is 1 | Yes
To have uninterrupted service during voluntary disruptions in the Kubernetes cluster. |
scp-mediation | maxPdbUnavailable is 25% | Yes
To have uninterrupted service during voluntary disruptions in the Kubernetes cluster. |
scp-nrfProxy-oauth | maxPdbUnavailable is 25% | Yes
To have uninterrupted service during voluntary disruptions in the Kubernetes cluster. |
maxPdbUnavailable indicates how many pods are allowed for eviction.