Stay organized with collections
Save and categorize content based on your preferences.
Scale your stateless workloads to your evolving container workload requirements.
Before you begin
To run commands against a
Kubernetes cluster,
make sure you have the following resources:
Locate the Kubernetes cluster name, or ask your Platform Administrator what
the cluster name is.
Sign in and generate
the kubeconfig file for the Kubernetes cluster if you don't have one.
Use the kubeconfig path of the Kubernetes cluster to replace
KUBERNETES_CLUSTER_KUBECONFIG in these instructions.
To get the required permissions to scale stateless workloads, ask your
Organization IAM Admin to grant you the Namespace Admin role (namespace-admin)
in your project namespace.
Scale a deployment
Leverage the scaling functionality of Kubernetes to appropriately scale the
amount of pods running in your deployment.
Autoscale the pods of a deployment
Kubernetes offers autoscaling to remove the need of manually updating your
deployment when demand evolves. Set the horizontal pod autoscaler in your
deployment to enable this feature:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-29 UTC."],[[["\u003cp\u003eThis document provides instructions on how to scale stateless workloads in a Kubernetes cluster to meet changing demands.\u003c/p\u003e\n"],["\u003cp\u003eYou can autoscale pods within a deployment by configuring a horizontal pod autoscaler that adjusts the number of pods based on the average CPU utilization, between a defined minimum and maximum.\u003c/p\u003e\n"],["\u003cp\u003eManual scaling of pods within a deployment can also be achieved by specifying the desired number of replicas.\u003c/p\u003e\n"],["\u003cp\u003eBefore scaling, you will need to have access to the Kubernetes cluster name and kubeconfig file, and be granted the Namespace Admin role in your project namespace.\u003c/p\u003e\n"]]],[],null,["# Scale stateless workloads\n\nScale your stateless workloads to your evolving container workload requirements.\n\nBefore you begin\n----------------\n\nTo run commands against a\n[Kubernetes cluster](/distributed-cloud/hosted/docs/latest/gdch/platform/pa-user/clusters#cluster-architecture),\nmake sure you have the following resources:\n\n1. Locate the Kubernetes cluster name, or ask your Platform Administrator what\n the cluster name is.\n\n2. [Sign in and generate](/distributed-cloud/hosted/docs/latest/gdch/application/ao-user/iam/sign-in#zonal-cluster-kubeconfig)\n the kubeconfig file for the Kubernetes cluster if you don't have one.\n\n3. Use the kubeconfig path of the Kubernetes cluster to replace\n \u003cvar translate=\"no\"\u003eKUBERNETES_CLUSTER_KUBECONFIG\u003c/var\u003e in these instructions.\n\nTo get the required permissions to scale stateless workloads, ask your\nOrganization IAM Admin to grant you the Namespace Admin role (`namespace-admin`)\nin your project namespace.\n\nScale a deployment\n------------------\n\nLeverage the scaling functionality of Kubernetes to appropriately scale the\namount of pods running in your deployment.\n\n### Autoscale the pods of a deployment\n\nKubernetes offers autoscaling to remove the need of manually updating your\ndeployment when demand evolves. Set the horizontal pod autoscaler in your\ndeployment to enable this feature: \n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eKUBERNETES_CLUSTER_KUBECONFIG\u003c/var\u003e \\\n -n \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e \\\n autoscale deployment \u003cvar translate=\"no\"\u003eDEPLOYMENT_NAME\u003c/var\u003e \\\n --cpu-percent=\u003cvar translate=\"no\"\u003eCPU_PERCENT\u003c/var\u003e \\\n --min=\u003cvar translate=\"no\"\u003eMIN_NUMBER_REPLICAS\u003c/var\u003e \\\n --max=\u003cvar translate=\"no\"\u003eMAX_NUMBER_REPLICAS\u003c/var\u003e\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eKUBERNETES_CLUSTER_KUBECONFIG\u003c/var\u003e: the kubeconfig file for the\n cluster.\n\n- \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e: the project namespace.\n\n- \u003cvar translate=\"no\"\u003eDEPLOYMENT_NAME\u003c/var\u003e: the name of the deployment in which\n to autoscale.\n\n- \u003cvar translate=\"no\"\u003eCPU_PERCENT\u003c/var\u003e: the target average CPU utilization to\n request, represented as a percentage, over all the pods.\n\n- \u003cvar translate=\"no\"\u003eMIN_NUMBER_REPLICAS\u003c/var\u003e: the lower limit for the number\n of pods the autoscaler can provision.\n\n- \u003cvar translate=\"no\"\u003eMAX_NUMBER_REPLICAS\u003c/var\u003e: the upper limit for the number\n of pods the autoscaler can provision.\n\nTo check the current status of the newly-made horizontal pod autoscaler, run: \n\n kubectl get hpa\n\nThe output is similar to the following: \n\n NAME REFERENCE TARGET MINPODS MAXPODS REPLICAS AGE\n \u003cvar class=\"readonly\" translate=\"no\"\u003eDEPLOYMENT_NAME\u003c/var\u003e Deployment/\u003cvar class=\"readonly\" translate=\"no\"\u003eDEPLOYMENT_NAME\u003c/var\u003e/scale 0% / 50% 1 10 1 18s\n\n### Manually scale the pods of a deployment\n\nIf you prefer to manually scale a deployment, run: \n\n kubectl --kubeconfig \u003cvar translate=\"no\"\u003eKUBERNETES_CLUSTER_KUBECONFIG\u003c/var\u003e \\\n -n \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e \\\n scale deployment \u003cvar translate=\"no\"\u003eDEPLOYMENT_NAME\u003c/var\u003e \\\n --replicas \u003cvar translate=\"no\"\u003eNUMBER_OF_REPLICAS\u003c/var\u003e\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eKUBERNETES_CLUSTER_KUBECONFIG\u003c/var\u003e: the kubeconfig file for the\n cluster.\n\n- \u003cvar translate=\"no\"\u003eNAMESPACE\u003c/var\u003e: the project namespace.\n\n- \u003cvar translate=\"no\"\u003eDEPLOYMENT_NAME\u003c/var\u003e: the name of the deployment in which\n to autoscale.\n\n- \u003cvar translate=\"no\"\u003eDEPLOYMENT_NAME\u003c/var\u003e: the desired number of replicated\n `Pod` objects in the deployment."]]