85 lines
3.4 KiB
Markdown
85 lines
3.4 KiB
Markdown
# 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 <cms-namespace>**
|
|
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](http://app.kubernetes.io/name)
|
|
operator: In
|
|
values:
|
|
\- ucmdbserver
|
|
topologyKey: [kubernetes.io/hostname](http://kubernetes.io/hostname)
|
|
weight: 100
|
|
\- podAffinityTerm:
|
|
labelSelector:
|
|
matchExpressions:
|
|
\- key: workLoad
|
|
operator: In
|
|
values:
|
|
\- ExtraHigh
|
|
topologyKey: [kubernetes.io/hostname](http://kubernetes.io/hostname)
|
|
weight: 100
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
\- labelSelector:
|
|
matchExpressions:
|
|
\- key: app
|
|
operator: In
|
|
values:
|
|
\- ucmdbserver
|
|
topologyKey: [kubernetes.io/hostname](http://kubernetes.io/hostname)
|
|
\- labelSelector:
|
|
matchExpressions:
|
|
\- key: app
|
|
operator: In
|
|
values:
|
|
\- ucmdbbrowser
|
|
topologyKey: [kubernetes.io/hostname](http://kubernetes.io/hostname)
|
|
3\. edit UCMDB Browser deployment
|
|
**kubectl edit deployment itom-ucmdb-browser -n <cms-namespace>**
|
|
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](http://app.kubernetes.io/name)
|
|
operator: In
|
|
values:
|
|
\- ucmdbbrowser
|
|
topologyKey: [kubernetes.io/hostname](http://kubernetes.io/hostname)
|
|
weight: 100
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
\- labelSelector:
|
|
matchExpressions:
|
|
\- key: app
|
|
operator: In
|
|
values:
|
|
\- ucmdbserver
|
|
topologyKey: [kubernetes.io/hostname](http://kubernetes.io/hostname)
|
|
|
|
**Related pages**
|
|
|
|
- Page:
|
|
[ESM Cloud Farm Version Tracking](/display/ICSD/ESM+Cloud+Farm+Version+Tracking)
|
|
- Page:
|
|
[How to get an Opentext Confluence account](/display/ICSD/How+to+get+an+Opentext+Confluence+account)
|
|
- Page:
|
|
[ITOM APM AppPluse Cloud Farm Information](/display/ICSD/ITOM+APM+AppPluse+Cloud+Farm+Information)
|
|
- Page:
|
|
[ITOM Cloud Service Ops Doc Management Process](/display/ICSD/ITOM+Cloud+Service+Ops+Doc+Management+Process)
|
|
- Page:
|
|
[ITOM ESM Cloud Service Catalog](/display/ICSD/ITOM+ESM+Cloud+Service+Catalog)
|
|
- Page:
|
|
[ITOM OpsB NOM Cloud Service Catalog](/display/ICSD/ITOM+OpsB+NOM+Cloud+Service+Catalog)
|
|
- Page:
|
|
[OpsB and NOM Cloud Deployments Version Tracking](/display/ICSD/OpsB+and+NOM+Cloud+Deployments+Version+Tracking)
|