3.4 KiB
Isolate-ucmdbserver-and-ucmdbbrowser-pods-in-different-worker-nodes_688996319
In some SaaS farms, we noticed sometimes ucmdbserver and ucmdbbroser pods would be distributed into 1 worker node by K8S automatically, while it increased the risk to re-located ucmdb server / browser to another worker node when customer do some high memory consumption operations in ucmdb server/browser like schedule reports and cause server/browser restart. This runbook is a configuration guide how to isolate server and browser pods in different worker nodes to prevent the restart by following below steps:
Note: this configuration has downtime to UCMDB server and browser pods!!! Please plan it in non business hours.
1. edit UCMDB statefulset
kubectl edit statefulset itom-ucmdb -n
2. Add the block requiredDuringSchedulingIgnoredDuringExecution to spec.template.spec.affinity.podAntiAffinity of statefulset itom-ucmdb as following
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- ucmdbserver
topologyKey: kubernetes.io/hostname
weight: 100
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: workLoad
operator: In
values:
- ExtraHigh
topologyKey: kubernetes.io/hostname
weight: 100
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- ucmdbserver
topologyKey: kubernetes.io/hostname
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- ucmdbbrowser
topologyKey: kubernetes.io/hostname
3. edit UCMDB Browser deployment
kubectl edit deployment itom-ucmdb-browser -n
4. Add the block requiredDuringSchedulingIgnoredDuringExecution to spec.template.spec.affinity.podAntiAffinity of deployment itom-ucmdb-browser as following
affinity:
podAntiAffinity:
preferredDuringSchedulingIgnoredDuringExecution:
- podAffinityTerm:
labelSelector:
matchExpressions:
- key: app.kubernetes.io/name
operator: In
values:
- ucmdbbrowser
topologyKey: kubernetes.io/hostname
weight: 100
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: app
operator: In
values:
- ucmdbserver
topologyKey: kubernetes.io/hostname
Related pages
- Page: ESM Cloud Farm Version Tracking
- Page: How to get an Opentext Confluence account
- Page: ITOM APM AppPluse Cloud Farm Information
- Page: ITOM Cloud Service Ops Doc Management Process
- Page: ITOM ESM Cloud Service Catalog
- Page: ITOM OpsB NOM Cloud Service Catalog
- Page: OpsB and NOM Cloud Deployments Version Tracking