指定要在一个或多个资源进行的操作,例如create,get,describe,delete。例如“kubectl get cs”。
3.TYPE
指定资源类型,资源类型在YAML文件中是大小写敏感的,资源类型在命令行是不区分大小写的,开发者能够以单数、复数和缩略的形式。例如:
#以下命令产生相同的输出
kubectl get pod -n kubernetes-dashboard
kubectl get pods -n kubernetes-dashboard
kubectl get po -n kubernetes-dashboard
4.NAME
指定资源的名称,名称也大小写敏感的。如果省略名称空间,则显示默认名称空间资源的详细信息或者提示:No resources found in default namespace.。
# 示例:
[root@k8s-master-001 ~]# kubectl get pods
No resources found in default namespace.
[root@k8s-master-001 ~]# kubectl get pods --all-namespaces # 或者 kubectl get pods --A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-6955765f44-c9zfh 1/1 Running 8 6d7h
kube-system coredns-6955765f44-lrz5q 1/1 Running 8 6d7h
kube-system etcd-k8s-master-001 1/1 Running 9 6d7h
kube-system kube-apiserver-k8s-master-001 1/1 Running 9 6d7h
kube-system kube-controller-manager-k8s-master-001 1/1 Running 8 6d7h
kube-system kube-flannel-ds-amd64-dngrk 1/1 Running 13 6d7h
kube-system kube-flannel-ds-amd64-h4sn6 1/1 Running 13 6d6h
kube-system kube-flannel-ds-amd64-m92wp 1/1 Running 11 6d6h
kube-system kube-proxy-28dwj 1/1 Running 9 6d6h
kube-system kube-proxy-c875m 1/1 Running 8 6d7h
kube-system kube-proxy-stg6w 1/1 Running 10 6d6h
kube-system kube-scheduler-k8s-master-001 1/1 Running 9 6d7h
kubernetes-dashboard dashboard-metrics-scraper-7b8b58dc8b-nr5fz 1/1 Running 7 6d1h
kubernetes-dashboard kubernetes-dashboard-755dcb9575-9kg7p 1/1 Running 9 6d1h
[root@k8s-master-001 ~]# kubectl get service --all-namespaces # 或者 kubectl get service -A
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 6d7h
kube-system kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 6d7h
kubernetes-dashboard dashboard-metrics-scraper ClusterIP 10.104.12.221 <none> 8000/TCP 6d1h
kubernetes-dashboard kubernetes-dashboard NodePort 10.110.157.29 <none> 443:30001/TCP 6d1h
#1.按类型和名称指定资源:
1)查看一个资源类型中的多个资源
[root@k8s-master ~]# kubectl get pod -n kube-system coredns-6d99d5879f-2pvbr kube-proxy-28dwj
NAME READY STATUS RESTARTS AGE
coredns-6d99d5879f-2pvbr 1/1 Running 1 3d17h
kube-proxy-28dwj 1/1 Running 9 3d15h
2)查看多个资源类型
[root@k8s-master-001 ~]# kubectl get svc,node
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 3d19h
service/nginx NodePort 10.96.95.61 <none> 80:46847/TCP 3d16h
NAME STATUS ROLES AGE VERSION
node/k8s-master-001 Ready master 3d18h v1.18.8
node/k8s-master-002 Ready master 3d18h v1.18.8
node/k8s-master-003 Ready master 3d18h v1.18.8
node/k8s-node-001 Ready node 3d16h v1.18.8
node/k8s-node-002 Ready node 3d16h v1.18.8
#2.使用一个或多个文件指定资源:-f file1 -f file2 -f file<#>
使用YAML而不是JSON,因为YAML更容易使用,特别是对于配置文件。
[root@k8s-master-001 ~]# kubectl get pod -f pod.yaml
三、kubectl查看类命令
1.获取节点和服务版本信息
[root@k8s-master-001 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
k8s-master-001 Ready master 3d18h v1.18.8
k8s-master-002 Ready master 3d18h v1.18.8
k8s-master-003 Ready master 3d18h v1.18.8
k8s-node-001 Ready node 3d16h v1.18.8
k8s-node-002 Ready node 3d16h v1.18.8
2.获取节点和服务版本信息,并查看附加信息
[root@k8s-master-001 ~]# kubectl get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
k8s-master-001 Ready master 3d18h v1.18.8 172.16.1.110 <none> CentOS Linux 7 (Core) 5.4.147-1.el7.elrepo.x86_64 docker://20.10.8
k8s-master-002 Ready master 3d18h v1.18.8 172.16.1.111 <none> CentOS Linux 7 (Core) 5.4.147-1.el7.elrepo.x86_64 docker://20.10.8
k8s-master-003 Ready master 3d18h v1.18.8 172.16.1.112 <none> CentOS Linux 7 (Core) 5.4.147-1.el7.elrepo.x86_64 docker://20.10.8
k8s-node-001 Ready node 3d16h v1.18.8 172.16.1.113 <none> CentOS Linux 7 (Core) 5.4.147-1.el7.elrepo.x86_64 docker://20.10.8
k8s-node-002 Ready node 3d16h v1.18.8 172.16.1.114 <none> CentOS Linux 7 (Core) 5.4.147-1.el7.elrepo.x86_64 docker://20.10.8
3.获取pod信息,默认是default名称空间
[root@k8s-master-001 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-f89759699-sd6bq 1/1 Running 1 3d16h
4.获取pod信息
#1.获取pod信息,默认是default名称空间,并查看附加信息【如:pod的IP及在哪个节点运行】
[root@k8s-master-001 ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-f89759699-sd6bq 1/1 Running 1 3d16h 10.241.184.2 k8s-node-002 <none> <none>
#2.获取指定名称空间的pod
[root@k8s-master-001 ~]# kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
coredns-6d99d5879f-2pvbr 1/1 Running 1 3d23h
#3.获取指定名称空间中的指定pod
[root@k8s-master-001 ~]# kubectl get pod -n kube-system coredns-6d99d5879f-2pvbr
NAME READY STATUS RESTARTS AGE
coredns-6d99d5879f-2pvbr 1/1 Running 1 3d23h
#4.获取所有名称空间的pod
[root@k8s-master-001 ~]# kubectl get pod -A
NAMESPACE NAME READY STATUS RESTARTS AGE
default nginx-f89759699-sd6bq 1/1 Running 1 3d22h
kube-system coredns-6d99d5879f-2pvbr 1/1 Running 1 3d23h
#5.查看pod的详细信息,以yaml格式或json格式显示
[root@k8s-master-001 ~]# kubectl get pods -o yaml
[root@k8s-master-001 ~]# kubectl get pods -o json#6.查看pod的标签信息
[root@k8s-master-001 ~]# kubectl get pod -A --show-labels
NAMESPACE NAME READY STATUS RESTARTS AGE LABELS
default nginx-f89759699-sd6bq 1/1 Running 1 3d22h app=nginx,pod-template-hash=f89759699
kube-system coredns-6d99d5879f-2pvbr 1/1 Running 1 3d23h k8s-app=kube-dns,pod-template-hash=6d99d5879f
#7.根据Selector(label query)来查询pod
[root@k8s-master-001 ~]# kubectl get pod -A --selector='k8s-app=kube-dns'
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-6d99d5879f-2pvbr 1/1 Running 1 4d
#8.查看运行pod的环境变量
[root@k8s-master-001 ~]# kubectl exec nginx-f89759699-sd6bq -- env#9.查看指定pod的日志
[root@k8s-master-001 ~]# kubectl logs -f --tail 100 -n kube-system coredns-6d99d5879f-2pvbr
5.获取service信息
#1.查看所有名称空间的service信息
[root@k8s-master-001 ~]# kubectl get svc -A
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4d2h
default nginx NodePort 10.96.95.61 <none> 80:46847/TCP 3d23h
kube-system kube-dns ClusterIP 10.96.0.2 <none> 53/UDP,53/TCP,9153/TCP 4d1h
#2.查看默认名称空间的service信息
[root@k8s-master-001 ~]# kubectl get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 4d2h
nginx NodePort 10.96.95.61 <none> 80:46847/TCP 3d23h
#3.查看指定名称空间的service信息
[root@k8s-master-001 ~]# kubectl get svc -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.2 <none> 53/UDP,53/TCP,9153/TCP 4d1h
6.查看状态信息
#1.查看component statuses信息(组件状态)
[root@k8s-master-001 ~]# kubectl get cs#2.查看所有config maps信息(配置映射)
[root@k8s-master-001 ~]# kubectl get cm -A#3.查看所有service accounts信息(服务账号)
[root@k8s-master-001 ~]# kubectl get sa -A#4.查看所有daemonsets信息(守护程序)
[root@k8s-master-001 ~]# kubectl get ds -A#5.查看所有deployments信息(部署应用)
[root@k8s-master-001 ~]# kubectl get deploy -A#6.查看所有replicasets信息(复制集)
[root@k8s-master-001 ~]# kubectl get rs -A#7.查看所有statefulsets信息
[root@k8s-master-001 ~]# kubectl get sts -A#8.查看所有jobs信息
[root@k8s-master-001 ~]# kubectl get jobs -A#9.查看所有ingresses信息
[root@k8s-master-001 ~]# kubectl get jobs -A#10.查看有哪些名称空间
[root@k8s-master-001 ~]# kubectl get ns
7. 查看pod的描述信息
[root@k8s-master-001 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-f89759699-sd6bq 1/1 Running 1 4d15h
#1.查看pod的描述信息
[root@k8s-master-001 ~]# kubectl describe pod nginx-f89759699-sd6bq
[root@k8s-master-001 ~]# kubectl describe pod -n kube-system coredns-6d99d5879f-2pvbr#2.查看指定名称空间中指定deploy的描述信息
[root@k8s-master-001 ~]# kubectl describe deploy -n kube-system coredns#3.查看node或pod的资源使用情况(需要heapster 或metrics-server支持)
[root@k8s-master-001 ~]# kubectl top node
[root@k8s-master-001 ~]# kubectl top pod
#1.wide示例
[root@k8s-master-001 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-f89759699-sd6bq 1/1 Running 1 5d
[root@k8s-master-001 ~]# kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-f89759699-sd6bq 1/1 Running 1 5d 10.241.184.2 k8s-node-002 <none> <none>
#2.yaml示例
[root@k8s-master-001 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-f89759699-sd6bq 1/1 Running 1 5d
[root@k8s-master-001 ~]# kubectl get pod -o yaml
apiVersion: v1
items:
- apiVersion: v1
kind: Pod
metadata:
creationTimestamp: "2021-09-22T10:22:13Z"
generateName: nginx-f89759699-
labels:
app: nginx
pod-template-hash: f89759699
managedFields:
- apiVersion: v1
fieldsType: FieldsV1
fieldsV1:
f:metadata:
………………
#3.json示例
[root@k8s-master-001 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-f89759699-sd6bq 1/1 Running 1 5d
[root@k8s-master ~]# kubectl get pod -o json
{
"apiVersion": "v1",
"items": [
{[root@k8s-master-001 ~]# kubectl get pod -o json
{
"apiVersion": "v1",
"items": [
{
"apiVersion": "v1",
"kind": "Pod",
"metadata": {
"creationTimestamp": "2021-09-22T10:22:13Z",
"generateName": "nginx-f89759699-",
"labels": {
"app": "nginx",
………………
#4.name示例
[root@k8s-master-001 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-f89759699-sd6bq 1/1 Running 1 5d
[root@k8s-master-001 ~]# kubectl get pod -o name
pod/nginx-f89759699-sd6bq
#5.custom-columns示例
[root@k8s-master-001 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-f89759699-sd6bq 1/1 Running 1 5d
[root@k8s-master-001 ~]# kubectl get pods -o custom-columns=NAME:.metadata.name,UID:.metadata.uid,imageName:.spec.containers[0].image
NAME UID imageName
nginx-f89759699-sd6bq 069dc771-65f2-47d4-9ff9-866297a69f06 nginx
说明:custom-columns=key:value;其中key表示列明;value表示要显示信息,这个value信息可以通过-o json或-o yaml获取。
#6.custom-columns-file示例
[root@k8s-master-001 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-f89759699-sd6bq 1/1 Running 1 5d
# 要显示的列明和数据来源
[root@k8s-master-001 ~]# cat custom-col.conf
NAME UID imageName containerPort
metadata.name metadata.uid spec.containers[0].image spec.containers[0].ports[0].containerPort
[root@k8s-master-001 ~]# kubectl get pod -o custom-columns-file=custom-col.conf
NAME UID imageName containerPort
nginx-f89759699-sd6bq 069dc771-65f2-47d4-9ff9-866297a69f06 registry.cn-beijing.aliyuncs.com/google_registry/nginx:1.17 80
#7.jsonpath示例
[root@k8s-master-001 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-f89759699-sd6bq 1/1 Running 1 5d
[root@k8s-master-001 ~]# kubectl get pods -o jsonpath='{.items[0].metadata.name},{.items[0].spec.containers[0].image}'
nginx-f89759699-sd6bq,nginx
#8.jsonpath-file示例
[root@k8s-master-001 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-f89759699-sd6bq 1/1 Running 1 5d
# 要显示的数据来源
[root@k8s-master-001 ~]# cat custom-json.conf
{.items[0].metadata.name},{.items[0].spec.containers[0].image},{.items[0].spec.containers[0].ports[0].containerPort}
[root@k8s-master-001 ~]# kubectl get pod -o jsonpath-file=custom-json.conf
nginx-f89759699-sd6bq,registry.cn-beijing.aliyuncs.com/google_registry/nginx:1.17,80
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)