Google Container Engine 上的 Pod 失败并多次重启/退出

Google Container Engine 上的 Pod 失败并多次重启/退出

我正在设置 Google Container Engine,并创建了 pod、资源控制器和服务。但是,它从未准备好,并且多次重新启动,如下所示。(restartPolicyAlways)

$ kubectl get pods
NAME                   READY     STATUS       RESTARTS   AGE
app-production-acg4r   0/1       ExitCode:0   8          5m
app-production-p7njh   0/1       ExitCode:0   8          5m

我跟着Kubernetes 应用程序故障排除指南,但没有运气。

首先,我尝试过kubectl logs,但没有输出

$ kubectl logs app-production-acg4r app-production
$ kubectl logs app-production-p7njh app-production
$ kubectl logs --previous app-production-acg4r app-production
$ kubectl logs --previous app-production-p7njh app-production

我也尝试使用 运行容器内的命令kubectl exec。它有时会返回错误:

$ kubectl exec notel-production-uz29p -c notel-production -- ls /var/log
error: Error executing remote command: Error executing command in container: container not found ("notel-production")

有时没有回应:

$ kubectl exec notel-production-uz29p -c notel-production -- ls /var/log
(No response)

我也确认了集群故障排除指南

  • 我登录到集群并查看了 /var/log/kubelet.log 和 /var/log/kube-proxy.log,但没有找到有用的东西。
  • 重启集群没有任何效果
  • 至少存在 GCE 持久磁盘
  • 我正在使用复制控制器和服务

我不知道还能做什么。我该如何调查这个问题?或者这是 Google Container Engine 的问题?

答案1

您的容器似乎正在启动,然后快速退出。我猜是因为状态为ExitCode:0

为了调试我将检查以下内容:

  • 如果你在本地机器上直接用docker运行同一个容器,它也会立即退出吗?
  • 如果没有,您是否以某种方式覆盖了 Pod 模板中的任何环境变量、参数或命令行,从而使其立即退出?
  • 尝试将.spec.container[].command您的 Pod 模板设置为类似的内容["sleep", "10000"],以便容器可以保持足够长的时间,以便您可以用来kubectl exec ...调试。

相关内容