CPU Scaler
The cpuscaler trait provides a mechanism to dynamically change the number of replicas of a given component based on the CPU utilization. This is useful for components that exhibit timely patterns in their workloads (e.g., processing pipelines, user-facing components, etc.).
The following snippet contains an example to dynamically scale a component between 1 and 3 replicas depending on the CPU utilization of the replicas and a given threshold.
apiVersion: core.oam.dev/v1beta1
kind: Application
metadata:
name: my-app
annotations:
version: "v0.0.1"
description: "My cpuscaler application"
spec:
components:
- name: my-component
type: worker
properties:
image: my-app-image:v1.0.0
cmd: ["cmd"]
cpu: "0.25"
memory: "200Mi"
traits:
- type: cpuscaler # Set to cpuscaler
properties:
min: 1 # (Required) minimal number of replicas to which the autoscaler can scale down. 1 by default
max: 3 # (Required) maximum number of of replicas to which the autoscaler can scale up. 10 by default
cpuUtil: 10 # (Required) average CPU utilization. 50% by defaults