问题:
我们在函数中添加了健康检查配置。但是,由于活动性和就绪性检查中的超时错误,Pod 变得不健康,因此会重新启动。 但是,如果我使用 CURL 或浏览器点击相同的健康检查 url,它会返回正确的响应。
健康检查配置参考。
我们正在使用Kubernetes HPAv2进行自动扩展(参考)。
测试函数.yml
test-function:
lang: quarkus-java-with-fonts
handler: ./test-function
image: repo.azurecr.io/test-function:0.1
labels:
agentpool: openfaas
com.openfaas.scale.min: "2"
com.openfaas.scale.max: "10"
com.openfaas.scale.factor: 0
annotations:
com.openfaas.health.http.path: "/health"
com.openfaas.health.http.initialDelay: "30s"
environment:
secret_name: environment-variables
secrets:
- environment-variables
constraints:
- agentpool=openfaas
limits:
cpu: 1500m
memory: 1Gi
requests:
cpu: 500m
memory: 500Mi
错误跟踪:
Liveness probe failed: Get "http://XX.XXX.XX.XX:8080/health": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
Readiness probe failed: Get "http://XX.XXX.XX.XX:8080/health": context deadline exceeded (Client.Timeout exceeded while awaiting headers)
任何想法可能是错的。