当我尝试在Kubernetes集群(AKS)中部署我的Web应用程序时,我看到我的后端Pod没有出现,它们继续进入下面的RESTART详细信息:
C:\Work\k8> kubectl get pods
NAME READY STATUS RESTARTS AGE
backend-mypod-backend-766b54f6dd-85v6v 0/1 CrashLoopBackOff 549 35h
backend-mypod-backend-766b54f6dd-j4fm9 0/1 CrashLoopBackOff 551 35h
backend-mypod-backend-766b54f6dd-vckbn 0/1 CrashLoopBackOff 549 35h
当我描述Pod时,我看到下面所有后端Pod的错误:
Warning Unhealthy 26m (x5 over 28m) kubelet, aks-agentpool-33316079-vmss000000 Liveness probe failed: Get http://10.39.67.9:8800/api/healthtest: dial tcp 10.39.67.9:8800: connect: connection refused
Warning Unhealthy 8m10s (x65 over 28m) kubelet, aks-agentpool-33316079-vmss000000 Readiness probe failed: Get http://10.39.67.9:8800/api/healthtest: dial tcp 10.39.67.9:8800: connect: connection refused
Warning BackOff 3m10s (x59 over 19m) kubelet, aks-agentpool-33316079-vmss000000 Back-off restarting failed container
下面是部署yaml中设置livnessProbe和readinessProbe的部分:
readinessProbe:
httpGet:
path: /api/healthtest
port: {{ .Values.deployment.internalPort }}
livenessProbe:
httpGet:
path: /api/healthtest
port: {{ .Values.deployment.internalPort }}
failureThreshold: 3
periodSeconds: 20
10.39.67.97这是负载均衡器8800的IP-这是部署的内部端口
有人能帮我什么我错过了这里,我认为这是一个配置问题,我正在努力弄清楚。
谢谢
1条答案
按热度按时间yquaqz181#
你能试一下
startupProbe
而不是readinessProbe
吗?在服务器启动之前,readinessProbe
似乎出现了故障。它发生在服务器比平常花费更多时间启动时。**startupProbe:**启动探测对于容器投入使用时间较长的Pod非常有用。您可以配置一个单独的配置,以便在容器启动时探测它,而不是设置一个较长的活动间隔,从而允许比活动间隔更长的时间。ref
使用
startupProbe
的好处是,其他两个readinessProbe
和livenessProbe
将不会执行,直到startupProbe
成功。