从“kubectl get pod”和“kubectl describe pod”命令获取不同的 Pod 状态
·
回答问题
我创建了一个带有两个容器的 Pod——一个容器创建成功,而另一个容器创建失败。
现在,当我执行以下命令时,我看到“状态”是“错误”:
C:\Users\test123>kubectl get pod pod3-two-nginx-containers-port-error
NAME READY STATUS RESTARTS AGE
pod3-two-nginx-containers-port-error 1/2 Error 0 134m
但是当我执行下面的命令时,我看到“状态”是“正在运行”:
C:\Users\test123>kubectl describe pod pod3-two-nginx-containers-port-error
Name: pod3-two-nginx-containers-port-error
Namespace: default
Priority: 0
Node: minikube/192.168.49.2
Start Time: Thu, 18 Mar 2021 12:50:19 +0530
Labels: <none>
Annotations: <none>
Status: Running
IP: 10.244.0.9
IPs:
为什么 Kubernetes 显示错误的状态?
Answers
Kubernetes 没有显示错误的状态。
-
从
kubectl get pod <<POD_NAME>>命令可以获取 Pod 的状态。 -
从
kubectl describe pod <<POD_NAME>>获取 Pod 阶段的状态。在此处](https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-phase)阅读有关[上的 Pod 阶段状态的更多信息。
kubectl describe pod为您提供 RUNNING 状态,因为 Pod 已绑定到一个节点 + 所有容器都已创建 + 至少一个容器仍在运行。同样,您可以阅读我共享的链接。
kubectl get pod给你的状态是错误,因为 Pod 不处于健康状态。现在我没有链接,您可以在其中阅读有关kubectl get pod中 STATUS 字段的含义的链接,但我稍后可能会找到并分享。
验证这一点的另一种方法是运行kubectl get pods --field-selector=status.phase=Running命令。如果您在此处列出了 Pod,那么您可以通过另一种方式确定kubectl describe pod命令中显示的状态是 Pod 阶段的状态。
更多推荐
所有评论(0)