在Azure Kubernetes中创建后端容器时出错

fruv7luv  于 2023-10-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(135)

当我尝试在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-这是部署的内部端口
有人能帮我什么我错过了这里,我认为这是一个配置问题,我正在努力弄清楚。
谢谢

yquaqz18

yquaqz181#

你能试一下startupProbe而不是readinessProbe吗?在服务器启动之前,readinessProbe似乎出现了故障。它发生在服务器比平常花费更多时间启动时。

**startupProbe:**启动探测对于容器投入使用时间较长的Pod非常有用。您可以配置一个单独的配置,以便在容器启动时探测它,而不是设置一个较长的活动间隔,从而允许比活动间隔更长的时间。ref

使用startupProbe的好处是,其他两个readinessProbelivenessProbe将不会执行,直到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

相关问题