KEDA v2.20
Kubernetes Workload Latest
Scale applications based on the count of matching non-terminated pods, optionally grouped by node.
Trigger Specification
triggers:
- type: kubernetes-workload
metadata:
podSelector: 'app=backend'
value: '0.5'
groupByNode: 'true'
activationValue: '3.1'
Parameter list:
podSelector- Label selector used to match pods for this scaler. It supports multiple selectors split by a comma character (,). It also supports set-based requirements and a mix of them.value- Target relation between the scaled workload and the count computed by this scaler. By default, the count is the number of matching non-terminated pods. IfgroupByNodeis set totrue, the count is the number of unique nodes hosting matching non-terminated pods. Matching pods without a node assignment are excluded. It will be calculated following this formula:relation = (scaler-computed count) / (scaled workload pods). (This value can be a float)groupByNode- When set totrue, matching non-terminated pods are grouped byspec.nodeName, so multiple matching pods on the same node count as1. Matching pods without an assigned node are excluded. (Default:false, Optional)activationValue- Target value for activating the scaler. Learn more about activation here.(Default:0, Optional, This value can be a float)
💡 Note: The search scope is limited to the namespace where the
ScaledObjectis deployed.
The count excludes terminated pods, i.e. pod status phase equals Succeeded or Failed.
When groupByNode is enabled, KEDA groups matching non-terminated pods by node and excludes matching pods without a node assignment. For example, if 7 matching pods are found and 2 of them run on the same node, the scaler reports 6.
Authentication Parameters
The own KEDA’s identity is used to list the pods, so no extra configuration is needed here.
Example
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: workload-scaledobject
spec:
scaleTargetRef:
name: workload-deployment
triggers:
- type: kubernetes-workload
metadata:
podSelector: 'app=backend, deploy notin (critical, monolith)'
value: '3'
groupByNode: 'true'