IstioV1.1 组件:
istio-pilot
1.istio-pilot是Istio的控制中枢Pilot服务
2.涵盖服务注册中心和ConfigServer等管理服务
3.向数据面下发规则(包括:VirtualService DestinationRule、Gateway、ServiceEntry等流量治理规则,认证授权等安全规则)
4.Pilot负责将各种规则转换成Envoy可以识别的格式,通过标准的xDS协议发送给Envoy,指导Envoy完成动作
Mixer组件
istio-telemetry(Mixer)
1.专门用于收集遥测数据的Mixer服务组件。
2.在部署上,Istio控制面部署了两个Mixer组件:istio-telementry(收集遥测数据)和istio-policy(策略执行)
3.调用方式:当网格中两个服务间有调用发生时,服务的代理Envoy就会上报遥测数据给istio-telemetry服务组件,istio-telemetry根据配置生成访问Metric等数据分发给后端的遥测服务。
4.架构上,Mixer作为中介解耦数据面和不同后端的对接,以提供灵活性和扩展能力
5.运维上,运维人员可以动态配置各种遥测后端,来收集指定的服务运行数据
istio-policy(Mixer)
1.数据面在转发服务的请求前调用istio-policy的Check接口检查是否允许访问,Mixer根据配置将请求转发到对应的Adapter做对应检查,给代理返回允许访问或者拒绝。
2.可以对接:配额、授权、黑白名单等不同的控制后端,对服务间的访问进行可扩展控制
istio-citadel
1.Istio的核心安全组件,提供自动生成、分发、轮换与撤销密钥和证书的功能
2.代理两端服务实现双向TLS认证、通道加密、访问授权等安全功能
istio-galley
1.不直接向数据面提供业务能力
2.在控制面上向其他组件提供支持。作为负责配置管理的组,验证配置信息的格式和内容的正确性,并将这些配置信息提供给管理面的Pilot和Mixer服务使用。
istio-sidecar-injector
1.负责自动注入的组件,生成Sidercar容器(这个过程对用户透明)
2.开启自动注入,在Pod创建时就会自动调用istio-sidecar-injector向Pod中注入Sidercar容器。
istio-proxy
1.Istio数据面的轻量代理
2.istio-proxy=Envoy+pilot-agent守护进程
istio-ingressgateway
1.服务网关:从网格外访问网格内的服务就是通过该Gateway进行。
2.是一个Loadbalancer类型的Service,开放了一组端口(注意:其他服务组件只有一两个端口)
其他组件
以上istio前缀的是istio的自有组件,在集群中一般还安装Jaeger-agent、Jaeger-collector、Jaeger-query、Kiali、Prometheus、Tracing、Zipkin组件,这些组件提供了Istio的调用链、监控等功能,可以选择安装来完成完整的服务监控管理功能
Envoy
在通信上,Envoy通过gRPC流式订阅Pilot的配置资源