Istio-架构
读书笔记整理
工作机制:分为控制面和数据面
- 控制面:Pilot, Mixer(接收来自Envoy上报的数据), Citadel(证书和密钥管理)
- 数据面:Envoy
工作流程:
自动注入
应用程序启动的时候自动注入sidecar代理,kube-apiserver调用sidecar-injector服务
流量拦截
服务发现
负载均衡
流量治理
访问安全
服务遥测
通过Envoy上报数据到Mixer,然后接入监控和调用链
策略执行
Mixer可控制服务访问限制
外部访问
使用Envoy作为网关进行服务访问入口,对前端服务的负载均衡和流量治理策略都在这个Gateway里面
服务模型:Istio的约束
- 端口命名: [-suffix],比如:tcp/http/http2/https/grpc/tls/mongo/redis 例子:name:http2-forecast
- 服务关联
- Deployment必须使用app和version标签
Istio的服务
- Istio的服务版本,采用Deployment的app和version标签
- Istio的服务实例:本身对应Kubernetes里面的Endpoint
Istio的主要组件
- istio-pilot (pilot)
- istio-telmetry(mixer)
- istio-policy (mixer)
- istio-citadel (citadel)
- istio-galley
- istio-sidecar-injector
- istio-proxy
- istio-ingressgateway
Istio的其他组件
- jaeger-agent
- jaeger-collector
- jaeger-query
- kiali
- protmetheus
- tracing
- zipkin
Istio的1.1架构
Istio1.5以后的架构
参考链接:
- https://www.servicemesher.com/blog/istio-self-salvation/
- https://www.servicemesher.com/blog/202004-istio-envoy-wasm/
- https://www.jianshu.com/p/e6f9d5163960