CMS 14.5.0 scaling on Google kubernetes

Hi all,

We have deployed CMS BRXM 14.5.0 on google kubernetes and only one pod is running, we want to scale up and down on demand, kindly help me how we can achieve if we need multiple pods and all share session between them, if the mentioned version does not supports it, could you please help me if latest version supports it or by using some external integration we can manage it?.

Thanks,

Hello @kumamanish I would recommend reading this first On-Premise Kubernetes Setup - Bloomreach Experience Manager (PaaS/Self-Hosted) - The Fast and Flexible Headless CMS

Also a blog post showing an example Bloomreach Experience Manager on Kubernetes 102 - Bloomreach Experience Manager (PaaS/Self-Hosted) - The Fast and Flexible Headless CMS

Some things you will need to set up

  1. session affinity for /cms
  2. scaling up would ideally use a Lucene index export, otherwise the new pod needs to build the index from scratch and it can take hours. See Lucene Index Export add-on - Bloomreach Experience Manager (PaaS/Self-Hosted) - The Fast and Flexible Headless CMS
  3. scaling down will log out any CMS users that happen to be on that pod which could lose any unsaved work. You’d need give users a heads up, maybe issue a brief content freeze.
  4. Repository maintenance (not urgent but it can become an issue eventually)

We don’t usually recommend auto-scaling for the CMS. Run it on a fixed number of pods (2 or 3 usually) and then scale up if you expect more traffic, then scale down manually.

HI @david.bailey ,

Thanks for your response, we are using headless open cms and experience manager is not part of that. However I have ran it on fixed numbers of pods (2) but I faced login issue. LB is distributing traffice in between these 2 nodes but that causing login issue and getting below issue

http-nio-8080-exec-11 [HstDelegateeFilterBean.doFilter:342] ‘Request{ method=‘POST’, scheme=‘https’, host=‘``cms-server.com``’, requestURI=’/cms/‘, queryString=‘0-1.IFormSubmitListener-root-login~panel-login~form&loginmessage=UserLoggedOut’}’ can not be matched to a host. Skip HST Filter and request processing.

When I hit multiple times login button one time logged in to the system and sudden come out at login page. At least for CMS Authoring how we can manage/share session in between pods so that will not face login-logout issue.

The error you posted seems related to virtual host configuration - make sure the correct hosts have been set for both platform and HST Configure Virtual Hosts in an Environment - Bloomreach Experience Manager (PaaS/Self-Hosted) - The Fast and Flexible Headless CMS

You cannot share the session or externalise it, you need to implement affinity using whatever ingress controller or load balancer you are using. There is a section about Session Affinity in the Kubernetes guide https://xmdocumentation.bloomreach.com/library/deployment/on-premise-kubernetes-setup.html and there is also a detailed documentation at Bloomreach Experience Manager Load Balancing Requirements - Bloomreach Experience Manager (PaaS/Self-Hosted) - The Fast and Flexible Headless CMS