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

在Azure Kubernetes中创建后端容器时出错,kubernetes,yaml,continuous-deployment,kubernetes-ingress,azure-aks,Kubernetes,Yaml,Continuous Deployment,Kubernetes Ingress,Azure Aks,在尝试在Kubernetes集群(AKS)中部署我的web应用程序时,我发现我的后端吊舱没有出现,它们继续进入以下重启细节: C:\Work\k8>kubectl获取吊舱 NAME READY STATUS RESTARTS AGE backend-mypod-backend-766b54f6dd-85v6v

在尝试在Kubernetes集群(AKS)中部署我的web应用程序时,我发现我的后端吊舱没有出现,它们继续进入以下重启细节:

C:\Work\k8>kubectl获取吊舱

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中设置LivinessProbe和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
而不是
ReadinesProbe
?似乎在服务器启动之前,
readinessProbe
就失败了。当服务器的启动时间比平时长时,就会发生这种情况

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

使用
startupProbe
的好处是,另外两个
ReadinesProbe
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


谢谢,Emon会尝试一下,而且最好包括所有3个问题是的,你可以全部使用。事实上,它满足你的需要。