我正在设置 Google Container Engine 并创建了 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 Application Troubleshooting Guide,但没有运气。
首先,我试过了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 Troubleshooting Guide。
- 我登录到一个集群并查看了 /var/log/kubelet.log 和 /var/log/kube-proxy.log 但我找不到有用的东西。
- 重启集群什么也没做
- 至少存在 GCE 永久磁盘
- 我正在使用复制控制器和服务
我不知道我还能做什么。我该如何调查这个问题?还是这是 Google Container Engine 的问题?
看起来您的容器正在启动,然后快速退出。我从 STATUS 猜测是
ExitCode:0
.对于调试,我会检查以下内容:
.spec.container[].command
您的 Pod 模板设置为类似["sleep", "10000"]
,以便容器保持足够长的生命周期,以便您可以使用它kubectl exec ...
进行调试。