首页 > 解决方案 > Kubernetes pod 后退重新启动失败的容器并出现 CrashLoopBack 错误

问题描述

Github 仓库

在使用 AWS EKS 集群配置之后kubectl,我使用以下命令部署了服务:

kubectl apply -f env-configmap.yaml
kubectl apply -f env-secret.yaml
kubectl apply -f aws-secret.yaml
# this is repeated for all services 
kubectl apply -f svcname-deploymant.yaml
kubectl apply -f svcname-service.yaml

在此处输入图像描述

其他服务成功运行,但反向代理返回错误,当我通过运行命令进行调查时,kubectl describe pod reverseproxy... 我得到了以下信息:

https://pastebin.com/GaREMuyj

[已编辑]

运行命令后,kubectl logs -f reverseproxy-667b78569b-qg7p我得到这个: 在此处输入图像描述

标签: amazon-web-serviceskubernetesmicroserviceskubectlamazon-eks

解决方案


正如David Maze非常正确地指出的那样,您的问题是不可重现的。例如,您还没有提供所有配置文件。但是,您收到的错误清楚地说明了问题:

host not found in upstream "udagram-users: 8080" in /etc/nginx/nginx.conf:11

此错误表明您正在尝试连接到第 11 行udagram-users: 8080文件中定义的主机。/etc/nginx/nginx.conf

请问我该如何解决?

您需要检查连接。(也可能是您在配置中输入了错误的主机名或端口)。您提到您正在使用多个子网:

它正在使用 5 个子网

在这种情况下,很可能没有连接,因为各个组件在不同的网络上运行,并且永远无法相互通信。如果您在一个网络上运行所有容器,它应该可以工作。另一方面,如果您想使用多个子网,则需要确保跨多个子网的容器到容器通信。

另请参阅此类似问题以及许多可能的解决方案。


推荐阅读