本文使用的istio版本號:1.4.2
簡介(參考官網,Naftis小米開源,不在維護)
Naftis 是一個基於 web 的 Istio dashboard,通過任務模板的方式來幫助用戶更方便地執行 Istio 任務。 用戶可以在 Naftis 中定義自己的任務模板,並填充變量來構造單個或多個構造任務實例,從而完成各種服務治理功能。
- 內部集成了一些常用 dashboard
- 可定製的任務模板支持
- 支持回滾指定任務
- 支持指定根服務節點的服務拓撲圖
- 提供查看 Istio 的 Services 和 Pod 的支持
- 開箱即用,通過 Kubectl 相關指令即可快速部署
- 支持 Istio 1.0
快速安裝
# 下載最新 release 文件和部署清單
wget -O - https://raw.githubusercontent.com/XiaoMi/naftis/master/tool/getlatest.sh | bash
# 創建 Naftis 命名空間
$ kubectl create namespace naftis
# 確認 Naftis 命名空間已創建
$ kubectl get namespace naftis
NAME STATUS AGE
naftis Active 18m
# 部署 Naftis MySQL 服務(本地 Kuberenetes 集羣)
$ kubectl apply -n naftis -f mysql.yaml
# 部署 Naftis MySQL 服務(雲服務商提供的 Kuberenetes 集羣)
$ kubectl apply -n naftis -f mysql-cloud.yaml
# 確認 MySQL 已部署
NAME READY STATUS RESTARTS AGE
naftis-mysql-c78f99d6c-kblbq 0/1 Running 0 9s
naftis-mysql-test 1/1 Running 0 10s
# 部署 Naftis API 和 UI 服務
kubectl apply -n naftis -f naftis.yaml
# 確認 Naftis 所有的服務已經正確定義並正常運行中
kubectl get svc -n naftis
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
naftis-api ClusterIP 10.233.3.144 <none> 50000/TCP 7s
naftis-mysql ClusterIP 10.233.57.230 <none> 3306/TCP 55s
naftis-ui LoadBalancer 10.233.18.125 <pending> 80:31286/TCP 6s
kubectl get pod -n naftis
NAME READY STATUS RESTARTS AGE
naftis-api-0 1/2 Running 0 19s
naftis-mysql-c78f99d6c-kblbq 1/1 Running 0 1m
naftis-mysql-test 1/1 Running 0 1m
naftis-ui-69f7d75f47-4jzwz 1/1 Running 0 19s
# 端口轉發訪問 Naftis
kubectl -n naftis port-forward $(kubectl -n naftis get pod -l app=naftis-ui -o jsonpath='{.items[0].metadata.name}') 8080:80 &
# 打開瀏覽器,訪問 http://localhost:8080 即可。默認用戶名和密碼分別爲 admin、admin。
預覽
安裝比較簡單,功能也比較簡單。