【问题标题】:Kubernetes pod Back-off restarting failed container with CrashLoopBack errorKubernetes pod 后退重新启动失败的容器并出现 CrashLoopBack 错误
【发布时间】:2021-11-21 05:40:05
【问题描述】:

Github repo

在使用 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 后,我得到了这个:

【问题讨论】:

  • 该状态码表示 pod 内的进程正在退出,但在不知道它在做什么的情况下,很难进一步诊断它。您可以编辑问题以包含minimal reproducible example吗?
  • 我不认为 describe pods 在这种情况下可以提供帮助,reasonerror 所以看起来像是坏了。您能否通过添加kubectl logs -f reverseproxy-667b78569b-fmswg 来更新答案
  • (如果有帮助的话)我先部署了秘密,然后是反向代理(取决于用户和提要),然后我部署提要,然后是用户,然后是前端
  • 请避免使用图片和pastebin等外部服务。所有内容都应作为格式化文本粘贴到此处。顺便提一句。您使用的是哪个版本的 Kubernetes,您是如何配置集群的?
  • 我使用的是 1.21 版,集群是可公开访问的,它使用 5 个子网,它有一个节点组,包含 2 个 t3.small 类型的工作节点,大小为 10GB

标签: amazon-web-services kubernetes microservices kubectl amazon-eks


【解决方案1】:

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

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

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

请问我该如何解决?

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

它正在使用 5 个子网

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

另请参阅similar problem 以及许多可能的解决方案。

【讨论】:

    猜你喜欢
    • 2019-10-30
    • 2020-03-05
    • 2021-01-13
    • 2023-02-09
    • 2018-04-04
    • 2020-07-05
    • 2020-05-21
    • 2022-01-15
    • 1970-01-01
    相关资源
    最近更新 更多