Autoscaling in Kubernetes is essential for running resilient, cost-efficient, and performance-optimized cloud-native applications. Kubernetes autoscaling lets your infrastructure adapt to changing demand by automatically adjusting resources. By enabling methods like Horizontal Pod Autoscaling and Vertical Pod Autoscaling, Ubicloud Kubernetes ensures performance and efficiency for your applications..
Horizontal pod autoscaling is a built-in feature in Kubernetes. It allows you to automatically scale the number of pods in a deployment based on usage.
HPA requires metrics-server to be installed in K8s clusters, which is handled by Ubicloud Kubernetes by default for you.
Here’s a quick walkthrough about seeing HPA in action, taken from Kubernetes documentation, assuming you have a Ubicloud Kubernetes cluster booted up and set your terminal with the kubeconfig file:Deploy a sample web application
Generate loadOn a different terminal window, run the following command to generate load on the web application and see the horizontal pod autoscaler increasing the number of replicas in a few minutes
kubectl run -i --tty load-generator --rm --image=busybox:1.28 --restart=Never -- /bin/sh -c "while sleep 0.01; do wget -q -O- http://php-apache; done"
As you generate the load, the CPU usage of the pods should increase as well as the number of replicas.When you cancel the load generator command, you can observe that the number of replicas will be automatically reduced by the HPA.`
Vertical Pod Autoscaler (VPA) in Kubernetes automatically adjusts CPU and memory requests for pods based on observed usage. It’s ideal for workloads with unpredictable resource needs or those that don’t scale well horizontally, helping ensure stability and efficient utilization without manual tuning. Unlike HPA, Vertical Pod Autoscaler isn’t bundled with Kubernetes out of the box and needs to be installed separately via the official VPA repository.
# Obtain VPAgit clone https://github.com/kubernetes/autoscaler.gitcd autoscaler/vertical-pod-autoscaler# Install VPA components in your cluster./hack/vpa-up.sh# Verify VPA installationkubectl get pods -n kube-system | grep vpa
At this point you should see three VPA components running in the kube-system namespace: vpa-admission-controller, vpa-recommender, and vpa-updater.Create sample application
Cluster autoscaling dynamically adjusts the number of nodes in a Kubernetes cluster based on workload demand. While this feature isn’t currently supported in Ubicloud Kubernetes, we are working on enabling cluster autoscaling. You can reach out with your feedback and feature requests at support@ubicloud.com.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Ubicloud Documentation","colors":{"primary":"#FF5C12","light":"#FF5C12","dark":"#FF5C12"},"logo":{"light":"https://mintcdn.com/ubicloud-00f14c0d/vmC7dwIOY4T5jXQn/logo/light.svg?fit=max\u0026auto=format\u0026n=vmC7dwIOY4T5jXQn\u0026q=85\u0026s=075625c3e84de3af17fb505613f44036","dark":"https://mintcdn.com/ubicloud-00f14c0d/vmC7dwIOY4T5jXQn/logo/dark.svg?fit=max\u0026auto=format\u0026n=vmC7dwIOY4T5jXQn\u0026q=85\u0026s=5375bd4bf91a12aa59fb51301aefda5e","href":"https://www.ubicloud.com/"},"favicon":"https://mintcdn.com/ubicloud-00f14c0d/dkQS7vFTPxPT-89t/favicon.png?fit=max\u0026auto=format\u0026n=dkQS7vFTPxPT-89t\u0026q=85\u0026s=37ea392f9ee6d44c7a53a31bcf935665","appearance":{"default":"light","strict":true},"navbar":{"links":[{"href":"https://www.ubicloud.com/docs/about/support","label":"Support"},{"href":"https://console.ubicloud.com/login","label":"Sign In"}],"primary":{"type":"github","href":"https://github.com/ubicloud/ubicloud"}},"footer":{"socials":{"github":"https://github.com/ubicloud/ubicloud","x":"https://x.com/UbicloudHQ","linkedin":"https://linkedin.com/company/ubicloud"}},"seo":{"metatags":{"canonical":"https://www.ubicloud.com/docs"}},"fonts":{"family":"Be Vietnam Pro"},"styling":{"latex":true},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"ubicloud-00f14c0d","hasAudioNarration":false,"actualSubdomain":"ubicloud-00f14c0d","customDomains":["ubicloud.com"],"gitSource":{"type":"github","owner":"ubicloud","repo":"documentation","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"chroma":{"liveDeploymentHistoryId":"6ae0e716a716ea245f81c4b7","collectionId":"7d1a760e-ce2b-48ee-bc92-5f34d177888d","schemaVersion":"v3","latestBuiltDeploymentHistoryId":"6ae0e716a716ea245f81c4b7"},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6ae0e716a716ea245f81c4b7","clientVersion":"0.0.4021","searchFilterCounts":[{"language":"default","tag":"API Reference","count":133},{"language":"default","tag":"Documentation","count":55},{"language":"default","tag":"Changelog","count":44},{"language":"default","tag":"Postgres Database","count":30},{"language":"default","tag":"Managed PostgreSQL","count":15},{"language":"default","tag":"Kubernetes Cluster","count":15},{"language":"default","tag":"Virtual Machine","count":11},{"language":"default","tag":"Load Balancer","count":10},{"language":"default","tag":"Machine Image","count":10},{"language":"default","tag":"Managed Kubernetes","count":9}]},"assistantConfig":{},"basePath":"/docs","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"pause-universal-search-reconcile","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"per-site-search-delta","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-private-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"byok-sep-25","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"vite-origin","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-updated-9-15","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":true},"customCss":[{"filePath":"style.css","content":""}],"page":{"pagePath":"managed-kubernetes/autoscale","slug":"/managed-kubernetes/autoscale","pageMetadata":{"title":"Autoscaling","description":null,"href":"/managed-kubernetes/autoscale"},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,..._provideComponents(),...props.components},{CodeBlock,Heading,Note}=_components;if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);return _jsxs(_Fragment,{children:[_jsx(_components.p,{children:`Autoscaling in Kubernetes is essential for running resilient, cost-efficient, and performance-optimized cloud-native applications. Kubernetes autoscaling lets your infrastructure adapt to changing demand by automatically adjusting resources. By enabling methods like Horizontal Pod Autoscaling and Vertical Pod Autoscaling, Ubicloud Kubernetes ensures performance and efficiency for your applications..`}),`\n`,_jsx(Heading,{level:`2`,id:`horizontal-pod-autoscaling-hpa`,children:`Horizontal Pod Autoscaling (HPA)`}),`\n`,_jsx(_components.p,{children:`Horizontal pod autoscaling is a built-in feature in Kubernetes. It allows you to automatically scale the number of pods in a deployment based on usage.`}),`\n`,_jsxs(Note,{children:[`HPA requires `,_jsx(_components.code,{children:`metrics-server`}),` to be installed in K8s clusters, which is handled by Ubicloud Kubernetes by default for you.`]}),`\n`,_jsxs(_components.p,{children:[`Here’s a quick walkthrough about seeing HPA in action, taken from `,_jsx(_components.a,{href:`https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/`,children:`Kubernetes documentation`}),`, assuming you have a Ubicloud Kubernetes cluster booted up and set your terminal with the kubeconfig file:`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Deploy a sample web application`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apply`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://k8s.io/examples/application/php-apache.yaml`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`This will create a sample web application and a service to expose it within the cluster.`}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Create a horizontal pod autoscaler rule`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` autoscale`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deployment`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` php-apache`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --cpu-percent=50`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --min=1`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --max=10`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Observe the horizontal pod autoscaling behavior`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` get`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` hpa`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --watch`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Generate load`})}),`\n`,_jsx(_components.p,{children:`On a different terminal window, run the following command to generate load on the web application and see the horizontal pod autoscaler increasing the number of replicas in a few minutes`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -i`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --tty`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` load-generator`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --rm`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --image=busybox:1.28`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --restart=Never`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /bin/sh`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"while sleep 0.01; do wget -q -O- http://php-apache; done\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`As you generate the load, the CPU usage of the pods should increase as well as the number of replicas.`}),`\n`,_jsx(_components.p,{children:\"When you cancel the load generator command, you can observe that the number of replicas will be automatically reduced by the HPA.`\"}),`\n`,_jsx(Heading,{level:`2`,id:`vertical-pod-autoscaling-vpa`,children:`Vertical Pod Autoscaling (VPA)`}),`\n`,_jsxs(_components.p,{children:[`Vertical Pod Autoscaler (VPA) in Kubernetes automatically adjusts CPU and memory requests for pods based on observed usage. It’s ideal for workloads with unpredictable resource needs or those that don’t scale well horizontally, helping ensure stability and efficient utilization without manual tuning. Unlike HPA, Vertical Pod Autoscaler isn’t bundled with Kubernetes out of the box and needs to be installed separately via the `,_jsx(_components.a,{href:`https://github.com/kubernetes/autoscaler/tree/9f87b78df0f1d6e142234bb32e8acbd71295585a/vertical-pod-autoscaler`,children:`official VPA repository`}),`.`]}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`9`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`9`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Obtain VPA`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`git`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` clone`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://github.com/kubernetes/autoscaler.git`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#DCDCAA`},children:`cd`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` autoscaler/vertical-pod-autoscaler`})]}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Install VPA components in your cluster`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`./hack/vpa-up.sh`})}),`\n`,_jsx(_components.span,{className:`line`}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#6E7781`,\"--shiki-dark\":`#6A9955`},children:`# Verify VPA installation`})}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` get`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` pods`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -n`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kube-system`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` |`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:` grep`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vpa`})]}),`\n`]})})}),`\n`,_jsxs(_components.p,{children:[`At this point you should see three VPA components running in the `,_jsx(_components.code,{children:`kube-system`}),` namespace: `,_jsx(_components.code,{children:`vpa-admission-controller`}),`, `,_jsx(_components.code,{children:`vpa-recommender`}),`, and `,_jsx(_components.code,{children:`vpa-updater`}),`.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Create sample application`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`2`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`2`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apply`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` https://k8s.io/examples/application/php-apache.yaml`})]}),`\n`,_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` scale`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` deployment`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` php-apache`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --replicas=2`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Create a VPA object for the sample application`})}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`14`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`14`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apply`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -f`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \u003c(`}),_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`cat`}),_jsx(_components.span,{style:{color:`#CF222E`,\"--shiki-dark\":`#D4D4D4`},children:` \u003c\u003c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`EOF`})]}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`apiVersion: autoscaling.k8s.io/v1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`kind: VerticalPodAutoscaler`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`metadata:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` name: php-apache-vpa`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`spec:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` targetRef:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` apiVersion: \"apps/v1\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` kind: Deployment`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` name: php-apache`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` updatePolicy:`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` updateMode: \"Recreate\"`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`EOF`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:`)`})}),`\n`]})})}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`Generate load`})}),`\n`,_jsx(_components.p,{children:`On a different terminal window, run the following command to generate load on the web application:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` run`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -i`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --tty`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` load-generator`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --rm`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --image=busybox:1.28`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --restart=Never`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` --`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` /bin/sh`}),_jsx(_components.span,{style:{color:`#0550AE`,\"--shiki-dark\":`#569CD6`},children:` -c`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` \"while sleep 0.01; do wget -q -O- http://php-apache; done\"`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`Watch the vertical pod autoscaler for recommendations on the deployment and events about recreated pods with higher resource limits`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsxs(_components.span,{className:`line`,children:[_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`kubectl`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` describe`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` vpa`}),_jsx(_components.span,{style:{color:`#0A3069`,\"--shiki-dark\":`#CE9178`},children:` php-apache-vpa`})]}),`\n`]})})}),`\n`,_jsx(_components.p,{children:`You can uninstall VPA if you want to clean up your cluster:`}),`\n`,_jsx(CodeBlock,{filename:``,numberOfLines:`1`,language:`shellscript`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`shellscript`,children:_jsxs(_components.code,{language:`shellscript`,numberOfLines:`1`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{style:{color:`#953800`,\"--shiki-dark\":`#DCDCAA`},children:`./hack/vpa-down.sh`})}),`\n`]})})}),`\n`,_jsx(Heading,{level:`2`,id:`cluster-autoscaling-node-autoscaling`,children:`Cluster Autoscaling (Node Autoscaling)`}),`\n`,_jsxs(_components.p,{children:[`Cluster autoscaling dynamically adjusts the number of nodes in a Kubernetes cluster based on workload demand. While this feature isn’t currently supported in Ubicloud Kubernetes, we are working on enabling cluster autoscaling. You can reach out with your feedback and feature requests at `,_jsx(_components.a,{href:`mailto:support@ubicloud.com`,children:`support@ubicloud.com`}),`.`]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Autoscaling","description":null,"href":"/managed-kubernetes/autoscale"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Horizontal Pod Autoscaling (HPA)","slug":"horizontal-pod-autoscaling-hpa","depth":2,"children":[]},{"title":"Vertical Pod Autoscaling (VPA)","slug":"vertical-pod-autoscaling-vpa","depth":2,"children":[]},{"title":"Cluster Autoscaling (Node Autoscaling)","slug":"cluster-autoscaling-node-autoscaling","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/docs/_mintlify/custom/ubicloud-00f14c0d/64d3bed5d5d8ce4a/analytics.js"],"subdomain":"ubicloud-00f14c0d","siteName":"Ubicloud Documentation","title":"Autoscaling - Ubicloud Documentation","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-09T18:10:20.062Z","originalFileLocation":"managed-kubernetes/autoscale.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=\"light\";if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"light\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"application-name\" content=\"Ubicloud Documentation\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/ubicloud-00f14c0d/ebQQJjAgLtKwwgAK/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/docs/mintlify-assets/_mintlify/favicons/ubicloud-00f14c0d/ebQQJjAgLtKwwgAK/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/ubicloud-00f14c0d/ebQQJjAgLtKwwgAK/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/ubicloud-00f14c0d/ebQQJjAgLtKwwgAK/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/ubicloud-00f14c0d/ebQQJjAgLtKwwgAK/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/docs/mintlify-assets/_mintlify/favicons/ubicloud-00f14c0d/ebQQJjAgLtKwwgAK/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/docs/mintlify-assets/_mintlify/favicons/ubicloud-00f14c0d/ebQQJjAgLtKwwgAK/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/docs/mintlify-assets/_mintlify/favicons/ubicloud-00f14c0d/ebQQJjAgLtKwwgAK/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/docs/mintlify-assets/_mintlify/favicons/ubicloud-00f14c0d/ebQQJjAgLtKwwgAK/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Autoscaling - Ubicloud Documentation\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Ubicloud Documentation\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://www.ubicloud.com/docs/managed-kubernetes/autoscale\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://ubicloud-00f14c0d.mintlify.app/_mintlify/api/og/v2?division=Managed+Kubernetes\u0026amp;title=Autoscaling\u0026amp;theme=3603e8c6c1a1ad8e0824fefd\u0026amp;signature=5a45f5e4c4acd52c98a1abe867073c013094614201e56934ed357426b7cfe984\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Autoscaling - Ubicloud Documentation\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://ubicloud-00f14c0d.mintlify.app/_mintlify/api/og/v2?division=Managed+Kubernetes\u0026amp;title=Autoscaling\u0026amp;theme=3603e8c6c1a1ad8e0824fefd\u0026amp;signature=5a45f5e4c4acd52c98a1abe867073c013094614201e56934ed357426b7cfe984\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/docs/mintlify-assets/_mintlify/favicons/ubicloud-00f14c0d/ebQQJjAgLtKwwgAK/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Ubicloud Documentation\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#FF5C12\">\u003clink data-mint-head rel=\"canonical\" href=\"https://www.ubicloud.com/docs/managed-kubernetes/autoscale\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/docs/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/docs/managed-kubernetes/autoscale.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://www.ubicloud.com/#organization\",\"name\":\"Ubicloud Documentation\",\"url\":\"https://www.ubicloud.com\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/ubicloud-00f14c0d/vmC7dwIOY4T5jXQn/logo/light.svg?fit=max\u0026auto=format\u0026n=vmC7dwIOY4T5jXQn\u0026q=85\u0026s=075625c3e84de3af17fb505613f44036\"}},{\"@type\":\"WebSite\",\"@id\":\"https://www.ubicloud.com/docs#website\",\"name\":\"Ubicloud Documentation\",\"url\":\"https://www.ubicloud.com/docs\",\"publisher\":{\"@id\":\"https://www.ubicloud.com/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://www.ubicloud.com/docs/managed-kubernetes/autoscale#webpage\",\"url\":\"https://www.ubicloud.com/docs/managed-kubernetes/autoscale\",\"name\":\"Autoscaling\",\"dateModified\":\"2026-10-09T18:10:20.062Z\",\"isPartOf\":{\"@id\":\"https://www.ubicloud.com/docs#website\"},\"breadcrumb\":{\"@id\":\"https://www.ubicloud.com/docs/managed-kubernetes/autoscale#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://www.ubicloud.com/docs/managed-kubernetes/autoscale#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Managed Kubernetes\",\"item\":\"https://www.ubicloud.com/docs/managed-kubernetes/overview\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Autoscaling\",\"item\":\"https://www.ubicloud.com/docs/managed-kubernetes/autoscale\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://www.ubicloud.com/docs/managed-kubernetes/autoscale#article\",\"headline\":\"Autoscaling\",\"name\":\"Autoscaling\",\"url\":\"https://www.ubicloud.com/docs/managed-kubernetes/autoscale\",\"mainEntityOfPage\":{\"@id\":\"https://www.ubicloud.com/docs/managed-kubernetes/autoscale#webpage\"},\"dateModified\":\"2026-10-09T18:10:20.062Z\",\"publisher\":{\"@id\":\"https://www.ubicloud.com/#organization\"},\"isPartOf\":{\"@id\":\"https://www.ubicloud.com/docs#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Ubicloud Documentation\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"Ubicloud Documentation","nav":{"global":null,"anchors":[{"anchor":"Documentation","icon":"book-open","groups":[{"group":" ","pages":[{"title":"Ubicloud Overview","sidebarTitle":"Overview","href":"/overview"}]},{"group":"Quickstart","pages":[{"title":"Managed Services","href":"/quick-start/managed-services"},{"title":"Build Your Own Cloud","href":"/quick-start/build-your-own-cloud"},{"title":"Command Line Interface","sidebarTitle":"CLI","href":"/quick-start/cli"}]},{"group":"AI Inference","pages":[{"title":"Inference Endpoints","href":"/inference/endpoint"},{"title":"Inference API Keys","href":"/inference/api-key"},{"title":"Playground","href":"/inference/playground"},{"title":"Tutorial: Chat Completion (Python)","href":"/inference/chat-completion-python"}]},{"group":"Github Actions Integration","pages":[{"title":"GitHub Actions Quickstart","sidebarTitle":"Quickstart","href":"/github-actions-integration/quickstart"},{"title":"Runner Types","href":"/github-actions-integration/runner-types"},{"title":"Use Premium Runners","href":"/github-actions-integration/use-premium-runners"},{"title":"Migrate to Arm runners","href":"/github-actions-integration/migrate-to-arm-runners"},{"title":"Ubicloud Cache","href":"/github-actions-integration/ubicloud-cache"},{"title":"Debug Workflow with SSH","href":"/github-actions-integration/debug-workflow-with-ssh"},{"title":"GitHub Actions Price-Performance","sidebarTitle":"Price-Performance","href":"/github-actions-integration/price-performance"},{"title":"GitHub Actions Security","sidebarTitle":"Security","href":"/github-actions-integration/security"}]},{"group":"Managed PostgreSQL","pages":[{"title":"PostgreSQL Overview","sidebarTitle":"Overview","href":"/managed-postgresql/overview"},{"title":"Connection","href":"/managed-postgresql/connection"},{"title":"Metrics","href":"/managed-postgresql/metrics"},{"title":"Logs","href":"/managed-postgresql/logs"},{"title":"Networking","href":"/managed-postgresql/networking"},{"title":"PostgreSQL Security","sidebarTitle":"Security","href":"/managed-postgresql/security"},{"title":"Resizing","href":"/managed-postgresql/resize"},{"title":"High Availability","href":"/managed-postgresql/high-availability"},{"title":"Read Replicas","href":"/managed-postgresql/read-replicas"},{"title":"Backup and Restore","href":"/managed-postgresql/backup-and-restore"},{"title":"Version Upgrades","href":"/managed-postgresql/upgrade"},{"title":"Configuration and Settings","href":"/managed-postgresql/configuration-and-settings"},{"title":"Extensions","href":"/managed-postgresql/extensions"},{"title":"Bring Your Own Cloud - AWS","href":"/managed-postgresql/byoc"},{"title":"PostgreSQL Price-Performance","sidebarTitle":"Price-Performance","href":"/managed-postgresql/price-performance"}]},{"group":"Managed Kubernetes","pages":[{"title":"Kubernetes Overview","sidebarTitle":"Overview","href":"/managed-kubernetes/overview"},{"title":"Kubernetes Quickstart","sidebarTitle":"Quickstart","href":"/managed-kubernetes/quickstart"},{"title":"Expose an Application Securely Using TLS","href":"/managed-kubernetes/expose-application-using-tls"},{"title":"Kubernetes Firewall","sidebarTitle":"Firewall","href":"/managed-kubernetes/firewall"},{"title":"Resize Your Cluster","href":"/managed-kubernetes/resize-cluster"},{"title":"Upgrade Your Cluster","href":"/managed-kubernetes/upgrade"},{"title":"Persistent Volumes","description":null,"href":"/managed-kubernetes/persistent-volumes"},{"title":"Autoscaling","href":"/managed-kubernetes/autoscale"},{"title":"Tutorial: Self-Hosting Windmill on Ubicloud for Production","description":null,"href":"/managed-kubernetes/windmill-tutorial"}]},{"group":"Machine Images","pages":[{"title":"Machine Images Overview","sidebarTitle":"Overview","href":"/machine-images/overview"},{"title":"Machine Images Quickstart","sidebarTitle":"Quickstart","href":"/machine-images/quickstart"},{"title":"Generalizing an Image","href":"/machine-images/generalize"}]},{"group":"Networking","pages":[{"title":"Private Subnet","href":"/networking/private-subnet"},{"title":"Networking Firewall","sidebarTitle":"Firewall","href":"/networking/firewall"},{"title":"Load Balancer","href":"/networking/load-balancer"},{"title":"Public IP Ranges","href":"/networking/public-ip-ranges"}]},{"group":"Security","pages":[{"title":"Security Overview","sidebarTitle":"Overview","href":"/security/overview"},{"title":"Authorization","href":"/security/authorization"},{"title":"Trust Center","url":"https://trust.ubicloud.com","href":"/security/trust-center"}]},{"group":"About","pages":[{"title":"Pricing","href":"/about/pricing"},{"title":"Regions","href":"/about/regions"},{"title":"Support","href":"/about/support"},{"title":"Ubicloud Privacy Notice","sidebarTitle":"Privacy Policy","href":"/about/privacy-policy"},{"title":"Terms of Service","href":"/about/terms-of-service"}]}]},{"anchor":"API Reference","icon":"terminal","pages":[{"title":"API Reference","href":"/api-reference/overview"}]},{"anchor":"Architecture","icon":"lightbulb","pages":[{"title":"Architecture","href":"/architecture/control-and-data-plane"}]},{"anchor":"Changelog","icon":"list-ol","pages":[{"title":"Changelog","href":"/changelog/2026-09"}]}]},"title":"Autoscaling - Ubicloud Documentation","buildId":"dpl_DGmhKsAzJdVqypJzon18vViniWRY","deploymentId":"dpl_DGmhKsAzJdVqypJzon18vViniWRY","dynamics":[],"chunks":[]}