kubectl describe pod 命令以及输出详情讲解
kubectl describe pod 命令格式
kubectl describe pod <pod-name> -n <namespace>
-
<pod-name>
:Pod 的名称。 -
-n <namespace>
:指定命名空间,默认是当前命名空间。
controlplane ~ ✖ kubectl describe pod newpods-dzmkg
Name: newpods-dzmkg
Namespace: default
Priority: 0
Service Account: default
Node: controlplane/192.168.57.39
Start Time: Wed, 19 Mar 2025 16:11:52 +0000
Labels: tier=busybox
Annotations: <none>
Status: Running
IP: 10.22.0.9
IPs:
IP: 10.22.0.9
Controlled By: ReplicaSet/newpods
Containers:
busybox:
Container ID: containerd://bb5fe66b591523ebcb81896344f4cef055a334b4a6ca8a2a48515ca5cd671ac7
Image: busybox
Image ID: docker.io/library/busybox@sha256:37f7b378a29ceb4c551b1b5582e27747b855bbfaa73fa11914fe0df028dc581f
Port: <none>
Host Port: <none>
Command:
sleep
1000
State: Running
Started: Wed, 19 Mar 2025 16:11:53 +0000
Ready: True
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-vwzcg (ro)
Conditions:
Type Status
PodReadyToStartContainers True
Initialized True
Ready True
ContainersReady True
PodScheduled True
Volumes:
kube-api-access-vwzcg:
Type: Projected (a volume that contains injected data from multiple sources)
TokenExpirationSeconds: 3607
ConfigMapName: kube-root-ca.crt
ConfigMapOptional: <nil>
DownwardAPI: true
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 33s default-scheduler Successfully assigned default/newpods-dzmkg to controlplane
Normal Pulling 33s kubelet Pulling image "busybox"
Normal Pulled 33s kubelet Successfully pulled image "busybox" in 280ms (280ms including waiting). Image size: 2156519 bytes.
Normal Created 33s kubelet Created container: busybox
Normal Started 33s kubelet Started container busybox
#Powered by https://zhengkai.blog.csdn.net
kubectl describe pod 输出字段详解
执行命令后,输出会包含以下主要部分:
1. Name(名称)
-
解释:Pod 的名称,通常是自动生成的(例如:
my-app-abc123
)。 -
作用:唯一标识该 Pod。
2. Namespace(命名空间)
-
解释:Pod 所在的命名空间,用于逻辑隔离资源。
3. Node(节点)
-
解释:Pod 所调度到的节点名称。
-
作用:用于确认 Pod 的运行节点,便于排查节点问题。
4. Start Time(启动时间)
-
解释:Pod 的创建时间。
5. Labels(标签)
-
解释:Pod 上的键值对标签(如
app=springboot
)。 -
作用:用于选择和过滤资源(例如 Service 的 selector)。
6. Annotations(注解)
-
解释:附加信息(如描述、额外的配置或元数据)。
-
示例:可以包含 Ingress 注解等。
7. Status(状态)
-
解释:Pod 的当前运行状态。
-
可能值:
-
Pending
:Pod 尚未分配到节点。 -
Running
:Pod 正在运行。 -
Succeeded
:Pod 执行完成(仅适用于 Job)。 -
Failed
:Pod 运行失败。 -
Unknown
:状态无法确定。
-
8. Containers(容器信息)
包含每个容器的详细信息:
-
Name(名称):容器的名称。
-
Image(镜像):容器使用的 Docker 镜像。
-
Ports(端口):容器暴露的端口。
-
Environment(环境变量):定义的环境变量。
-
Mounts(挂载):卷的挂载路径。
9. Conditions(条件)
描述 Pod 的健康状况:
-
Initialized:Pod 是否已成功初始化。
-
Ready:Pod 是否已准备好处理请求。
-
ContainersReady:所有容器是否都处于准备状态。
-
PodScheduled:Pod 是否已成功调度到节点。
10. Events(事件)
-
解释:显示与 Pod 相关的事件日志。
-
作用:用于排查问题,通常包含以下信息:
-
类型(Type):事件类型(如
Normal
或Warning
)。 -
原因(Reason):触发事件的原因(如
Scheduled
、Failed
)。 -
消息(Message):事件的详细描述。
-
11. Volumes(卷信息)
-
解释:Pod 使用的存储卷,包括类型和挂载点。
-
示例:
configMap
、secret
、persistentVolumeClaim
。
12. QoS Class(质量服务等级)
-
解释:Pod 的资源分配策略。
-
可能值:
-
Guaranteed
:已保证资源分配。 -
Burstable
:可弹性分配。 -
BestEffort
:尽力而为模式(资源请求未定义)。
-
用途和实践
-
排查问题:通过
Events
和Conditions
查看异常原因。 -
检查配置:验证镜像、环境变量等是否正确。
-
监控状态:随时了解 Pod 的健康状况。