kubectl在使用Kubernetes過程中的重要性不言而喻,掌握其命令行也是許多IT人員的“必修課程”。
而互聯(lián)網(wǎng)上關(guān)于kubectl的文章多如牛毛,本文秉持著“濃縮就是精華”的原則,精簡(jiǎn)精簡(jiǎn)再精簡(jiǎn),挑出你一定會(huì)用到的7條命令!同時(shí)還介紹了kubectl命令的基本語法,幫助你快速上手kubectl!
創(chuàng)新互聯(lián)主要從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)通川,10余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):18980820575
kubectl是Kubernetes的命令行工具,人們通常通過它與Kubernetes進(jìn)行交互。通過kubectl能夠?qū)罕旧磉M(jìn)行管理,并能夠在集群上進(jìn)行容器化應(yīng)用的安裝部署。我們?cè)凇妒褂肒ubectl管理Kubernetes的全解教程》一文中詳細(xì)介紹了在不同的操作系統(tǒng)中如何安裝kubectl以及如何使用RKE和Rancher創(chuàng)建配置文件。在本文中,我們將介紹kubectl中最常使用的命令。
首先,讓我們來看看kubectl是如何工作的:
一個(gè)kubectl命令可以執(zhí)行一個(gè)行動(dòng),如get
、create
或者describe
一個(gè)行動(dòng)可以在一個(gè)資源上執(zhí)行,如Deployment
kubectl an_action a_resource a_resource_name –flags
在大部分情況下,名稱和標(biāo)志并不是必要的。例如,要獲得關(guān)于現(xiàn)有pod的信息,你通??梢灾苯舆\(yùn)行這一命令:kubectl get pods
。
這里有一個(gè)小技巧:如果你不想每次都手動(dòng)輸入kubectl,可以制作一個(gè)Bash alias。設(shè)置alias k='kubectl'
,之后只需輸入“k”即可代替kubectl。
接下來,我們來看看最常見的kubectl資源類型及其縮寫(括號(hào)內(nèi)為縮寫)。
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
顯示運(yùn)行中的Pod、Service、Deployment以及ReplicaSet的關(guān)鍵信息。這個(gè)命令十分方便。
類似地,kubectl get events顯示了event的歷史記錄。它像是Kubernetes級(jí)別的日志,而不是容器級(jí)別的日志。
如果你想要看到更多類型的kubectl資源,請(qǐng)查閱官方文檔:
https://kubernetes.io/docs/reference/kubectl/overview/
現(xiàn)在讓我們來看看在資源上執(zhí)行的常見行動(dòng)。
help
—獲取幫助
get
— 顯示有關(guān)一個(gè)或多個(gè)資源的信息
describe
—顯示關(guān)于一個(gè)或多個(gè)資源的詳細(xì)信息
logs
—顯示容器日志
exec
—進(jìn)入容器中一個(gè)正在運(yùn)行的進(jìn)程
apply
—?jiǎng)?chuàng)建或選擇一個(gè)資源
delete
—?jiǎng)h除一個(gè)或多個(gè)資源
現(xiàn)在,讓我們來簡(jiǎn)單了解每個(gè)命令。
help
在命令之后輸入--help
以獲取該命令的幫助。如,kubectl get pods –help
get
kubectl get all
顯示了關(guān)于運(yùn)行中的pod、service、deployment以及Replicaset的關(guān)鍵信息。這是檢查事物狀態(tài)的首選命令,你可以將get
和單個(gè)對(duì)象一起使用,并添加--watch
標(biāo)志以實(shí)時(shí)觀察更新。
describe
kubectl describe all
顯示大量與你的集群相關(guān)的詳細(xì)信息,你也可以將describe
與單個(gè)對(duì)象一起使用。這個(gè)命令在debug過程中將大有用處。
logs
logs
命令需要一個(gè)pod名稱。當(dāng)在多個(gè)pod中時(shí),使用-c my-container
標(biāo)志來指定一個(gè)容器。使用--previous
標(biāo)志來獲取不再運(yùn)行的容器信息。
exec
exec
幫助你debug一個(gè)容器進(jìn)程,它允許你通過帶-it
的偽終端在容器內(nèi)執(zhí)行進(jìn)程。例如,要在my_pod中進(jìn)入容器并運(yùn)行Bash,請(qǐng)輸入kubectl exec -it my_pod bash
。
apply
這一命令可以通過文件名或控制臺(tái)輸入,對(duì)資源進(jìn)行配置。并且apply
能夠?qū)嘿Y源進(jìn)行聲明式管理:如果資源不存在,apply
將創(chuàng)建它;如果它存在,apply
將更改它。此外,apply
還能夠添加Service到適用的資源或者通過添加Pod自動(dòng)化彈性伸縮的Deployment。
請(qǐng)注意,你可以使用create
來創(chuàng)建一個(gè)Deployment并且使用expose
創(chuàng)建一個(gè)Service。但相對(duì)來說,無論對(duì)于文件本身還是之后需要重新使用來說,使用帶有apply
的YAML文件是更好選擇。apply
是創(chuàng)建和更新資源的“Swiss knife”。
delete
kubectl delete pod my_pod
這一命令可用于刪除名稱為my_pod的Pod。
要?jiǎng)h除所有相同類型的資源,需要使用--all
標(biāo)志。例如,使用kubectl delete rs –all
可以刪除所有ReplicaSet。請(qǐng)注意,如果你嘗試這一操作,那么要先刪除Deployment,否則ReplicaSet將會(huì)重新啟動(dòng)。
現(xiàn)在你已經(jīng)了解K8s的關(guān)鍵命令了,如果你還想查看更多的kubectl命令,請(qǐng)參閱:
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands