A PodDisruptionBudget Kubernetes Resource
PodDisruptionBudget (PDB) is a Kubernetes resource that allows you to ensure high availability of scalable application services when the cluster administrators perform voluntary disruptions to manage the cluster nodes. PDB restricts the number of pods that are down simultaneously from voluntary disruptions. Defining PDB is helpful to keep the services running when a pod is deleted accidentally or deliberately. PDB can be defined for highly available and scalable OCNSSF services such as nsselection, nsavailability, and nsubscription services. The support is provided for scalable NSSF services.
It allows safe eviction of pods when a Kubernetes node is drained to perform maintenance on the node. It uses the maxUnavailable parameter specified in the Helm chart to determine the maximum number of pods that can be unavailable during a voluntary disruption.
For more information about this functionality, see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets.
Note:
- The minAvailable parameter is a predefined configuration. For example, when a minAvailable is 2, pod evictions are allowed as long as minimum 2(configurable value as per chart) replicas of the desired pods are in healthy state
- The performance and capacity of the NSSF system may vary based on the call model, Feature or Interface configuration, and underlying CNE and hardware environment.
Table A-1 Predefined PodDisruptionBudget for NSSF Deployment
Microservice | PDB Value (maxUnavailable) | PDB Value Specified (minAvailable) |
---|---|---|
ocnssf-ingress-gateway |
1 | |
ocnssf-egress-gateway |
1 | |
ocnssf-nsauditor |
Not Applicable
Note: PDB not supported for this microservice. |
Not Applicable
Note: PDB not supported for this microservice. |
ocnssf- nsavailability |
2 | |
ocnssf-nsconfig |
Not Applicable
Note: PDB not supported for this microservice. |
Not Applicable
Note: PDB not supported for this microservice. |
ocnssf-nsselection |
2 | |
ocnssf-nsubscription |
2 | |
ocnssf-nrf-client-nfdiscovery |
25% | |
ocnssf-nrf-client-nfmanagement |
2 | |
ocnssf-appinfo |
50% | |
ocnssf-perfinfo |
50% |