A PodDisruptionBudget Kubernetes Resource
PodDisruptionBudget (PDB) is a Kubernetes resource that allows you to achieve 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 undisrupted when a pod is deleted accidentally or deliberately. PDB can be defined for high available and scalable NRF services. For more information on the services that are supported, see Table A-1.
maxPdbUnavailable
parameter
specified in the Helm chart to determine the maximum number of pods that can be
unavailable during a voluntary disruption.
Note:
The maxPdbUnavailable
parameter has a predefined
value.
For example, when a maxPdbUnavailable
is 25%, pod
evictions are allowed as long as no more than 25% of the desired pods are in
unhealthy state.
For more information about this functionality, see https://kubernetes.io/docs/concepts/workloads/pods/disruptions/#pod-disruption-budgets.
Note:
The performance and capacity of the NRF system may vary based on the call model, Feature or Interface configuration, and underlying CNE and hardware environment.Table A-1 Predefined PodDisruptionBudget Value
Microservice | PDB Value (maxPdbUnavailable) |
---|---|
<helm-release-name>-nfregistration | 25% |
<helm-release-name>-nfsubscription | 25% |
<helm-release-name>-nfdiscovery | 25% |
<helm-release-name>-nrfauditor | 25% |
<helm-release-name>-nrfconfiguration | Not Applicable
Note: PDB not supported for this microservice. |
<helm-release-name>-appinfo | 50% |
<helm-release-name>-nfaccesstoken | 25% |
<helm-release-name>-nrfartisan | Not Applicable
Note: PDB not supported for this microservice. |
<helm-release-name>-alternate_route | 25% |
<helm-release-name>-egressgateway | 25% |
<helm-release-name>-ingressgateway | 25% |
<helm-release-name>-performance | 50% |
Note:
<helm-release-name>
is the Helm release name. For
example, if helm-release-name is "ocnrf", then nfsubscription microservice name will
be "ocnrf-nfsubscription".