【发布时间】:2020-10-28 16:29:27
【问题描述】:
我们有一些 pod 随机卡在 Init 状态。在描述这些 pod 时,我们看到 init 容器正在运行,但未标记为就绪。此外,日志不会显示 init 容器的任何错误。
Init Containers:
istio-init:
Container ID: <id>
Image: docker.io/istio/proxy_init:1.0.0
Image ID: docker-pullable://istio/proxy_init@sha256:345c40053b53b7cc70d12fb94379e5aa0befd979a99db80833cde671bd1f9fad
Port: <none>
Host Port: <none>
Args:
-p
15001
-u
1337
-m
REDIRECT
-i
10.16.0.0/14,10.0.0.0/20
-x
-b
4000,
-d
State: Running <---
Started: Wed, 08 Jul 2020 10:35:52 +0200
Ready: False <---
Restart Count: 0
Environment: <none>
Mounts: <none>
应用容器处于等待状态,原因是 PodInitializing。
Containers:
app:
Container ID:
Port: 4000/TCP
Host Port: 0/TCP
State: Waiting <---
Reason: PodInitializing <---
Ready: False <---
起初我们认为 init 容器有问题,但事实并非如此。后来我们得出结论,所有卡在 Init 状态的 pod 都在同一个节点上。这就解释了这个问题的随机性。
有人对这类问题有什么建议吗?
谢谢,
马尔科
【问题讨论】:
-
使用
kubectl get nodes检查节点状态并验证 kubelet 服务在该节点上运行良好。这将使您对这个问题有更深入的了解。 -
刚刚检查了 kubelet 日志,结果发现我们有很多
container istio-init: selfLink was empty, can't make reference日志。即使对于一些最近删除的 pod。 -
节点是否显示状态为
Ready?我们需要通过查看历史日志来确定由 istio 引起的问题。在这种情况下,任何日志记录工具都可能有所帮助。如果没有,请试用 Datadog 免费试用 14 天。 -
是的。该节点的状态为就绪。
-
请提供更多细节。您使用的是什么版本的 GKE。它在 GKE 上的 Istio 插件还是您单独部署了它(在这种情况下是什么 Istio 版本)?请指定您在 GKE 集群中使用的机器类型。
标签: kubernetes google-kubernetes-engine istio