istio数据平面-sidecar

sidecar注入和路由转发 #

sidecar注入 #

istio数据面-sidecar注入

Envoy Sidecar 代理的路由转发 [7][8] #

Envoy Sidecar 代理的路由转发 Envoy Sidecar 代理的路由转发

参考:
7. 理解 Istio Service Mesh 中 Envoy 代理 Sidecar 注入及流量劫持 宋净超
8. 理解 Istio Service Mesh 中 Envoy Sidecar 代理的路由转发 宋净超 引
21. 《云原生服务网格Istio:原理、实践、架构与源码解析》 第6章
22. Istio Sidecar 注入过程解密 istio官方

Envoy proxy的架构 [18] #

Envoy代理的架构
Envoy proxy的架构

参考:
18. Istio 的数据平面 Envoy Proxy 配置详解 宋净超 引

  1. Istio流量管理实现机制深度解析 赵化冰

数据面标准API/xDS协议 #

istio-xDS

  • pilot和envoy之间的接口
  • xDS是一类发现服务的总称,包含LDS,RDS,CDS,EDS以及 SDS。
  • XDS服务接口的最终一致性: 遵循 make before break 模型

xds

参考:
17. xDS 协议解析 宋净超 引

  1. Istio流量管理实现机制深度解析 赵化冰
  2. Service Mesh——后 Kubernetes 时代的微服务

数据面 #

Istio 注入sidecar实现 #
注入Pod内容 #
  • istio-init:
    通过配置iptables来劫持Pod中的流量。
    Init 容器初始化完毕后就会自动终止,但是 Init 容器初始化结果(iptables)会保留到应用容器和 Sidecar 容器中.
  • istio-proxy:
    两个进程pilot-agent和envoy, pilot-agent 进行初始化并启动envoy. 【3.2节】

Envoy启动过程和配置 #

envoy-config-init
Envoy启动过程和配置

Envoy 配置热更新: 配置的动态变更,而不需要重启 Envoy.

参考:
Istio 庖丁解牛1:组件概览 腾讯云 钟华
istio数据面 self


性能优化 [2] #

Proxyless 模式 (v1.11) #
使用 eBPF 优化流量劫持 #

参考

  1. 基于 gRPC 和 Istio 的无 Sidecar 代理的服务网格
  2. Beyond Istio OSS —— Istio 服务网格的现状与未来 ***
    Beyond Istio OSS