AKS中HPA自动扩缩容场景下首次并发请求报错的问题排查求助
AKS中HPA自动扩缩容场景下首次并发请求报错的问题排查求助
大家好,我在AKS环境里使用Horizontal Pod Autoscaler(HPA)时遇到了一个棘手的问题,想请教下社区的大佬们:
我的容器运行着一个处理POST请求的Flask API服务,启动时已经开启了线程支持:
if __name__ == "__main__": app.run(host='0.0.0.0', port=5003, threaded=True)
本地测试时,发送20次请求虽然响应慢,但所有请求都能正常返回;但放到AKS里第一次发20次请求时(此时集群里只有1个Pod在运行),会收到不少错误响应;第二次再发同样的20次请求时,Pod已经完成扩容,所有请求就都能正常响应了。
我原本以为AKS会自动等待现有Pod恢复可用,或者等新Pod创建完成后再转发请求,现在完全搞不懂第一次并发请求报错的原因,想问问大家是不是我哪里的配置遗漏了?
下面是我的相关配置文件:
Deployment.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: *hidden* spec: selector: matchLabels: app: *hidden* template: metadata: labels: app: *hidden* spec: containers: - name: *hidden* image: *hidden* env: - name: *hidden* valueFrom: secretKeyRef: name: *hidden* key: *hidden* imagePullPolicy: Always resources: requests: cpu: "300m" memory: "400Mi" limits: cpu: "300m" memory: "400Mi" ports: - containerPort: 5003 imagePullSecrets: - name: *hidden* --- apiVersion: v1 kind: Service metadata: name: *hidden* spec: selector: app: *hidden* ports: - port: 5003 protocol: TCP targetPort: 5003 type: LoadBalancer
hpa.yaml
apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: *hidden* spec: scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: *hidden* minReplicas: 1 maxReplicas: 10 metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 20 behavior: scaleUp: policies: - type: Pods value: 20 periodSeconds: 60 scaleDown: policies: - type: Pods value: 4 periodSeconds: 60
备注:内容来源于stack exchange,提问作者Jens Voorpyl
相关产品推荐
相关产品推荐

