开发手册 欢迎您!
软件开发者资料库

Kubernetes(K8s) kubectl describe常用命令

Kubernetes(K8s)中使用Kubectl 命令行工具管理 Kubernetes 集群。 kubectl 在 $HOME/.kube 目录中查找一个名为 config 的配置文件。 可以通过设置 KUBECONFIG 环境变量或设置 --kubeconfig 参数来指定其它 kubeconfig 文件。本文主要介绍Kubernetes(K8s)中kubectl describe常用命令。

 1、Kubectl语法

kubectl [command] [TYPE] [NAME] [flags]

其中 command、TYPE、NAME 和 flags 分别是:

1)command:指定要对一个或多个资源执行的操作,例如 create、get、describe、delete。

2)TYPE:指定资源类型。资源类型不区分大小写, 可以指定单数、复数或缩写形式。例如,以下命令输出相同的结果:

kubectl describe pod pod1
kubectl describe pods pod1
kubectl describe po pod1

3)NAME:指定资源的名称。名称区分大小写。 如果省略名称,则显示所有资源的详细信息 kubectl get pods。

在对多个资源执行操作时,可以按类型和名称指定每个资源,或指定一个或多个文件:

要按类型和名称指定资源:

要对所有类型相同的资源进行分组,请执行以下操作:TYPE1 name1 name2 name

例如,

kubectl describe pod example-pod1 example-pod2

分别指定多个资源类型:TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE/name

例如,

kubectl describe pod/example-pod1 replicationcontroller/example-rc1

用一个或多个文件指定资源:-f file1 -f file2 -f file

使用 YAML 而不是 JSON 因为 YAML 更容易使用,特别是用于配置文件时。 

例如,

kubectl describe -f ./pod.yaml

4)flags: 指定可选的参数。例如,可以使用 -s-server 参数指定 Kubernetes API 服务器的地址和端口。

2、kubectl命令中的简写

kubectl命令中可以使用的缩写,具体如下:

certificatesigningrequests (缩写 csr)
componentstatuses (缩写 cs)
configmaps (缩写 cm)
customresourcedefinition (缩写 crd)
daemonsets (缩写 ds)
deployments (缩写 deploy)
endpoints (缩写 ep)
events (缩写 ev)
horizontalpodautoscalers (缩写 hpa)
ingresses (缩写 ing)
limitranges (缩写 limits)
namespaces (缩写 ns)
networkpolicies (缩写 netpol)
nodes (缩写 no)
persistentvolumeclaims (缩写 pvc)
persistentvolumes (缩写 pv)
poddisruptionbudgets (缩写 pdb)
pods (缩写 po)
podsecuritypolicies (缩写 psp)
replicasets (缩写 rs)
replicationcontrollers (缩写 rc)
resourcequotas (缩写 quota)
serviceaccounts (缩写 sa)
services (缩写 svc)
statefulsets (缩写 sts)
storageclasses (缩写 sc)

 3、kubectl describe命令

describe获得的是resource集群相关的信息,如某个pod并不是在running状态,这时需要获取更详尽的状态信息时,查相关日志信息,就应该使用describe命令。describe常用的命令如下:

1)显示所有Node的详细信息

kubectl describe nodes

2)显示所有Pod的详细信息

kubectl describe pods

3)显示一个node的详细信息

kubectl describe nodes k8s-minion

4)显示一个pod的详细信息

kubectl describe pods/nginx

5)显示pod.json中的资源类型和名称指定的pod

kubectl describe -f pod.json

6)显示所有包含label name=myLabel的pod

kubectl describe po -l name=myLabel

7)显示所有被replication controller “frontend”管理的pod(rc创建的pod都以rc的名字作为前缀)

kubectl describe pods frontend

注意:

不同命令之间的选项都是相通,可以灵活使用。describe命令同get类似,但是describe不支持-o选项。