tencent cloud

masukan

Multi-Level Service Synchronized Horizontal Scaling (Workload Triggers)

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.
    
    Hubungi Kami

    Hubungi tim penjualan atau penasihat bisnis kami untuk membantu bisnis Anda.

    Dukungan Teknis

    Buka tiket jika Anda mencari bantuan lebih lanjut. Tiket kami tersedia 7x24.

    Dukungan Telepon 7x24