天天看點

K8s kubectl 常用指令總結 轉載:https://mp.weixin.qq.com/s/iUqjKghj64KrSfmsuw9fOw

我們已經知道kubernetes的常用術語和一些思想,要想進行二次開發,或者簡單的說跑起來,運作一個小執行個體,那就要求我們需要對ta的常用操作相當的熟悉。入手了解kubectl是非常快速的一個方式,下面,我們就來看看kubectl的指令行操作的常用方式。

K8s kubectl 常用指令總結 轉載:https://mp.weixin.qq.com/s/iUqjKghj64KrSfmsuw9fOw
1.kubectl用法詳解

1. kubectl文法

kubectl [command] [Type] [NAME] [flags]      
  • command: 子指令,用于操作kubernetes叢集資源對象的指令,例如:create, delete, describe, get, apply等等
  • TYPE: 資源對象的類型,區分大小寫,能以單數,複數或者簡寫形式表示。例如以下3中TYPE是等價的。
kubectl get pod pod1              kubectl get pods pod1              kubectl get po pod1           
  • NAME:資源對象的名稱,區分大小寫。如果不指定名稱,系統則将傳回屬于TYPE的全部對象的清單,例如:kubectl get pods 将傳回所有pod的清單
  • flags: kubectl 子指令的可選參數,例如使用 -s 指定api server的url位址而不用預設值。

kubectl可操作的資源對象類型以及縮寫:

K8s kubectl 常用指令總結 轉載:https://mp.weixin.qq.com/s/iUqjKghj64KrSfmsuw9fOw

在一個指令行中也可以同時對多個資源對象進行操作,以多個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 rc1.yaml -f service1.yaml           

2.kubectl 子指令詳解

kebectl的子指令非常豐富,涵蓋了對kubernetes叢集的主要操作,包括資源對象的建立、删除、檢視、修改、配置、運作等,詳細的子指令如表2.10所示:

K8s kubectl 常用指令總結 轉載:https://mp.weixin.qq.com/s/iUqjKghj64KrSfmsuw9fOw

3.kubectl參數清單

Kubectl指令行的公共啟動參數如下所示:

K8s kubectl 常用指令總結 轉載:https://mp.weixin.qq.com/s/iUqjKghj64KrSfmsuw9fOw

4.Kubectl 輸出格式

kubectl指令可以用多種格式對結果進行顯示,輸出的格式通過-o參數指定:

K8s kubectl 常用指令總結 轉載:https://mp.weixin.qq.com/s/iUqjKghj64KrSfmsuw9fOw
kubectl create -f my-service.yaml -f my-rc.yaml           
kubectl create -f <directory>           
3、檢視所有Pod清單      
kubectl get pods           
4、檢視rc和service清單      
kubectl get rc,service           
5、顯示Node的詳細資訊      
kubectl describe nodes <node-name>           
6、顯示Pod的詳細資訊      
kubectl describe pods/<pod-name>           
7、顯示由RC管理的Pod資訊      
kubectl describe pods <rc-name>           
8、删除基于pod.yaml檔案定義的Pod      
kubectl delete -f pod.yaml           
9、删除所有包含某個label的Pod和Service      
kubectl delete pods,services -l name=<label-name>           
10、删除所有Pod      
kubectl delete pods --all           
11、在Pod的容器裡執行date指令,預設使用Pod中的第1個容器執行      
kubectl exec <pod-name> date           
12、指定Pod中某個容器執行date指令      
kubectl exec <pod-name> -c <container-name> date           
13、以bash方式登陸到Pod中的某個容器裡      
kubectl exec -it <pod-name> -c <container-name> /bin/bash           
14、檢視容器輸出到stdout的日志      
kubectl logs <pod-name>           
15、跟蹤檢視容器的日志,相當于tail -f指令的結果      
kubectl logs -f <pod-name> -c <container-name>