这个task向你展示如何安装和使用Istio Dashboard 来监控网格流量。在这个task中,你将安装Grafana Istio 插件并使用基于web的界面来查看服务网格流量数据。
在这个task中使用 Bookinfo 示例。
Before you begin
- 在你的集群安装Istio并部署一个应用
- 安装Prometheus 插件
kubectl apply -f install/kubernetes/addons/prometheus.yaml
Istio Dashboard必须使用Prometheus 插件。
Viewing the Istio Dashboard
1.为了在图形控制台查看Istio metrics,安装Grafana插件。
在k8s环境中,执行:
kubectl apply -f install/kubernetes/addons/grafana.yaml
2.确认你的集群中服务正在运行
在k8s环境中,执行:
kubectl -n istio-system get svc grafana
输出类似:
NAME CLUSTER-IP EXTERNAL-IP PORT(S) AGE
grafana 10.59.247.103 <none> 3000/TCP 2m
3.通过Grafana UI打开 Istio Dashboard
在k8s环境中,执行:
kubectl -n istio-system port-forward $(kubectl -n istio-system get pod -l app=grafana -o jsonpath='{.items[0].metadata.name}') 3000:3000 &
在你的浏览器中访问 http://localhost:3000/dashboard/db/istio-dashboard
Istio Dashboard 看起来类似:
1.向网格中发送流量。
对于Bookinfo ,在你的浏览器访问 http://$GATEWAY_URL/productpage
或使用命令:
再次查看Istio Dashboard 。它应该能反映出刚生成的流量。看起来类似:
注意: $GATEWAY_URL
是在 Bookinfo 指南中设置的值。
About the Grafana add-on
Grafana 插件是一个预配置的Grafana 实例。基础镜像 (grafana/grafana:4.1.2) 已被修改,以便同时安装Prometheus 数据源和Istio Dashboard。Istio的基础安装文件(尤其是Mixer)附带全局(用于每个服务)默认的metric标准。构建的 Istio Dashboard 与默认的 Istio metrics 配置以及一个Prometheus 后端结合使用。
Istio Dashboard包含三个主要部分:
1.一个全局摘要视图。这部分提供通过服务网格的HTTP请求流的高级摘要。
2.一个网格摘要视图。这部分提供仅仅比全局视图多一些细节,允许过滤和筛选每个服务。
3.内部服务视图。这部分提供网格每个内部服务(HTTP和TCP)的请求和响应的metrics。
关于如何创建,配置及修改控制台的更多内容,请查看 Grafana documentation.
Cleanup
- 在k8s环境中,执行命令移除Grafana插件:
kubectl delete -f install/kubernetes/addons/grafana.yaml
- 移除可能还在运行的任何
kubectl port-forward
进程
killall kubectl
- 如果你不打算探索接下来地任何课题,参考 Bookinfo cleanup 指南来关闭应用。