k8s常用命令
一,kubectl 命令行的语法如下:
- $ kubectl [command] [TYPE] [NAME] [flags]
- 上面的命令是: kubectl命令行中,指定执行什么操作(command),指定什么类型资源对象(type),指定此类型的资源对象名称(name),指定可选参数(flags),后面的参数就是为了修饰那个唯一的对象
- 属于典型的英文语法,比如你是老师,你说,小明(kubectl)买(command)方便面(type)老坛酸菜方便面(name)桶装的(flag)。命令的根本原则是准确性,不能有异议!
(2) TYPE: 资源对象的类型,区分大小写,能以单数形式,复数形式或者简写形式表示。例如以下3种TYPE是等价的。
- $ kubectl get pod pod1
- $ kubectl get pods pod1
- $ kubectl get po pod1
(4) flags: kubectl 子命令的可选参数,例如使用"-s" 指定apiserver 的URL地址
在一个命令行中也可以同时对多个资源对象进行操作,以多个Type和NAME的组合表示,实例如下:
获取多个pod的信息:
获取多个pod的信息:
- $ kubectl get pods pod1 pod2
- $ kubectl get pod/pod1 rc/rc1
- $ kubectl get pod -f pod1.yaml -f pod2.yaml
- $ kubectl create -f pod1.yaml -f rc2.yaml -f servicel.yaml
二,常用的kubectl命令
kubectl get - 列出可用资源
- 列出所有的pod : kubectl get pods --all-namespaces
- 列出所有的job : kubectl get job --all-namespaces
kubectl describe - 显示有关资源的详细信息
- kubectl describe pod nvjob-lnrxj -n default
- -n default 是指定namespace为default里的pod,是语法中的flag
kubectl logs - 从 Pod 中的容器打印日志
- 这个特殊一点哦,这个不用指定TYPE,因为kubeclt logs 默认就是pod类型,所以 kubectl logs pod 会报错,"Error from server (NotFound): pods "pod" not found"
- kubectl logs calijob -n calib
kubectl exec - 在 Pod 中的容器执行命令
- 和log一样,不用指明type,默认是pod : kubectl exec <pod_name> -n <namespace> date
kubectl delete - 在 Pod 中的容器执行命令
- kubectl delete pod cali-2 -n calib
- 批量删除namespace 是calib中 状态为Error的所有pod:kubectl get pods -n calib | grep Error | awk '{print $1}' | xargs kubectl delete pod -n calib(注意 “Error”,“Completed”状态得首字母都是大写哦)
全世界的程序员们联合起来吧!