很簡單的,真的!
前篇介紹了 kubectl 的特性和使用場景,接下來就實際用用看吧!
先從取得資訊開始:
取得資源列表
基本句式:
kubectl get <資源類別>
# 範例
kubectl get namespace
kubectl get nodes
kubectl get pods
執行結果:
get 指令可以取得資源的基本資訊,主要包含名稱、數量、狀態、版本等訊息,依查詢的資源有所不同。如果要取得比基本資訊更詳細的資料,可以加上 -o wide
修飾。
執行結果:
懶得從完整資訊找的時候,這個指令超好用的
取得資源完整訊息
基本句式:
kubectl describe <資源類別> <資源名稱>
# 範例
kubectl describe pod demo-pod
kubectl describe node minikube
執行結果:
(其實後面還有,但截不下了...)
內容會包含資源的完整資訊。
是在除錯和確認資源狀態的時候非常實用的指令。
例如:在 pod 部署失敗的時候,就可以先從describe
末端的 Events 確認執行紀錄,若找不出線索再去調閱詳細的 Log。
輸出指令(output),可以產出 yaml 或 json 格式的文檔
基本句式:查詢語句加上 -o <輸出格式>
要輸出 json 格式當然也沒問題!
相關配置內容之後的文章會陸續介紹,太多了一篇根本講不完...
呈現的內容與 describe
大同小異,但因為是設定檔,不會包含資源狀態和執行訊息等資訊喔!
執行,前面做 deploy pod 的時候有使用過,這邊就不多贅述。
但有個好用的指令搭配可以記一下:
# 試運行
--dry-run=client
執行結果:
從 get pods
可以看出加上了 --dry-run
的指令並沒有真的執行建立 pod。
光這樣看,可能會覺得啊不就是試 run,看看有沒有報錯而已哪有多實用?
這個指令沒什麼用?
NoNoNo,搭配前一個 -o
指令可是有奇效的! (¯︶¯)
如果覺得 yaml 檔跟格式太難記,可以試試 --dry-run
+ -o yaml
的組合技!
這樣寫 yaml 是不是就容易多了呢 🧡🧡🧡
再加上匯出指令,撰寫 yaml 的捷徑就完成了
kubectl run demo-pod2 --image=nginx --dry-run=client -o yaml > demo-pod.yaml
有了 yaml 檔案,正好試試 -f
指令-f
:透過 file 完成操作
kubectl create -f <配置 yaml 檔>
執行結果:
再來測試看看 apply... 欸? Warning?
這是因為 yaml 檔中設定的 demo-pod2
已經在剛才的 create 建立完成了,所以會顯示 warning:pod/demo-pod2 configured。
那如果我再下 create 指令,也會出現警告訊息嗎?
會直接報錯 (^。^)
為什麼會有這樣的不同呢?
還記得前篇提到的 指令式 和 宣告式 嗎?這就是差異所在。
create
的執行是直接操作 Kubernetes 去建立一個新的 pod,而apply
是讓 Kubernetes 在資源中存在與設定相符的 pod 資源,宣告式是確保最後的結果有符合設定,因此對於已經存在的資源,apply
指令只會提醒該資源已經被設定過,而create
就會直接報出執行失敗的訊息囉!
最後試試執行刪除
基本句式:
kubectl delete <資源類別> <資源名稱>
執行結果:
完成刪除後再執行 apply
就可以順利建立資源囉~
以上就是幾個操作 k8s 一定會用上的指令!
基本語法加上 demo ,到今天已經完成對 Kubernetes 的基本操作啦~
啊,對了。
測試完記得關掉 minikube 。
minikube stop
上一篇有留言超級開心的,但新手訓練期間還不能進行回應只好在這裡感謝了(⁎⁍̴̛ᴗ⁍̴̛⁎)