Containerized MID Server Autoscaling
Summarize
Summary of Containerized MID Server Autoscaling
ServiceNow's Containerized MID Server supports deployment via Kubernetes StatefulSet with multiple replicas. It enables automatic scaling of MID Server instances using Kubernetes Horizontal Pod Autoscaler (HPA), which adjusts the number of MID Server pods based on CPU and memory demand. This autoscaling ensures efficient resource utilization and responsiveness to workload fluctuations.
Show less
Key Features
- StatefulSet Deployment: MID Servers are deployed as stateful applications, maintaining persistent storage across pod restarts. This includes configuration files (config.xml) and metadata, stored on a persistent volume declared via Persistent Volume Claim (PVC).
- Persistent Storage Management: The PVC specifies parameters like storage class and access modes, ensuring configuration continuity. During pod replacement, StatefulSet attaches the same persistent volume to new pods, allowing MID Servers to resume operation seamlessly.
- Configuration Handling: Configuration files must be backed up on pod shutdown and restored on startup. The init script detects environment changes and updates configuration files accordingly before starting the MID Server.
- Deployment via YAML Files: Deployment requests can be exported and applied as YAML files to create or update StatefulSet workloads. Reapplying YAML files recreates pods and restores configuration from backups.
- HPA Autoscaling Activation: Horizontal Pod Autoscaler can be activated on any existing StatefulSet by creating an HPA controller. Users can select HPA version 1 or 2 during deployment. Applying the YAML configuration with HPA enabled initiates autoscaling immediately.
Key Outcomes
- Automated scaling of MID Server pods based on CPU and memory utilization improves operational efficiency and performance.
- Persistent storage ensures MID Server configurations and state are maintained across pod lifecycle events, minimizing downtime and configuration drift.
- Flexible deployment and update processes via YAML files support agile management of MID Server workloads in Kubernetes environments.
- Immediate activation of autoscaling upon configuration application allows rapid adaptation to changing workload demands without manual intervention.
MID Servers can be deployed via StatefulSet with any number of replicas. They can scale automatically by leveraging Kubernetes Horizontal Pod Autoscaler (HPA). Horizontal Pod Autoscaler automatically updates a workload resource (such as a Deployment or StatefulSet) to match demand.
- Name
- Headless service name
- Persistent volume claim (PVC)
- Parameters, such as storage class, access modes, and storage request
- The resource request/limit
The PVC declares the desired persistent volume where the MID Server stores config.xml, meta data files, and several of its sub-folders.
During workload fluctuations, a pod with a running MID Server container can be removed and replaced by a new one. StatefulSet ensures the same persistent volume is attached to the new pod, which allows the MID Server to resume its state.
The only sub-folders that can be mounted to the persistent volume are those that are initially empty with a new MID Server installation. The config.xml file and other meta data files must be backed up when the pod is shut down and restored during start-up.
Deployment requests exported as YAML files can be used to create a StatefulSet workload and new MID Server pods in the Kubernetes cluster.
When you make changes to the deployment YAML file and re-apply it, the existing pods of the deployment are recreated. With StatefulSet deployment, the configuration files are restored from the backup folder. The init script must detect the deployment environment changes and apply them to the configuration files before MID server is started.
HPA Autoscaling activation
HPA Autoscaling can be activated for any existing StatefulSet workload by creating an HPA controller.
When you create a deployment request, you can choose either HPA version 1 or version 2.
When creating a deployment request on the instance with an HPA configuration, apply the exported YAML file and HPA autoscaling begins working immediately.