Kiali为网格管理和可观察性提供了良好的用户体验的可视化工具。

Kiali访问

查看Kiali服务

kubectl get pods -n istio-system
kubectl get svc -n istio-system

修改kiali的svc类型为NodePort,修改type字段为type: NodePort

kubectl edit svc kiali -n istio-system

通过浏览器访问,username和password均为admin

登录后进入首页,Overview页面展示了所有名称空间下的应用数量、服务流量、配置状态以及监控检查状态

点击一个名称空间进入Applications页面,kiali独有的概念

下面就是Workloads页面,它展示了各个名称空间下的pods的状态

Services对应的就是Kubernetes中的svc

最后Istio Config页面展示了服务网格下的各个类型的资源配置信息

给bookinfo注入流量

while true; do curl http://192.168.1.110:31514/productpage; done

可以在Graph清晰的看到网格中流量的走向

kiali组件分析

kiali pod内有个kiali容器,该容器在启动的时候会运行kiali进程,进程会加载/kiali-configuration/config.yaml 配置文件,config.yaml 配置文件是通过ConfigMap挂载的。

istio_component_namespaces:
grafana: istio-system
tracing: istio-system
pilot: istio-system
prometheus: istio-system
istio_namespace: istio-system
auth:
strategy: login
deployment:
accessible_namespaces: ['**']
server:
port: 20001
web_root: /kiali
external_services:
istio:
url_service_version: http://istio-pilot.istio-system:8080/version
tracing:
url:
in_cluster_url: http://tracing/jaeger
grafana:
url:
in_cluster_url: http://grafana:3000
prometheus:
url: http://prometheus.istio-system:9090

定义一些资源的名称空间

定义istio本身的名称空间

鉴权方式,通过login登录的方式

kialia pod 可以访问的名称空间,这边表示不受限制

定义端口和访问路径

定义一些资源的真实访问路径