kubectl get
# kubectl get
列出某个集群资源的信息。
# 基本格式
kubectl get <资源类型>
# 可同时查看多种资源的信息 通过逗号分隔
kubectl get nodes,pods,<...等>
1
2
3
4
5
2
3
4
5
# 可列出的资源(笔者已学或已知)
# 节点
kubectl get nodes
##### ---------------------------------------- #####
# Pod
kubectl get pods
##### ---------------------------------------- #####
# 控制器 Deployment
kubectl get deployments
kubectl get deploy
# 水平自动扩缩 HPA
kubectl get hpa
# 其他控制器 DaemonSet
kubectl get daemonsets
kubectl get ds
# 其他控制器 ReplicationController
kubectl get replicationcontrollers
kubectl get rc
# 其他控制器 ReplicaSet
kubectl get replicaSets
kubectl get rs
# 任务
kubectl get jobs
# 计划任务
kubectl get cronjobs
kubectl get cj
##### ---------------------------------------- #####
# 持久卷
kubectl get pv
# 持久卷申领
kubectl get pvc
# 存储类
kubectl get sc
##### ---------------------------------------- #####
# 密码存储 Secret
kubectl get secrets
# 密码存储 ConfigMap
kubectl get configmaps
kubectl get cm
##### ---------------------------------------- #####
# 服务
kubectl get services
kubectl get svc
# 路由规则
kubectl get ingress
kubectl get ing
# 网络策略
kubectl get networkpolicy
kubectl get networkpolicies
kubectl get netpol
##### ---------------------------------------- #####
# 角色
kubectl get roles
# 角色绑定
kubectl get rolebindings
# 集群角色
kubectl get clusterroles
# 集群角色绑定
kubectl get clusterrolebindings
# 服务账户
kubectl get serviceaccounts
kubectl get sa
##### ---------------------------------------- #####
# 准入控制器 Webhooks
kubectl get validatingwebhookconfigurations
# 证书请求 CSR
kubectl get csr
kubectl get certificatesigningrequests
##### ---------------------------------------- #####
# 集群事件
kubectl get events
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
# 命令参数选项
# -o
# -o wide
列出资源的同时,显示这些资源的基础信息。
# 示例
kubectl get nodes -o wide
1
2
2
# -o name
只列出资源的名称,标题行、以及其余列信息都不显示。
# 示例
kubectl get nodes -o name
1
2
2
小技巧
- 通过命令
kubectl get <资源名称> -A -o name | wc -l
可以快速计算出集群中的某个资源的总数量。 - 如果想计算某个命名空间中的资源数量,则可以使用
kubectl get <资源名称> -n <命名空间> -o name | wc -l
# -o json
以 JSON 格式打印资源的详细运行信息。
# 示例
kubectl get nodes -o json
# 数据量可能过大, 建议配合输出重定向来使用
kubectl get nodes -o json > info.json
1
2
3
4
5
2
3
4
5
# -o yaml
以 YAML 格式打印资源的详细运行信息。
# 示例
kubectl get nodes -o yaml
# 数据量可能过大, 建议配合输出重定向来使用
kubectl get nodes -o yaml > info.yaml
1
2
3
4
5
2
3
4
5
# -o jsonpath
以 JSON 格式打印资源的详细运行信息,并且可以筛选指定的数据。
# 列出某个正在运行的节点信息,并寻找 spec.podCIDR 字段中的数据
kubectl get nodes <节点名称> -o jsonpath='{.spec.podCIDR}'
1
2
2
# -n/--namespace
列出指定命名空间中的资源。
# 格式
kubectl get <资源名称> -n <命名空间名称>
# 示例(列出命名空间 kube-system 中的 Pod)
kubectl get pods -n kube-system
kubectl get pods --namespace kube-system
1
2
3
4
5
6
2
3
4
5
6
# -A/--all-namespaces选项
列出所有命名空间中的指定资源。
# 示例(列出所有命名空间中的 Pod)
kubectl get pods -A
kubectl get pods --all-namespaces
1
2
3
2
3
# --show-labels
显示资源的标签信息。
# 示例
kubectl get nodes --show-labels
1
2
2
# -l
列出含有特定标签的资源。
# 格式
kubectl get <资源> -l <键>=<值>
# 多个标签之间通过逗号 , 分隔
kubectl get <资源> -l <键>=<值>,<键2>=<值2>
# 示例(列出命名空间 kube-system 中带有标签 k8s-app=kube-dns 的 Pod)
kubectl get pods -n kube-system -l k8s-app=kube-dns
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# --no-headers
列出信息的时候省略 “标题” 行。
# 示例(列出 Pod 信息的时候不显示标题)
kubectl get pods --no-headers
1
2
2
# 关于secret的一些用法
以 YAML 的格式输出 secret 的运行信息,然后在data
字段下即可看到存储的密钥对。
kubectl get secret <名称> -o yaml
# 然后对密钥值进行 Base64 解码
echo "<加密后的值>" | base64 -d
1
2
3
4
2
3
4
查看并筛选 secret 里存储的密钥对:
# 格式
kubectl get secret <名称> -o jsonpath='{.data.<键>}'
# 示例(获取 mysec 里面密钥键为 abc 的密钥值)
kubectl get secret mysec -o jsonpath='{.data.abc}'
# 快速获取并解码
kubectl get secret mysec -o jsonpath='{.data.abc}' | base64 -d
1
2
3
4
5
6
7
2
3
4
5
6
7
编辑 (opens new window)