B PodDisruptionBudget Configuration

PodDisruptionBudget (PDB) is a Kubernetes resource that allows 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 Policy services such as SM Service, AM Service, User service, app-info, perf-info, etc.

It allows safe eviction of pods when a Kubernetes node is drained to perform maintenance on the node. It uses the default value of the maxUnavailable parameter specified in the Helm chart to determine the maximum number of pods that are unavailable during a voluntary disruption. For example, if maxUnavailable is 50%, the evictions are allowed until not more than 50% of the desired replicas are unhealthy.

Note:

The performance and capacity of the Policy system may vary based on the Call model, Feature/Interface configuration, underlying CNE and hardware environment, including but not limited to the complexity of deployed policies, policy table size , object expression and custom json usage in policy design.

The following Policy services support PDB:

Table B-1 Default PodDisruptionBudget for Policy microservices

Microservice PDB Default Value (maxUnavailable)
alternate_route 1
am-service 20%
app-info 20%
audit-service NA
binding service 20%
bulwark 0
cm-service 20%
config-server 20%
diam-connector 20%
diam-gateway 20%
ingress_gateway 1
egress_gateway 1
ldap-gateway 20%
notifier service 20%
nrf-client-discovery 25%
nrf-client-management NA
nwdaf-agent 20%
pcrf-core 20%
perf-info 20%
policyds 20%
pre 20%
pre-test --
queryservice 20%
sm-service 20%
soap connector 20%
udr connector 20%
ue-service 20%
user-service 20%
usage-mon 20%
chf-connector 20%