Istio-架构
阅读原文时间:2023年07月10日阅读:5

读书笔记整理

工作机制:分为控制面和数据面

  1. 控制面:Pilot, Mixer(接收来自Envoy上报的数据), Citadel(证书和密钥管理)
  2. 数据面:Envoy

工作流程:

  1. 自动注入

    应用程序启动的时候自动注入sidecar代理,kube-apiserver调用sidecar-injector服务

  2. 流量拦截

  3. 服务发现

  4. 负载均衡

  5. 流量治理

  6. 访问安全

  7. 服务遥测

    通过Envoy上报数据到Mixer,然后接入监控和调用链

  8. 策略执行

    Mixer可控制服务访问限制

  9. 外部访问

    使用Envoy作为网关进行服务访问入口,对前端服务的负载均衡和流量治理策略都在这个Gateway里面

服务模型:Istio的约束

  1. 端口命名: [-suffix],比如:tcp/http/http2/https/grpc/tls/mongo/redis 例子:name:http2-forecast
  2. 服务关联
  3. Deployment必须使用app和version标签

Istio的服务

  1. Istio的服务版本,采用Deployment的app和version标签
  2. Istio的服务实例:本身对应Kubernetes里面的Endpoint

Istio的主要组件

  1. istio-pilot (pilot)
  2. istio-telmetry(mixer)
  3. istio-policy (mixer)
  4. istio-citadel (citadel)
  5. istio-galley
  6. istio-sidecar-injector
  7. istio-proxy
  8. istio-ingressgateway

Istio的其他组件

  1. jaeger-agent
  2. jaeger-collector
  3. jaeger-query
  4. kiali
  5. protmetheus
  6. tracing
  7. zipkin

Istio的1.1架构

Istio1.5以后的架构

参考链接:

  1. https://www.servicemesher.com/blog/istio-self-salvation/
  2. https://www.servicemesher.com/blog/202004-istio-envoy-wasm/
  3. https://www.jianshu.com/p/e6f9d5163960