Istio Core

20th August 2020 at 2:19pm
Istio

Key Capabilities

下面的内容是从 Istio 的 Overview 文档中提取的,还缺乏具体的理解:

  • Traffic Management: 控制服务间 API 调用的流量
  • Observability: 帮助理解服务间的依赖关系,和流量的流向
  • Policy Enforcement: 资源访问策略、分配策略
  • Service Identity and Security:

Architecture

  • Data plane: intelligent proxies (Envoy)
  • Control plane: Pilot, Mixer, Istio-Auth, ...

Envoy 运行在 Kunbernetes 上时,通过改写 iptables 规则让流量走到 sidecar proxies 上。

Pilot 似乎是个比较重要的角色:

Pilot provides service discovery for the Envoy sidecars, traffic management capabilities for intelligent routing (e.g., A/B tests, canary deployments, etc.), and resiliency (timeouts, retries, circuit breakers, etc.).

用人话表达一个请求的过程:

  1. 一个服务发起对另一个服务的请求
  2. 请求经过 Pilot,Pilot 上可能配了 A/B Test, canary deployment 啥的,它按规则生成 Envoy data plane API 所需要的数据,让请求通过 Envoy 代理
  3. 请求通过 Envoy 代理,Envoy 把跟请求相关的属性(比如 TCP 层面的信息、接口返回码、延时等)提取出来,转发给 Mixer 作决策
  4. Mixer 有一些规则、策略,不知道具体做什么,后面再看