Pod容器在Google容器引擎上失败并重新启动/退出很多次

我正在设置Google Container Engine,并创build了Pod,资源控制器和服务。 但是,它从来没有准备好,并重新启动多次,如下所示。 ( restartPolicy Always

 $ 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) 

我也确认了Cluster故障排除指南 。

  • 我login到一个集群,环顾/var/log/kubelet.log和/var/log/kube-proxy.log,但我找不到有用的东西。
  • 重新启动集群什么都不做
  • 至less存在GCE持久性磁盘
  • 我正在使用复制控制器和服务

我不知道我能做什么。 我怎样才能调查这个问题? 或者这是一个Google容器引擎的问题?

看起来你的容器正在启动,然后快速退出。 我猜是从ExitCode:0的状态。

为了debugging,我会检查以下内容:

  • 如果直接在本地机器上使用docker运行相同的容器,它是否也立即退出?
  • 如果没有,你是否覆盖任何环境variables或参数或命令行在你的荚模板的方式,将立即退出?
  • 尝试设置您的Pod模板的.spec.container[].command["sleep", "10000"] ,以便容器保持足够长的时间,以便您可以使用kubectl exec ...进行debugging。