初識Kubernetes(K8s):kubectl命令使用詳解

一、kubectl用法概述

kubectl命令行語法如下:

kubectl [command] [type] [name] [flags]
參數說明:
command:子命令,用於管理和操作Kubernetes集羣資源對象的命令。例如:create、delete、describe、get、apply等。
type:資源對象的類型,區分大小寫,能以單數形式、複數形式或者簡寫形式表示。
kubectl get pod pod1  # 單數形式
kubectl get pods pod1   # 複數形式
kubectl get po pod1   #簡寫形式
name:資源對象的名稱,區分大小寫,如果不指定名稱,則系統返回屬於type的全部對象的列表。
flags:kubectl子命令的可選參數,例如使用“-s”指定apiserver的URL地址而不用默認值。

表1:kubectl可操作的資源對象類型

資源對象的名稱 縮寫
clusters
componentstatuses cs
configmaps cm
daemonsets ds
deployments deploy
endpoints ep
events ev
horizontalpodautoscalers hpa
ingresses ing
Jobs
limitranges limits
nodes no
namespaces ns
networkpolicies
statefulsets
persistentvolumeclaims pvc
persistentvolumes pv
pods po
podsecuritypolicies psp
podtemplates
replicasets rs
replicationcontrollers rc
cronjob
secrets
serviceaccounts
service svc
storageclasses sc
thirdpartyresources

二、kubectl子命令

kuberctl的子命令非常豐富,包括資源對象的創建、刪除、查看、修改、配置、運行等。
表2:kubectl子命令語法
初識Kubernetes(K8s):kubectl命令使用詳解
初識Kubernetes(K8s):kubectl命令使用詳解
初識Kubernetes(K8s):kubectl命令使用詳解

三、kubectl參數

表3:kubectl命令行的公共啓動參數
初識Kubernetes(K8s):kubectl命令使用詳解
每個子命令(如create、delete、get等)還有特定的flags參數,可以通過kubectl [command] --help命令進行查看。

四、kubectl輸出格式

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

kubectl [command] [TYPE] [NAME] -o=<output_format>

表4:kubectl命令的輸出格式
初識Kubernetes(K8s):kubectl命令使用詳解
常用的輸出格式示例如下:
(1)顯示Pod的更多信息

kubectl get pod <pod-name> -o wide

(2)以yaml格式顯示Pod的詳細信息

kubectl get pod <pod-name> -o yaml

(3)以自定義列名顯示Pod的信息

kubectl get pod <pod-name> -o=custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion

(4)基於文件的自定義列名輸出

kubectl get pods <pod-name> -o=custom-columns-file=template.txt
template.txt文件的內容爲:
NAME              RSRC
metadata.name      metadata.resourceVersion
輸出結果爲:
NAME        RSRC
Pod-name     52305

另外,還可以將輸出結果按某個字段排序,通過--sort-by參數以jsonpath表達式進行指定:

kubectl [command] [TYPE] [NAME] --sort-by=<jsonpath_exp>

例如,按照名字進行排序

kubectl get pods --sort-by=.metadata.name

五、kubectl操作示例

1、根據yaml配置文件一次性創建service和rc

kubectl create -f my-service.yaml -f my-rc.yaml

2、根據<directory>目錄下所有.yaml、.yml、.json文件的定義進行創建操作

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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章