kubectl作为客户端工具,可以让用户通过命令行对kubernetes集群进行操作,本文将介绍该工具的简单用法和常用命令。
一、kubectl用法概述
kubectl命令使用语法格式如下:
kubectl [command] [TYPE] [NAME] [flags]
其中,command、TYPE、NAME、flags的含义如下:
- command:子命令,用于操作对象,例如:create、get、describe、delete等。
- TYPE:资源对象的类型,区分大小写,能以单数、复数或者简写形式表示,以Pod资源为例
# 简写
kubectl get po pod1
# 单数
kubectl get pod pod1
# 复数
kubectl get pods pod1
以上三种形式是等价的,都是获取pod1对象。
- NAME:资源对象的名字,区分大小写,如果不指定名称,系统则返回属于TYPE类型的全部对象列表,例如运行kubectl get pods 命令将返回所有Pod的列表。
- flags:kubectl子命令的可选参数,例如使用-s或者--server设置APIServer的URL地址,而不使用默认地址。
二、常用子命令介绍
2.1 查看支持的子命令
直接在命令行上运行kubectl,则会返回kubectl支持的所有子命令,如下图:
注:上面为部分命令截图
2.2 查看可以操作的k8s对象
可以使用kubectl api-resources命令查看k8s可以操作的对象,如下图:
注:上面为部分截图
2.3 常用操作示例
kubectl apply
基于yaml资源清单文件创建或者修改资源对象,以pod为例:
创建一个资源清单
# vim pod-nginx.yaml
apiVersion: v1
kind: Pod
metadata:
name: pod-nginx
spec:
containers:
- image: nginx
name: nginx
ports:
- containerPort: 80
创建Pod
kubectl apply -f pod-nginx.yaml
kubectl get
查看所有Pod
kubectl get pods
查看所有Pod,包括附加信息(例如:Node IP)
kubectl get pods -o wide
kubectl describe
显示一个或者多个资源详细信息
# 显示所有Pod详细信息
kubectl describe pods
# 显示指定Pod的详情
kubectl describe pod pod-nginx
kubectl exec
在Pod的容器中运行命令,例如在pod-nginx中第一个容器里运行date命令并打印结果:
kubectl exec pod-nginx -- date
在Pod的第一个容器里运行bash并进入交互式TTY终端界面执行命令:
kubectl exec -it pod-nginx -- /bin/bash
kubectl logs
查看Pod中容器的日志
kubectl logs pod-nginx
kubectl delete
删除资源对象,以Pod资源对象为例
kubectl delete pod pod-nginx
三、总结
本文介绍了kubectl最常用的几个命令,由于kubectl的命令很多,后续文章将会结合具体资源和使用场景逐步介绍。
本专栏知识点是通过<零声教育>的系统学习,进行梳理总结写下文章,对云原生/c/c++linux课程感兴趣的读者,可以点击链接,查看详情,链接: 传送门