一,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”狀態得首字母都是大寫哦)