kubectl describe 是 Kubernetes 中的一个命令,用于提供集群中各种资源的详细信息,如 Pod、服务、部署等。该命令对于了解资源的当前状态和诊断问题至关重要。
下面的代码示例演示了如何使用 kubectl describe 获取特定 Pod 的详细信息。
【代码清单】
kubectl describe pod my-pod
【执行结果】
Name: my-pod
Namespace: default
Priority: 0
Node: node-1/192.168.1.1
Start Time: Mon, 20 Aug 2024 10:00:00 +0900
Labels: app=my-app
Annotations: <none>
Status: Running
IP: 10.244.0.1
Containers:
my-container:
Container ID: docker://abcdef123456
Image: my-image:latest
Image ID: docker-pullable://my-image@sha256:abcdef...
Port: 80/TCP
Host Port: 0/TCP
State: Running
Started: Mon, 20 Aug 2024 10:01:00 +0900
Ready: True
Restart Count: 0
Environment:
MY_ENV_VAR: my-value
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-abcde (ro)
Conditions:
Type Status
Initialized True
Ready True
PodScheduled True
Volumes:
default-token-abcde:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-abcde
Optional: false
kubectl describe pod my-pod 的输出会提供 Pod 状态的全面概述,包括其名称、命名空间、节点分配、容器详情以及影响其运行的任何条件。每个部分都能提供 Pod 环境的详细信息,如容器的状态(运行、终止等)、重启次数和使用的卷。这些信息对于故障排除和确保应用程序按预期运行至关重要。
【小知识】
kubectl describe 可用于各种资源类型,包括 Pod、服务、部署、节点等。
该命令不仅会输出当前状态,还会输出与资源相关的事件,这有助于识别调度失败或容器启动不成功等问题。
你可以使用 --namespace 或 --show-events 等标记进一步过滤输出,前者可以指定不同的命名空间,后者可以在输出中包含事件。