k8s常用命令


一,kubectl 命令行的語法如下:
  • $ kubectl [command]  [TYPE]  [NAME] [flags]
  • 上面的命令是: kubectl命令行中,指定執行什么操作(command),指定什么類型資源對象(type),指定此類型的資源對象名稱(name),指定可選參數(flags),后面的參數就是為了修飾那個唯一的對象
  • 屬於典型的英文語法,比如你是老師,你說,小明(kubectl)買(command)方便面(type)老壇酸菜方便面(name)桶裝的(flag)。命令的根本原則是准確性,不能有異議!
(1) command: 子命令,用於操作k8s集群資源對象的命令,例如create,delete,describe ,get ,apply 等
(2) TYPE:  資源對象的類型,區分大小寫,能以單數形式,復數形式或者簡寫形式表示。例如以下3種TYPE是等價的。
  • $ kubectl get  pod pod1
  • $ kubectl get pods pod1
  • $ kubectl get po pod1
(3) NAME: 資源對象的名稱,區分大小寫。如果不指定名稱,則系統將返回屬於TYPE的全部對象的列表。例如$ kubectl get pods 將返回默認namespaces下所有的pod列表
(4) flags: kubectl 子命令的可選參數,例如使用"-s" 指定apiserver 的URL地址
在一個命令行中也可以同時對多個資源對象進行操作,以多個Type和NAME的組合表示,實例如下:
獲取多個pod的信息:
  • $ kubectl get pods pod1 pod2
獲取多個對象的信息:
  • $ kubectl get pod/pod1 rc/rc1
同時應用多個yaml文件,以多個-f file參數表示:
  • $ 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”狀態得首字母都是大寫哦)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM