k8s的命令列工具kubectl 對於玩k8s 的人來說是必備工具。kubectl外掛機制在Kubernetes 1.14宣佈穩定,進入GA狀態。kubectl的外掛機制就是希望允許開發者以獨立的二進位制形式釋出自定義的kubectl子命令。kubectl外掛可以使用任意語言開發,如可以是一個bash、python的指令碼,也可以是其他語言開發編譯的二進位制可執行檔案,只要最終將指令碼或二進位制可執行檔案以kubectl-的字首放到PATH中即可。使用kubectl plugin list可以在PATH中檢視有哪些外掛。

krew是kubectl外掛的管理器,使用krew可以輕鬆的查詢、安裝和管理kubectl外掛。krew自己也作為一個kubectl外掛存在。官網的安裝文件非常的清晰,也很友善。大家可以移步:https://krew.sigs.k8s.io/docs/user-guide/setup/install/  。我是直接下載的檔案安裝的,安裝前確認目標機器上已經安裝了git,krew在更新本地外掛索引時會用到git。

檢視所有外掛

外掛安裝

kubectl krew install xxxx

常用外掛

1. ns 外掛

ns是一個可以在kubernetes叢集裡面切換名稱空間的外掛。你是否厭煩了每次敲kubectl命令時都要加上-n <namespaces>的引數,又不想在config裡面維護大量context。那麼ns外掛就是來解救你的,它會在切換名稱空間時修改當前config裡面的context到當前名稱空間,這樣你就不用再加-n引數了。

安裝:

kubectl krew install ns

2. images 外掛

images外掛允許你檢視當前名稱空間(甚至整個叢集)Workload中使用的映象資訊。當前支援幾個功能如下:

列出所有名稱空間workload的映象資訊

指定欄位展示映象的關聯k8s資訊

指定單獨的名稱空間展示映象

安裝:kubectl krew install images

3. view-secret 外掛

大部分情況下,我們secret裡面的資訊會事先經過base64編碼後儲存。當我們需要從secret裡面讀取內容在做decode

kubectl get secret <secret> -o=jsonpath='{.data.password}' |base64 -d

但是我們的目標能少打命令絕不多敲一個字母。那麼這個時候view-secret就可以幫助到我們。

安裝:

kubectl krew install view-secret

4. view-allocations 外掛

對於想快速知道當前你的kubernetes叢集資源分佈情況,view-allocations這個外掛它一定能夠幫助。view-allocations當前能夠根據resource,node和pod三個維度展示叢集當前的資源分配狀況。值得一提的是如果你的kubernetes叢集有GPU節點,採用view-allocations也可以快速查到你的GPU顯示卡分配狀態