# Horizontal Pod Autoscaler - 水平Pod自动扩缩容配置 # 根据 CPU 和内存使用率自动调整 Pod 副本数量 apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: data-engine-hpa # HPA 资源名称 namespace: default # 命名空间 spec: # 指定要自动扩缩容的目标 Deployment scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: data-engine # 副本数量范围 minReplicas: 1 # 最小副本数:始终保持至少 1 个 Pod 运行 maxReplicas: 10 # 最大副本数:防止无限扩容,最多扩展到 10 个 Pod # 扩缩容触发指标(满足任一条件即触发) metrics: # CPU 使用率指标 - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 70 # 当所有 Pod 的平均 CPU 使用率超过 70% 时触发扩容 # 内存使用率指标 - type: Resource resource: name: memory target: type: Utilization averageUtilization: 80 # 当所有 Pod 的平均内存使用率超过 80% 时触发扩容 # 扩缩容行为策略 behavior: # 向上扩容策略(快速响应负载增加) scaleUp: stabilizationWindowSeconds: 60 # 稳定窗口期:60 秒内只基于最高需求决策,防止抖动 policies: # 策略1:按固定数量扩容 - type: Pods value: 2 # 每次最多增加 2 个 Pod periodSeconds: 60 # 每 60 秒评估一次 # 策略2:按比例扩容 - type: Percent value: 50 # 每次最多增加当前副本数的 50% periodSeconds: 60 # 每 60 秒评估一次 selectPolicy: Max # 选择两个策略中扩容幅度更大的方式(更激进) # 向下缩容策略(保守缩容,避免频繁波动) scaleDown: stabilizationWindowSeconds: 300 # 稳定窗口期:300 秒(5分钟),比扩容更保守 policies: # 策略1:按固定数量缩容 - type: Pods value: 1 # 每次最多减少 1 个 Pod periodSeconds: 60 # 每 60 秒评估一次 # 策略2:按比例缩容 - type: Percent value: 25 # 每次最多减少当前副本数的 25% periodSeconds: 60 # 每 60 秒评估一次 selectPolicy: Min # 选择两个策略中缩容幅度更小的方式(更保守)