从 "kubectl get pod" 和 "kubectl describe pod" 命令获取不同的 Pod 状态
Getting different Pod status from "kubectl get pod" and "kubectl describe pod" command
我创建了一个有两个容器的 Pod – 一个容器成功创建,而另一个容器失败。
现在,当我执行以下命令时,我看到“Status”为“Error”:
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 显示错误状态?
Kubernetes 没有显示错误的状态。
- 从
kubectl get pod <<POD_NAME>>
命令中获取 Pod 的状态。
- 从
kubectl describe pod <<POD_NAME>>
获得 Pod 阶段的 状态。通过 here. 阅读更多关于 Pod 阶段状态的信息
kubectl describe pod
给你的状态是 运行 因为 Pod 已经绑定到一个节点 + 所有容器都已经创建 + 至少一个容器仍然是 运行。同样,您可以阅读我分享的 link。
kubectl get pod
给你的状态是 ERROR,因为 Pod 不处于健康状态。现在我没有 link 你可以在 kubectl get pod
中了解 STATUS 字段的含义,但我可能稍后会找到并分享。
另一种验证方法是通过 运行 kubectl get pods --field-selector=status.phase=Running
命令。如果您在此处列出了 Pod,那么您可以通过另一种方式确定 kubectl describe pod
命令中显示的状态是 Pod 阶段的状态。
我创建了一个有两个容器的 Pod – 一个容器成功创建,而另一个容器失败。
现在,当我执行以下命令时,我看到“Status”为“Error”:
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 显示错误状态?
Kubernetes 没有显示错误的状态。
- 从
kubectl get pod <<POD_NAME>>
命令中获取 Pod 的状态。 - 从
kubectl describe pod <<POD_NAME>>
获得 Pod 阶段的 状态。通过 here. 阅读更多关于 Pod 阶段状态的信息
kubectl describe pod
给你的状态是 运行 因为 Pod 已经绑定到一个节点 + 所有容器都已经创建 + 至少一个容器仍然是 运行。同样,您可以阅读我分享的 link。
kubectl get pod
给你的状态是 ERROR,因为 Pod 不处于健康状态。现在我没有 link 你可以在 kubectl get pod
中了解 STATUS 字段的含义,但我可能稍后会找到并分享。
另一种验证方法是通过 运行 kubectl get pods --field-selector=status.phase=Running
命令。如果您在此处列出了 Pod,那么您可以通过另一种方式确定 kubectl describe pod
命令中显示的状态是 Pod 阶段的状态。