读书笔记整理
工作机制:分为控制面和数据面
- 控制面: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以后的架构