Kubectl - 利用 kubectl-graph 視覺化資源與分布吧!( Windows )

自己的星團珠寶自己拚!

將 Kubernetes 資源分布視覺化

Kubernetes resource graph for Grafana Loki
steveteuber/kubectl-graph

 

 

前言

最近工作操作 kubernetes (K8s) 的時候,想說來視覺化一下資源分布使用情形

於是逛了 awesome-kubectl-plugins,找到了 kubectl-graph 一個視覺化的工具。

 

能以星型網的圖形介面呈現資源使用的狀況與節點分布,

是一個輕量簡易的星型拓撲視覺化工具。

 

由於  kubectl-graph  教學範例以 mac 說明,

因此筆者嘗試使用 Windows 進行操作展示。

 

 

前置作業

在一切作業開始前,希望您有以下基礎知識或環境設置:

 

 

 

安裝教學

以下安裝步驟與 kubectl-graph 相同,

也可以直接看著 repo 的 README 步驟做。

 

1. 安裝 krew

如果已經有此管理套件則可以直接跳過。

 

Krew 官方網站 安裝,在 Install 頁面 最下方可以找到 Windows 安裝步驟 。

確認是否安裝成功:

kubectl krew version

 

 

2. 安裝 graphviz

kubectl-graph 有提到使用了 graphviz,能夠使用 dot 命令產出靜態圖檔,

由於我們是 Windows 環境,乖乖的去官方網站下載安裝吧!

下載頁面中,選擇 Stable Windows install packages 下載就可以了:

 

環境變數建議在選擇的時候直接勾選好。

 

 

確認是否安裝成功 ( -V 為大寫 ):

dot -V 

 

 

3. 安裝 cypher-shell

作者在圖形資料上使用了 Neo4j database,為了與資料庫溝通,

在這裡你可以選擇安裝 Neo4j,或者選擇輕量地安裝 cypher-shell

 

筆者不建議安裝 Neo4j,因為步驟繁瑣麻煩…

直接用 docker pull image 就可以了!

 

cypher-shell 頁面選擇 cypher-shell-4.3.0.zip

接著再將解壓縮後的 cypher-shell 資料夾路徑加入到環境變數。

 

請注意!!!!!Java 版本務必需要為 11以上。

 

確認是否安裝成功:

cypher -v 

 

 

4. 安裝 kubectl-graph

終於可以安裝我們的主角了!

kubectl krew install graph

 

確認是否安裝成功:

kubectl graph -h 

 

 

 

使用教學 - SVG

將 pods 資訊輸出給 dot 建立 SVG 圖檔

kubectl graph pods --field-selector status.phase=Running -n kube-system | dot -T svg -o pods.svg
  • kube-system:這是 Kubernetes 系統的 namesapce,你可以改成其他 namesapce

 

 

 

使用教學 - Visualize

視覺化星狀圖

在這裡先利用 docker 安裝 image 並啟動:

docker run --rm -p 7474:7474 -p 7687:7687 -e NEO4J_AUTH=none neo4j
  • NEO4J_AUTH:環境變數直接給 none 就可以了,或者你有自己的密碼設置

 

完成後可以開啟網址檢視畫面:http://localhost:7474/

 

由於我們沒設置密碼因此直接 connect 即可。

 

登入後點選左上的 Database Information,確認 neo4j

 

 

 

 

 

 

 

接著我們就可以利用指令將節點資訊匯入資料庫了:

kubectl graph all -n kube-system -o cypher | cypher-shell
  • kube-system:你可以改成其他 namesapce

 

如果剛剛 neo4j 資料庫有設置帳號密碼,可以參考 Syntax

kubectl graph all -n loki -o cypher | cypher-shell -u neo4j -p secret
  • cypher-shell [-u USERNAME, --username USERNAME]

 

在網頁上就可以看到 Labels 有許多分類啦~~~~

 

 

 

 

 

 

 

 

 

 

 

 

Reference

 

 

有勘誤之處,不吝指教。ob'_'ov