0%

istio使用【dashboard—Naftis】

本文使用的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            50000/TCP      7s
naftis-mysql   ClusterIP      10.233.57.230           3306/TCP       55s
naftis-ui      LoadBalancer   10.233.18.125        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。

预览

naftis

安装比较简单,功能也比较简单。