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

1、kubectl用法概述

kubectl命令行語法以下:node

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可操做的資源對象類型json

資源對象的名稱 縮寫
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

2、kubectl子命令

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

3、kubectl參數

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

4、kubectl輸出格式

kubectl命令能夠用多種格式對結果進行顯示,輸出的格式經過-o參數指定:app

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

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

kubectl get pod <pod-name> -o wide

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

kubectl get pod <pod-name> -o yaml

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

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

5、kubectl操做示例

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

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

二、根據<directory>目錄下全部.yaml、.yml、.json文件的定義進行建立操做

kubectl create -f <directory>

三、查看全部Pod列表

kubectl get pods

四、查看rc和service列表

kubectl get rc,service

五、顯示Node的詳細信息

kubectl describe nodes <node-name>

六、顯示Pod的詳細信息

kubectl describe pods/<pod-name>

七、顯示由RC管理的Pod信息

kubectl describe pods <rc-name>

八、刪除基於pod.yaml文件定義的Pod

kubectl delete -f pod.yaml

九、刪除全部包含某個label的Pod和Service

kubectl delete pods,services -l name=<label-name>

十、刪除全部Pod

kubectl delete pods --all

十一、在Pod的容器裏執行date命令,默認使用Pod中的第1個容器執行

kubectl exec <pod-name> date

十二、指定Pod中某個容器執行date命令

kubectl exec <pod-name> -c <container-name> date

1三、以bash方式登錄到Pod中的某個容器裏

kubectl exec -it <pod-name> -c <container-name> /bin/bash

1四、查看容器輸出到stdout的日誌

kubectl logs <pod-name>

1五、跟蹤查看容器的日誌,至關於tail -f命令的結果

kubectl logs -f <pod-name> -c <container-name>
相關文章
相關標籤/搜索