Kubernetes Horizo​​ntal Pod Autoscaler (HPA) 测试

Kubernetes Horizontal Pod Autoscaler (HPA) Testing

我们的 Web 服务 API 遇到了一些内部服务器错误 (500),似乎是在我们的自动缩放器配置中引入或删除了新的 pods。

当然,这种事情很难解决,因为您并不总是能够控制 pods 开始和停止的时刻。

是否有一种机制可以用来指示集群按比例放大和缩小?

我们hpa.yaml感兴趣。

kind: HorizontalPodAutoscaler
apiVersion: autoscaling/v2beta2
metadata:
  name: xyz
spec:
  minReplicas: 1
  maxReplicas: 12
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: xyz
  behavior:
    scaleUp:
      stabilizationWindowSeconds: 0
      policies:
      - type: Percent
        value: 100
        periodSeconds: 15
    scaleDown:
      stabilizationWindowSeconds: 300
      policies:
      - type: Percent
        value: 50
        periodSeconds: 60
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70
    - type: Resource
      resource:
        name: memory
        target:
          type: Utilization
          averageUtilization: 85

如果您有兴趣让 HPA 强制创建或销毁 Pods 以进行调试,您可以在 Horizo​​ntal Pod Autoscaler .yaml 定义中使用自定义指标。

如果问题是新创建的 Pods 导致错误,您可以在执行 httpGet 检查的 Pod 定义中实现就绪探测。这样,您可以避免在故障 Pods 上重定向流量,直到探测检查 returns a status = 200.