kubernetes - 在 Azure Kubernetes 中创建后端容器时出错
问题描述
在尝试在 Kubernetes 集群 (AKS) 中部署我的 Web 应用程序时,我看到我的后端 pod 没有出现,它们继续进入下面的 RESTART 详细信息:
C:\Work\k8> kubectl 获取 pod
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 - 这是负载均衡器的 IP 8800 - 这是部署的内部端口
有人可以帮我解决我在这里缺少的东西吗,我认为这是我正在努力解决的配置问题。
谢谢
解决方案
您可以尝试startupProbe
代替readinessProbe
吗?似乎readinessProbe
在服务器启动之前失败了。当服务器启动时间比平时多时,就会发生这种情况。
startupProbe:启动探针对于容器需要很长时间才能投入使用的 Pod 非常有用。您可以配置一个单独的配置来在容器启动时探测容器,而不是设置一个长的活动间隔,从而允许比活动间隔允许的时间更长的时间。参考
使用的好处startupProbe
是其他两个readinessProbe
并livenessProbe
不会执行,直到startupProbe
成功。
startupProbe:
httpGet:
path: /api/healthtest
port: {{ .Values.deployment.internalPort }}
failureThreshold: 30
periodSeconds: 10
livenessProbe:
httpGet:
path: /api/healthtest
port: {{ .Values.deployment.internalPort }}
failureThreshold: 3
periodSeconds: 20
推荐阅读
- python - 将格式化文本发布到网站上的文本框中
- c - C struct tm time - 添加小时
- html - 如何让我的盒子不接触页面底部?
- osmnx - plot_route_folium 无向图导致 IndexError: index 0 is out of bounds for axis 0 with size 0 when
- python - 从多元正态pdf中选择
- node.js - 启动捆绑包时出现 Liferay 错误。(未解决的要求:导入包:)
- r - 如何在不重复列的情况下创建数据框
- node.js - 如何在 MongoClient.connect 中的 app.use 中插入参数
- python - 使用 panda 的分配功能时出现 KeyError
- javascript - React 中的文本输入未启用按钮?