Skip to content

Multidim Pod Autoscaler (MPA)

The Multidim Pod Autoscaler (MPA), or Multidimensional Pod Autoscaling, is an autoscaling feature that allows a cluster to scale using multiple methods simultaneously.^[400-devops__06-Kubernetes__k8s-ithelp__Day25__README.md]

This capability enables the combination of [[Horizontal Pod Autoscaler (HPA)]] and [[Vertical Pod Autoscaler (VPA)]] strategies within the same deployment.^[400-devops__06-Kubernetes__k8s-ithelp__Day25__README.md]

Platform Availability

Currently, MPA is a proprietary feature exclusive to Google Cloud Platform's GKE (Google Kubernetes Engine).^[400-devops__06-Kubernetes__k8s-ithelp__Day25__README.md] Because the upstream Kubernetes autoscaler project has not yet implemented multidimensional scaling, other cloud platforms and local environments (such as Docker Desktop) do not support this feature.^[400-devops__06-Kubernetes__k8s-ithelp__Day25__README.md] As of the source documentation, this functionality remains in the Beta stage on GKE.^[400-devops__06-Kubernetes__k8s-ithelp__Day25__README.md]

Scaling Configuration

MPA allows for a specific division of labor between resource Metrics:

  • CPU: Scaling is handled via HPA (Horizontal Pod Autoscaler).^[400-devops__06-Kubernetes__k8s-ithelp__Day25__README.md]
  • Memory: Scaling is handled via VPA (Vertical Pod Autoscaler).^[400-devops__06-Kubernetes__k8s-ithelp__Day25__README.md]

Because the VPA component manages memory in this setup, cpu requests and limits must be manually defined in the deployment's resources configuration beforehand.^[400-devops__06-Kubernetes__k8s-ithelp__Day25__README.md] This differs from a standard VPA setup, where the VPA might typically manage both CPU and memory.

Sources

  • 400-devops__06-Kubernetes__k8s-ithelp__Day25__README.md