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.