首页 > 解决方案 > Kubernetes Horizo​​ntal Pod Autoscaler (HPA) 测试

问题描述

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

自然,这类事情很难排除故障,因为您并不总是能够控制 pod 启动和停止的时刻。

是否有一种机制可以用来指示集群向上和向下扩展?

我们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

标签: kuberneteskubernetes-pod

解决方案


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

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


推荐阅读