注意:下面用到的以上软件版本兼容Istio1.8,如果版本更新,也许不兼容。

环境准备

1、下载环境资源yaml

mkdir istio-addons
cd istio-addons
for f in kiali  prometheus  grafana jaeger
do
    wget https://raw.githubusercontent.com/istio/istio/release-1.18/samples/addons/${f}.yaml
done

2、部署Prometheus、Grafana、kiali、Jaeger

[root@master01 ~]# cd istio-addons/
[root@master01 istio-addons]# for f in `ls *.yaml`; do kubectl apply -f $f; done

检测

[root@master01 ~]# kubectl get po -n istio-system
NAME                                   READY   STATUS    RESTARTS   AGE
grafana-6cb5b7fbb8-vgvpb               1/1     Running   0          9h
istio-egressgateway-545f48cf64-w87d4   1/1     Running   0          2d4h
istio-ingressgateway-dc7bfc496-7gb5q   1/1     Running   0          2d4h
istiod-647cff69d6-9zhg4                1/1     Running   0          2d4h
jaeger-cc4688b98-rb64d                 1/1     Running   0          9h
kiali-75b4b9df64-fjhds                 1/1     Running   0          9h
prometheus-67f6764db9-zhzqq            2/2     Running   0          9h

3、设置Kiali登录的用户名和密码

cat > kiali-secret.yaml << EOF
apiVersion: v1
kind: Secret
metadata:
  name: kiali
  namespace: istio-system
  labels:
    app: kiali
type: Opaque
data:
  username: YWRtaW4=
  passphrase: YWRtaW4=
EOF

kubectl apply -f kiali-secret.yaml

说明:用户名和密码都是admin

[root@master01 istio-addons]# echo -n "YWRtaW4=" | base64 -d
admin

4、配置各组件对外访问

(1)kiali对外端口为15029

[root@master01 istio-addons]# nohup  kubectl port-forward  -n istio-system svc/kiali --address 192.168.1.60 15029:20001 &

浏览器输入http://192.168.1.60:15029/kiali访问kiali

(2)prometheus对外访问端口为15030

[root@master01 istio-addons]# nohup  kubectl port-forward  -n istio-system svc/prometheus --address 192.168.1.60 15030:9090 &

浏览器输入http://192.168.1.60:15030访问Prometheus

(3)Grafana对外访问端口为15031

[root@master01 istio-addons]# nohup  kubectl port-forward  -n istio-system svc/grafana --address 192.168.1.60 15031:3000 &

浏览器输入http://192.168.1.60:15031访问Grafana

(4)Gaeger对外访问端口为15032

[root@master01 istio-addons]# nohup  kubectl port-forward  -n istio-system svc/tracing --address 192.168.1.60  15032:80 &

浏览器输入http://192.168.1.60:15032访问Gaeger

调用链跟踪

1、直接在浏览器输入http://192.168.1.60:9080访问前面部署的测试应用,随便点点,方便后面追踪

2、在浏览器输入http://192.168.1.60:15032/访问Jaeger

点击【Search】后,选择具体的Service后,点击【Find Traces】即可查看详细信息

image-20231109092020599

指标监控

1、浏览器输入http://192.168.1.60:15030访问Prometheus,在搜索栏中输入istio_requests_total后,点击【Excute】

image-20231109093317731

也可点击【Graph】

image-20231109093449768

2、仪表盘

浏览器输入http://192.168.1.60:15031访问Grafana后,点击【Browse】-【Browse】-【istio】

istio-10

istio-11

点击【Istio Control Plane Dashboard】

image-20231109094516451

其他也可以进行点击

服务网格应用拓扑

这个需要通过Kiali来获取拓扑。Kiali是一个为Istio提供图形化界面和丰富观测功能的Dashboard的开源项目。它主要用来检测服务网格内部服务的实时工作状态,管理Istio的网络配置,快速识别网络问题。

1、在浏览器中输入http://192.168.1.60:3000/dashboard访问页面,随便点点

2、浏览器输入http://192.168.1.60:15029/kiali访问kiali,【namespace】选择weather,统计时间范围为过去5m,每10s检测1次

image-20231109095013648