tencent cloud

Tencent Kubernetes Engine

DokumentasiTencent Kubernetes EngineUse CasesAuto ScalingKEDAMulti-Level Service Synchronized Horizontal Scaling (Workload Triggers)

Multi-Level Service Synchronized Horizontal Scaling (Workload Triggers)

PDF
Mode fokus
Ukuran font
Terakhir diperbarui: 2024-12-24 15:55:32

Workload Triggers

Kubernetes-based Event-Driven Autoscaler (KEDA) supports Kubernetes Workload triggers, enabling scaling based on the number of Pods in one or more workloads. This is very useful in multi-level service call scenarios. For details, please refer to KEDA Scalers: Kubernetes Workload.

Use Cases

Multi-level Service Simultaneous Scaling

The picture shows multi-level microservice call:

The services A, B, and C usually have a fixed proportional quantity.
If the pressure on A suddenly increases, forcing a scale-out, B and C can also scale out almost simultaneously with A by using KEDA's Kubernetes Workload triggers, without waiting for pressure to propagate slowly.
First, configure the scale-out for A, which can be based on CPU and memory pressure. For example:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: a
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: a
pollingInterval: 15
minReplicaCount: 10
maxReplicaCount: 1000
triggers:
- type: memory
metricType: Utilization
metadata:
value: "60"
- type: cpu
metricType: Utilization
metadata:
value: "60"
Then, configure the scale-out for B and C, assuming a fixed ratio of A:B:C = 3:3:2. For example:
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: b
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: b
pollingInterval: 15
minReplicaCount: 10
maxReplicaCount: 1000
triggers:
- type: kubernetes-workload
metadata:
podSelector: 'app=a' # Select service A
value: '1' # A/B=3/3=1
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: c
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: c
pollingInterval: 15
minReplicaCount: 3
maxReplicaCount: 340
triggers:
- type: kubernetes-workload
metadata:
podSelector: 'app=a' # Select service A
value: '3' # A/C=3/2=1.5
With the above configuration, when the pressure on A increases, A, B, and C will scale out almost simultaneously without waiting for the pressure to propagate step by step. This allows for faster adaptation to pressure changes, improving system elasticity and performance.


Bantuan dan Dukungan

Apakah halaman ini membantu?

masukan