Kubectl-ice 插件展示集群容器配置信息更強(qiáng)大
本期介紹一個實(shí)用的Kubectl插件kubectl-ice,可以讓你快速地查看POD中容器正在運(yùn)行的配置信息,例如你可以查看所有POD內(nèi)容器鏡像的拉取策略、掛載卷、端口以及可執(zhí)行配置等信息,同時結(jié)合metrics server你也可以查看容器運(yùn)行的CPU和內(nèi)存等相關(guān)指標(biāo)信息。
功能
- 僅使用讀取權(quán)限,不會調(diào)用寫操作。
- 默認(rèn)會列舉出當(dāng)前集群下命名空間內(nèi)所有pod中的容器相關(guān)配置,kubectl-ice基本支持所有kubectl的選項(xiàng)參數(shù);例如指定-A指定所有命令空間下的pod中的所有容器。
- 支持選擇器,與在kubectl中的使用方式類似。
- 支持對輸出的內(nèi)容進(jìn)行排序。
- 用match標(biāo)志從輸出中排除行,這對于排除內(nèi)存或cpu使用率低的容器很有用。Exclude rows from output using the match flag, useful to exclude containers with low memory or cpu usage。
- 使用oddity標(biāo)志只列出不在范圍內(nèi)的cpu和內(nèi)存結(jié)果。List only cpu and memory results that dont fall within range using the oddities flag。
安裝
安裝比較簡單,可以通過kubectl插件管理器krew[1]安裝,也可以通過下載二進(jìn)制[2]包進(jìn)行安裝,或者不嫌麻煩源碼直接安裝。
krew安裝
$ kubectl krew install ice
源碼安裝
$ git clone https://github.com/NimbleArchitect/kubectl-ice.git
$ cd kubectl-ice
$ make bin
使用幫助
kubectl-ice command # 檢索在容器級別指定的命令行和任何參數(shù)
kubectl-ice cpu # 返回CPU請求的大小,限制和每個容器的使用
kubectl-ice help # 顯示幫助信息
kubectl-ice image # 列出每個容器的鏡像以及鏡像的拉取策略
kubectl-ice ip # 列出名稱空間中所有pods的IP地址
kubectl-ice memory # 返回每個容器的內(nèi)存請求大小、限制和使用情況
kubectl-ice ports # 顯示pod內(nèi)容器暴露的端口
kubectl-ice probes # 顯示每個容器配置的啟動、就緒和活動探針的詳細(xì)信息
kubectl-ice restarts # 顯示pod中每個容器的重啟計數(shù)
kubectl-ice status # 列出pod中每個容器的狀態(tài)
kubectl-ice volumes # 列出所有具有掛載點(diǎn)的容器卷
使用案例
基礎(chǔ)
顯示指定pod內(nèi)容器的內(nèi)存指標(biāo)信息(T: type,其值有I/init容器,S/standard標(biāo)準(zhǔn)容器)。
$ kubectl-ice memory resource-test-6c6f556b4f-lmngp
T CONTAINER USED REQUEST LIMIT %REQ %LIMIT
S resource 101.18Mi 500Mi 1Gi 20.24 9.88
可結(jié)合標(biāo)簽使用。
kubectl-ice probes
檢查容器狀態(tài)(以及之前的狀態(tài))。
kubectl-ice status
顯示pod內(nèi)容器鏡像的拉取策略。
顯示pod內(nèi)容器暴露的端口以及掛載卷信息。
使用選擇器,同時可以使用--sort進(jìn)行排序,注意!的使用,表示倒序。
kubectl-ice select --sort
- 更多使用幫助信息可以參考官方說明[3]。
- 更多使用案例可以參考官方說明[4]。
參考資料
[1]krew: https://github.com/kubernetes-sigs/krew。
[2]kubectl-ice: https://github.com/NimbleArchitect/kubectl-ice/releases。
[3]kubectl-ice usage: https://github.com/NimbleArchitect/kubectl-ice/blob/main/docs/usage.md。
[4]example: https://github.com/NimbleArchitect/kubectl-ice/blob/main/docs/examples.md。