iT邦幫忙

2022 iThome 鐵人賽

DAY 19
1

前言

要提升系統的 Observability,除了要盡可能蒐集應用程式的資訊,能夠綜觀全局的 GUI 工具必不可少,本篇要介紹的 Kiali 就是個擁有強大功能的軟體,至於要如何使用,就讓我們接著往下看吧!

Kiali 是什麼?

https://ithelp.ithome.com.tw/upload/images/20220928/20139235fISOnq9voy.png

Kiali 是 Istio Service Mesh 的管理平台,可以快速的安裝到 Istio 環境,幫助我們設置、可視化、驗證及除錯 Service Mesh ,藉以提升系統 Observability ,其功能包括

  • Topology: 可視化 Microservices 溝通情形
  • Health: 檢查應用程式的健康狀態
  • Details: 查看應用程式的 Logs、Metrics 詳細資料
  • Tracing: 結合 Jaeger 獲取 Tracing 資訊
  • Validations: 檢查錯誤的 Configuration
  • Wizards: 可在 GUI 設置 Istio Routing 規則
  • Configuration: 可在 GUI 查看及修改 Istio Configuration

當進行日常監控及故障排除時,比起在 CLI 下指令查詢資料,工程師更喜歡有個 GUI 工具查看資訊,而 Kiali 作為 Istio 的管理平台,不僅提供 Metrics、Logs 及 Traces 資料,還結合各式可視化功能,幫助我們加速日常維運工作。

Kiali 安裝及實作

之前出現的 Bookinfo 架構圖是根據程式功能畫出來的,但部署到 Kubernetes 後元件真的是這樣連接嗎?本次就會使用 Kiali,藉由 Prometheus 蒐集的 Metrics 資訊將 Microservices 溝通情形可視化。

https://ithelp.ithome.com.tw/upload/images/20220928/20139235UGmmOOuzG7.png

有了 Kiali 就能將 Microservices 溝通情形可視化,讓使用者能更清楚了解 Application 架構

本篇接續 Day18,在 Istio 環境安裝好 Prometheus ,就可以使用官方提供的 kiali.yaml 檔案快速安裝 Kiali

  1. 使用 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 上,可以檢查是否安裝成功。

  1. 使用 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 元件

  1. 使用 kubectl port-forward 將流量轉到 Kiali GUI
kubectl port-forward -n istio-system svc/kiali 8082:20001
  1. 在瀏覽器輸入網址連接至服務
http://127.0.0.1:8082

https://ithelp.ithome.com.tw/upload/images/20220928/20139235puxMJOtwSg.png

在瀏覽器即可看到 Kiali 介面

現在 Kiali 不會顯示 Application 的資訊,那是因為還沒蒐集到 Metrics 資料,所以我們需要打入流量到 Bookinfo Application。

  1. 使用 kubectl port-forward 將本機流量轉移到 Productage
kubectl port-forward svc/productpage 8080:9080
  1. 執行腳本,每兩秒打入一次流量
while true; do curl -s 127.0.0.1:8080/productpage > /dev/null ; sleep 2; done
  1. 回到 Kiali 介面,點擊 Graph

https://ithelp.ithome.com.tw/upload/images/20220928/20139235ciAp88jjSy.png

是不是很神奇!在不了解應用程式實作原理時, Kiali 僅憑 Metrics 資訊就能畫出相同的架構圖。,除了能統計 HTTP Request 的狀態,還能顯示 Response Time、Throughput 等資料,將維運人員需要的資訊顯現在 GUI 上

https://ithelp.ithome.com.tw/upload/images/20220928/20139235svsAFypz0U.png

除了可視化架構之外,還能將流量資訊也顯現在 GUI 上

  1. 接著點擊 Application -> 選擇任一元件

https://ithelp.ithome.com.tw/upload/images/20220928/20139235qHGyaByT6M.png

在這裡可以看到 Service 更詳細的資訊如 Metrics 圖表

  1. 接著點擊 Workloads -> 選擇任一元件

https://ithelp.ithome.com.tw/upload/images/20220928/20139235bRN8vbaVeF.png

在這裡可以看到 Deployment 更詳細的資訊如 logs 資料

總結

本篇介紹了 Kiali 安裝方式並實際操作,體驗了擁有 GUI 對我們日常維運能夠帶來多少好處,下一章會來學習如何用 Kiali 來設置 Istio 相關元件。


上一篇
Day18 - 在 Istio 打造 Prometheus 實作環境
下一篇
Day20 - 使用 Kiali 建立 Istio Configuration
系列文
學會 Kubernetes 然後呢?由 Istio 進入 DevOps 偉大航路30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言