Istio 架构介绍

pilot-agent — 运行在 sidecar 里,主要作用是:

  • 动态的生成 envoy 的设置
  • 启动 envoy 进程
  • 监控 envoy 进程
1
2
3
4
kubectl get pods -n istio-system -owide

docker top 8fj3n4df356f(istiod conterneId)
#/usr/local/bin/pilot-discovery #控制中心

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

Agent : pilot-agent,生成envoy配置文件,管理envoy生命周期:

1)生成envoy的配置

2)启动envoy

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

Mixer :在 1.5 之后就被废弃了