Kubernetes Horizontal 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 以进行调试,您可以在 Horizontal Pod Autoscaler .yaml 定义中使用自定义指标。
如果问题是新创建的 Pods 导致错误,您可以在执行 httpGet 检查的 Pod 定义中实现就绪探测。这样,您可以避免在故障 Pods 上重定向流量,直到探测检查 returns a status = 200.
我们的 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 以进行调试,您可以在 Horizontal Pod Autoscaler .yaml 定义中使用自定义指标。
如果问题是新创建的 Pods 导致错误,您可以在执行 httpGet 检查的 Pod 定义中实现就绪探测。这样,您可以避免在故障 Pods 上重定向流量,直到探测检查 returns a status = 200.