上文《云原生service mesh微服务开发系列(六)更换istio-ingressgateway端口》我们使用istio来部署了微服务。做过java开发的同学应该还记得,我们在spring cloud里面有链路追踪的部分,一般我们使用的是skywalking来进行展示。那么如果我们使用service mesh做微服务如何展示这个链路追踪呢?答案其实比较简单,这里我们使用的istio框架,它自带的kiali组件可以帮我们实现微服务的可视化链路。本文我们来介绍下如果安装部署kiali组件。
1)在服务器上安装git
yum install -y git
安装完成之后就可以在服务器上使用git命令了。
2)下载istio的源码
接着我们需要使用git下载istio的源码,执行如下的命令:
mkdir /mmt cd /mmt git clone https://github.com/istio/istio.git
然后就可以看到正在下载源码了:
3)安装grafana,jaeger,kiali,loki,prometheus
这里的话在istio的源码里面有现成的安装yaml,
我们直接安装即可:
kubectl apply -f /mmt/istio/samples/addons
执行完毕之后就开始安装了:
这里安装完成之后,我们就可以在istio-system这个名称空间看到安装的信息了:
这里的服务目前都是clusterip的模式,因此外网访问比较麻烦,我们还是一样的使用istio-ingressgateway配置访问。
4)配置自定义gateway
首先创建一个自定义的gateway:kialigateway.yaml,然后把如下的内容复制进去:
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: kiali-gateway namespace: istio-system spec: selector: istio: ingressgateway servers: - port: number: 15029 name: http-kiali protocol: HTTP hosts: - "*"
然后我们执行这个文件:
kubectl apply -f kialigateway.yaml
5)配置VirtualService
创建一个名称为kiali_vs.yaml的文件,然后把如下的内容复制进去:
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: kiali namespace: istio-system spec: hosts: - "*" gateways: - kiali-gateway http: - match: - uri: prefix: /kiali route: - destination: host: kiali port: number: 20001
然后执行这个文件:
kubectl apply -f kiali_vs.yaml
6)给istio-ingressgateway增加端口
前面我们添加的gateway端口是:15029,所以我们需要在istio-ingressgateway中增加一个15029端口监听,执行编辑命令:
kubectl edit svc istio-ingressgateway -n istio-system
然后我们保存。
7)测试
这里我们暴露了32667端口,执行如下的命令:
kubectl get svc -n istio-system
可以看到新增了32667端口:
这里我们通过外网访问下,这里访问的地址如下:
http://43.129.239.107:32667/kiali
切记一定要加上kiali,访问后就可以看到如下的图了:
接着我们多访问几次咱们grpc服务,看看效果:
访问了之后,我们进入kiali的graph模块,选择对应的链路:
就可以看到完整的链路了。当然还可以看看其他的部分。这里不做过多的解释。大家可以多熟悉下这个kiali。
还没有评论,来说两句吧...