Istio之pilot概述

本篇文章属于搬砖,主要介绍下istio中pilot组成以及做的事情。

pilot的架构:

(https://www.cnblogs.com/YaoDD/p/11391342.html)

(https://github.com/istio/old_pilot_repo/blob/master/doc/design.md)

Discovery Services:pilot-discovery,扮演服务注册中心、istio控制面到envoy之间的桥梁作用。功能简介:

1)监控服务注册中心(例如:k8s)的服务注册情况。k8s下会监控service、endpoint、pod、node等资源信息。

2)监控istio控制面信息变化,在k8s下,会监控routerule、virtualservice、Gateway、EgressRule、ServiceEntry等以k8s CRD形式存在的istio控制面配置信息。

3)将1)和2)的两类信息合并组合为envoy可以理解的xds配置信息,以gRPC协议提供给envoy

pilot-discovery是单独二进制,被封装在Dockerfile.pilot里,在istio-docker.mk里被build成$(HUB)/pilot:$(TAG)镜像。
根据istio-pilot.yaml.tmpl,在Kubernetes环境下,pilot镜像并非sidecar的一部分,也不是daemonset在每个机器上都有,而是单独部署成一个replica=1的deployment。

Agent: pilot-agent,生成envoy配置文件,管理envoy生命周期。功能简介:

1)生成envoy的配置

2)启动envoy

3) 监控和管理envoy的运行情况。

pilot-agent在pilot/cmd包下面,是个单独的二进制。

pilot-agent跟envoy打包在同一个docker镜像里,镜像由Dockerfile.proxy定义。Makefile(include了tools/istio-docker.mk)把这个dockerfile build成了proxy镜像,也就是k8s里跟应用放在同一个pod下的sidecar。

Proxy: 也就是Envoy,直接连接discovery service,间接地从Kubernetes等服务注册中心获取集群中微服务的注册情况

Service A/B : 使用了istio的应用,如Service A/B,的进出网络流量会被proxy接管

参考文档:

https://www.servicemesher.com/istio-handbook/concepts/pilot.html

http://www.sel.zju.edu.cn/blog/2018/06/26/service-mesh深度学习系列一-istio-pilot-agent模块分析/

http://www.sel.zju.edu.cn/blog/2018/07/13/service-mesh深度学习系列二-istio-discovery模块分析/

http://www.sel.zju.edu.cn/blog/2018/07/27/service-mesh深度学习系列三-istio源码分析之pilot-discovery模块分析/

https://www.cnblogs.com/YaoDD/p/11391342.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值