kubernetes 通过“kubectl get pod”和“kubectl describe pod”命令获取不同的Pod状态

5sxhfpxr  于 2023-03-17  发布在  Kubernetes
关注(0)|答案(1)|浏览(259)

我创建了一个有两个容器的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显示错误的状态?

a2mppw5e

a2mppw5e1#

Kubernetes没有显示错误的状态。

  • 通过kubectl get pod <<POD_NAME>>命令,您可以获取Pod的状态。
  • 通过kubectl describe pod <<POD_NAME>>,您可以获得Pod阶段的状态。

kubectl describe pod为您提供的状态为RUNNING,因为Pod已绑定到节点+所有container已创建+至少一个container仍在运行。请阅读有关Pod阶段的详细信息。另请阅读有关Pod条件的信息。
kubectl get pod给你的状态为错误,因为Pod不是在健康状态。现在我没有链接,你可以阅读什么状态字段的意思在kubectl get pod,但可能我会找到并分享后。
另一种验证方法是运行kubectl get pods --field-selector=status.phase=Running命令。如果您在此处列出Pod,则另一种方法是您可以确保kubectl describe pod命令中显示的状态是Pod阶段的状态。

相关问题