弹性伸缩

按负载信号自动调整实例数:指标选择(CPU、队列深度、QPS)、触发阈值、冷却时间与伸缩步长共同决定响应质量;冷启动与扩容时延要实测。

指标队列深度与并发数通常比 CPU 更贴近服务负载
节奏冷却时间防抖动;步长兼顾快速响应与成本
准备镜像与依赖预热,缩短新实例可用时间

HPA 示例(按队列深度扩容)

HPA 示例(按队列深度扩容)
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: order-worker
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: order-worker
  minReplicas: 2
  maxReplicas: 20
  metrics:
  - type: Pods
    pods:
      metric:
        name: queue_depth
      target:
        type: AverageValue
        averageValue: "50"
  behavior:
    scaleUp:
      stabilizationWindowSeconds: 60
    scaleDown:
      stabilizationWindowSeconds: 300
  • 实测扩容时延:从指标越阈到实例可服务,要小于流量爬升时间
  • 为依赖方(数据库、第三方配额)设伸缩上限,防止连带打满
伸缩主要调整无状态层:数据库与会话层的容量瓶颈要靠架构与预案解决。

易错点

  • 扩容时延大于流量爬升速度,伸缩追不上峰
  • 阈值抖动导致实例数反复震荡

数据来源与参考

  • AWS Well-Architected Framework:Performance Efficiency
  • Kubernetes 文档:Horizontal Pod Autoscaling
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌