要提升系統的 Observability,除了要盡可能蒐集應用程式的資訊,能夠綜觀全局的 GUI 工具必不可少,本篇要介紹的 Kiali 就是個擁有強大功能的軟體,至於要如何使用,就讓我們接著往下看吧!
Kiali 是 Istio Service Mesh 的管理平台,可以快速的安裝到 Istio 環境,幫助我們設置、可視化、驗證及除錯 Service Mesh ,藉以提升系統 Observability ,其功能包括
當進行日常監控及故障排除時,比起在 CLI 下指令查詢資料,工程師更喜歡有個 GUI 工具查看資訊,而 Kiali 作為 Istio 的管理平台,不僅提供 Metrics、Logs 及 Traces 資料,還結合各式可視化功能,幫助我們加速日常維運工作。
之前出現的 Bookinfo 架構圖是根據程式功能畫出來的,但部署到 Kubernetes 後元件真的是這樣連接嗎?本次就會使用 Kiali,藉由 Prometheus 蒐集的 Metrics 資訊將 Microservices 溝通情形可視化。
有了 Kiali 就能將 Microservices 溝通情形可視化,讓使用者能更清楚了解 Application 架構
本篇接續 Day18,在 Istio 環境安裝好 Prometheus ,就可以使用官方提供的 kiali.yaml 檔案快速安裝 Kiali
kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.15/samples/addons/kiali.yaml
安裝方式參考 Istio - Kiali
Kiali 會安裝到 istio-system
Namespace 上,可以檢查是否安裝成功。
kubectl get pods -n <namespace>
查看 Pods 運行狀況kubectl get pods -n istio-system
(輸出結果)
NAME READY STATUS RESTARTS AGE
istio-ingressgateway-d54ff84fc-fpts7 1/1 Running 0 13d
istiod-68df67c57b-krrdx 1/1 Running 0 13d
kiali-575f548888-grcxs 1/1 Running 0 61s
prometheus-6549d6bdcc-kxgsj 2/2 Running 0 27h
在 istio-system 新增了 Kiali 元件
kubectl port-forward
將流量轉到 Kiali GUIkubectl port-forward -n istio-system svc/kiali 8082:20001
http://127.0.0.1:8082
在瀏覽器即可看到 Kiali 介面
現在 Kiali 不會顯示 Application 的資訊,那是因為還沒蒐集到 Metrics 資料,所以我們需要打入流量到 Bookinfo Application。
kubectl port-forward
將本機流量轉移到 Productagekubectl port-forward svc/productpage 8080:9080
while true; do curl -s 127.0.0.1:8080/productpage > /dev/null ; sleep 2; done
Graph
是不是很神奇!在不了解應用程式實作原理時, Kiali 僅憑 Metrics 資訊就能畫出相同的架構圖。,除了能統計 HTTP Request 的狀態,還能顯示 Response Time、Throughput 等資料,將維運人員需要的資訊顯現在 GUI 上
除了可視化架構之外,還能將流量資訊也顯現在 GUI 上
Application
-> 選擇任一元件在這裡可以看到 Service 更詳細的資訊如 Metrics 圖表
Workloads
-> 選擇任一元件在這裡可以看到 Deployment 更詳細的資訊如 logs 資料
本篇介紹了 Kiali 安裝方式並實際操作,體驗了擁有 GUI 對我們日常維運能夠帶來多少好處,下一章會來學習如何用 Kiali 來設置 Istio 相關元件。