kubectl常用命令大全详解

本文详细介绍了kubectl命令的使用,包括查看不同命名空间的pod、节点信息、服务详情、资源设置、滚动更新、自动伸缩、证书管理、资源利用率监控以及故障排查等操作,是Kubernetes管理员日常操作的实用指南。
摘要由CSDN通过智能技术生成

查看指定命名空间pod列表

  • 查看所有命名空间

[root@master ~]# kubectl get ns

NAME STATUS AGE

default Active 4d6h

kube-node-lease Active 4d6h

kube-public Active 4d6h

kube-system Active 4d6h

[root@master ~]#

  • -n跟上命名空间【如果不知道为什么要指定,接着往下看即可】

[root@master ~]# kubectl get pod -n kube-system

NAME READY STATUS RESTARTS AGE

kube-scheduler-master 1/1 Running 12 4d6h

metrics-server-bcfb98c76-w87q9 1/1 Running 0 35m

[root@master ~]#

查看pod列表

  • 这个命令查看的默认名称是:kube-public

[root@master ~]# kubectl get pod

  • 但如果pod不是运行在kube-public上,就需要指定名称才能查看了,否则报错。

查看pod报错:No resources found in kube-public namespace.

  • 先说一下查看pod运行在哪个命名空间上的命令:kubectl get pod --all-namespaces -o wide【不加 --all-namespaces就是仅查看当前所在命名空间的pod了】

结果中NAMESPACE就是了。

[root@master ~]# kubectl get pod --all-namespaces -o wide

NAMESPACE NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES

kube-system calico-kube-controllers-78d6f96c7b-p4svs 1/1 Running 0 4d5h 10.244.219.67 master

  • 上面说过,如果pod运行的空间不是kube-public,直接执行 kubectl get pod就会报错,这时候需要加上-n并跟上命名名称【这个名称就是上面看到的NAMESPACE】

[root@master ~]# kubectl get ns # 这个命令是查看所有命名空间

NAME STATUS AGE

default Active 4d6h

kube-node-lease Active 4d6h

kube-public Active 4d6h

kube-system Active 4d6h

[root@master ~]#

[root@master ~]# kubectl get pod

No resources found in default namespace.

[root@master ~]#

[root@master ~]# kubectl get pod -n kube-system

NAME READY STATUS RESTARTS AGE

calico-kube-controllers-78d6f96c7b-p4svs 1/1 Running 0 4d5h

calico-node-cc4fc 1/1 Running 18 4d4h

calico-node-stdfj 1/1 Running 20 4d5h

calico-node-zhhz7 1/1 Running 1 4d5h

coredns-545d6fc579-6kb9x 1/1 Running 0 4d6h

coredns-545d6fc579-v74hg 1/1 Running 0 4d6h

etcd-master 1/1 Running 1 4d6h

kube-apiserver-master 1/1 Running 1 4d6h

kube-controller-manager-master 1/1 Running 11 4d6h

kube-proxy-45qgd 1/1 Running 1 4d4h

kube-proxy-fdhpw 1/1 Running 1 4d6h

kube-proxy-zf6nt 1/1 Running 1 4d6h

kube-scheduler-master 1/1 Running 12 4d6h

metrics-server-bcfb98c76-w87q9 1/1 Running 0 25m

[root@master ~]#

显示pod节点的标签信息

[root@master ~]# kubectl get pod --show-labels

根据指定标签匹配到具体的pod

[root@master ~]# kubectl get pods -l app=example

查看node节点列表

[root@master ~]# kubectl get node

[root@master ~]# kubectl get nodes

显示node节点的标签信息

[root@master ~]# kubectl get node --show-labels

查看pod详细信息,也就是可以查看pod具体运行在哪个节点上(ip地址信息)

[root@master ~]# kubectl get pod -o wide

查看服务的详细信息,显示了服务名称,类型,集群ip,端口,时间等信息

[root@master ~]# kubectl get svc

[root@master ~]# kubectl get svc -n kube-system

查看所有命名空间

[root@master ~]# kubectl get ns

[root@master ~]# kubectl get namespaces

查看所有pod所属的命名空间

[root@master ~]# kubectl get pod --all-namespaces

查看所有pod所属的命名空间并且查看都在哪些节点上运行

[root@master ~]# kubectl get pod --all-namespaces -o wide

查看目前所有的replica set,显示了所有的pod的副本数,以及他们的可用数量以及状态等信息

[root@master ~]# kubectl get rs

查看已经部署了的所有应用,可以看到容器,以及容器所用的镜像,标签等信息

[root@master ~]# kubectl get deploy -o wide

[root@master ~]# kubectl get deployments -o wide

查看事件【get ev】

具体使用场景未知,我是在做【Kubernetes】k8s的健康性检查详细说明中readiness probe时候使用到这个命令了,记录一下。

[root@master probe]# kubectl get ev | tail -n 10

15m Normal Scheduled pod/pod6 Successfully assigned probe/pod6 to node2

15m Normal Pulled pod/pod6 Container image “nginx” already present on machine

15m Normal Created pod/pod6 Created container liveness

15m Normal Started pod/pod6 Started container liveness

13m Normal Killing pod/pod6 Stopping container liveness

12m Normal Scheduled pod/pod6 Successfully assigned probe/pod6 to node2

12m Normal Pulled pod/pod6 Container image “nginx” already present on machine

12m Normal Created pod/pod6 Created container liveness

12m Normal Started pod/pod6 Started container liveness

1s Warning Unhealthy pod/pod6 Readiness probe failed: cat: /tmp/healthy: No such file or directory

[root@master probe]#

run 命令:在集群中创建并运行一个或多个容器镜像。


语法:

run NAME --image=image [–env=“key=value”] [–port=port] [–replicas=replicas] [–dry-run=bool] [–overrides=inline-json] [–command] – [COMMAND] [args…]

示例,运行一个名称为nginx,副本数为3,标签为app=example,镜像为nginx:1.10,端口为80的容器实例

[root@master ~]# kubectl run nginx --replicas=3 --labels=“app=example” --image=nginx:1.10 --port=80

示例,运行一个名称为nginx,副本数为3,标签为app=example,镜像为nginx:1.10,端口为80的容器实例,并绑定到k8s-node1上

[root@master ~]# kubectl run nginx --image=nginx:1.10 --replicas=3 --labels=“app=example” --port=80 --overrides=‘{“apiVersion”:“apps/v1”,“spec”:{“template”:{“spec”:{“nodeSelector”:{“kubernetes.io/hostname”:“k8s-node1”}}}}}’

更详细用法参见:http://docs.kubernetes.org.cn/468.html

expose 命令:创建一个service服务,并且暴露端口让外部可以访问


创建一个nginx服务并且暴露端口让外界可以访问

[root@master ~]# kubectl expose deployment nginx --port=88 --type=NodePort --target-port=80 --name=nginx-service

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值