HPA metric types¶
The Horizontal Pod Autoscaler (HPA) in Kubernetes relies on specific metric types defined in the spec.metrics field to determine scaling behavior^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]. These Metrics define the source of the data and the target value that triggers scaling.
Resource Metrics¶
Resource Metrics refer to standard Kubernetes resources reported by the Metrics Server^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]. Common examples include CPU and memory^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
- Target Type:
Utilization- This represents the resource usage as a percentage of the resource request defined for each Pod^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
Pods Metrics¶
This metric type describes a specific metric for each Pod in the scaling target^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]. Values are averaged across all Pods before being compared to the target value^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
- Target Type:
AverageValue- Defines a target quantity (e.g.,
1k) for the average metric value across all Pods^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
- Defines a target quantity (e.g.,
- Selector: Can be used to filter specific metric scopes, acting like a
labelSelector^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
Object Metrics¶
Object Metrics monitor a single Kubernetes object described in the metric configuration^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]. A common example is an Ingress object, where scaling might be based on traffic load^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
- Target Type:
Value- Specifies a direct target quantity (e.g.,
10k) for the described object^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
- Specifies a direct target quantity (e.g.,
- DescribedObject: Identifies the specific Kubernetes resource (e.g.,
kind: Ingress,name: main-route) being monitored^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
External Metrics¶
External Metrics allow scaling based on Metrics from outside the Kubernetes cluster, typically sourced from external monitoring systems^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]. This is useful for scenarios requiring Metrics not native to Kubernetes, such as Message Queue lengths^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
- Target Type:
AverageValue- Sets a target value for the metric, calculated as an average quantity^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
- Selector: Matches labels to identify the specific metric stream (e.g.,
queue: "worker_tasks")^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md].
Related Concepts¶
Sources¶
^[400-devops__06-Kubernetes__k8s-ithelp__Day26__README.md]