您好,登錄后才能下訂單哦!
kubectl在使用Kubernetes過程中的重要性不言而喻,掌握其命令行也是許多IT人員的“必修課程”。
而互聯網上關于kubectl的文章多如牛毛,本文秉持著“濃縮就是精華”的原則,精簡精簡再精簡,挑出你一定會用到的7條命令!同時還介紹了kubectl命令的基本語法,幫助你快速上手kubectl!
kubectl是Kubernetes的命令行工具,人們通常通過它與Kubernetes進行交互。通過kubectl能夠對集群本身進行管理,并能夠在集群上進行容器化應用的安裝部署。我們在《使用Kubectl管理Kubernetes的全解教程》一文中詳細介紹了在不同的操作系統中如何安裝kubectl以及如何使用RKE和Rancher創建配置文件。在本文中,我們將介紹kubectl中最常使用的命令。
首先,讓我們來看看kubectl是如何工作的:
一個kubectl命令可以執行一個行動,如get
、create
或者describe
一個行動可以在一個資源上執行,如Deployment
kubectl an_action a_resource a_resource_name –flags
在大部分情況下,名稱和標志并不是必要的。例如,要獲得關于現有pod的信息,你通常可以直接運行這一命令:kubectl get pods
。
這里有一個小技巧:如果你不想每次都手動輸入kubectl,可以制作一個Bash alias。設置alias k='kubectl'
,之后只需輸入“k”即可代替kubectl。
接下來,我們來看看最常見的kubectl資源類型及其縮寫(括號內為縮寫)。
pods (po)
nodes(no)
deployments (deploy)
replicasets(rs)
daemonsets(ds)
statefulsets(sts)
jobs
cronjobs(cj)
services(svc)
persistentvolumes(pv)
你還需要知道的名稱是all
和event
。all
是指所有已存在的資源,kubectl get all
顯示運行中的Pod、Service、Deployment以及ReplicaSet的關鍵信息。這個命令十分方便。
類似地,kubectl get events顯示了event的歷史記錄。它像是Kubernetes級別的日志,而不是容器級別的日志。
如果你想要看到更多類型的kubectl資源,請查閱官方文檔:
https://kubernetes.io/docs/reference/kubectl/overview/
現在讓我們來看看在資源上執行的常見行動。
help
—獲取幫助
get
— 顯示有關一個或多個資源的信息
describe
—顯示關于一個或多個資源的詳細信息
logs
—顯示容器日志
exec
—進入容器中一個正在運行的進程
apply
—創建或選擇一個資源
delete
—刪除一個或多個資源
現在,讓我們來簡單了解每個命令。
help
在命令之后輸入--help
以獲取該命令的幫助。如,kubectl get pods –help
get
kubectl get all
顯示了關于運行中的pod、service、deployment以及Replicaset的關鍵信息。這是檢查事物狀態的首選命令,你可以將get
和單個對象一起使用,并添加--watch
標志以實時觀察更新。
describe
kubectl describe all
顯示大量與你的集群相關的詳細信息,你也可以將describe
與單個對象一起使用。這個命令在debug過程中將大有用處。
logs
logs
命令需要一個pod名稱。當在多個pod中時,使用-c my-container
標志來指定一個容器。使用--previous
標志來獲取不再運行的容器信息。
exec
exec
幫助你debug一個容器進程,它允許你通過帶-it
的偽終端在容器內執行進程。例如,要在my_pod中進入容器并運行Bash,請輸入kubectl exec -it my_pod bash
。
apply
這一命令可以通過文件名或控制臺輸入,對資源進行配置。并且apply
能夠對集群資源進行聲明式管理:如果資源不存在,apply
將創建它;如果它存在,apply
將更改它。此外,apply
還能夠添加Service到適用的資源或者通過添加Pod自動化彈性伸縮的Deployment。
請注意,你可以使用create
來創建一個Deployment并且使用expose
創建一個Service。但相對來說,無論對于文件本身還是之后需要重新使用來說,使用帶有apply
的YAML文件是更好選擇。apply
是創建和更新資源的“Swiss knife”。
delete
kubectl delete pod my_pod
這一命令可用于刪除名稱為my_pod的Pod。
要刪除所有相同類型的資源,需要使用--all
標志。例如,使用kubectl delete rs –all
可以刪除所有ReplicaSet。請注意,如果你嘗試這一操作,那么要先刪除Deployment,否則ReplicaSet將會重新啟動。
現在你已經了解K8s的關鍵命令了,如果你還想查看更多的kubectl命令,請參閱:
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。