概述

环境模式下,Istio 使用每个节点的第 4 层 (L4) 代理来实现其功能,并可选地使用每个命名空间的第 7 层 (L7) 代理。

这种分层方法允许您以更渐进的方式采用 Istio,从无网格平滑过渡到安全的 L4 覆盖,再到完整的 L7 处理和策略——根据需要,在每个命名空间的基础上进行。此外,在不同的 Istio 数据平面模式之间可以无缝地互操作,允许用户根据其不断变化的特定需求混合和匹配功能。

由于工作负载 Pod 不再需要在 Sidecar 中运行代理才能参与网格,因此环境模式通常非正式地称为“无 Sidecar 网格”。

工作原理

环境模式将 Istio 的功能划分为两个不同的层。在基础层,ztunnel 安全覆盖处理流量的路由和零信任安全。在需要时,用户可以在其之上启用 L7 航点代理以访问 Istio 的全部功能。航点代理虽然比单独的 ztunnel 覆盖更重,但仍作为基础设施的环境组件运行,不需要修改应用程序 Pod。

有关环境模式的设计以及它如何与 Istio 控制平面交互的详细信息,请参阅数据平面控制平面架构文档。

ztunnel

ztunnel(零信任隧道)组件是一个专门构建的、每个节点的代理,它为 Istio 的环境数据平面模式提供支持。

Ztunnel 负责安全地连接和认证网格内的工作负载。ztunnel 代理是用 Rust 编写的,并且有意限定为处理 L3 和 L4 功能,例如 mTLS、身份验证、L4 授权和遥测。Ztunnel 不会终止工作负载 HTTP 流量或解析工作负载 HTTP 标头。ztunnel 确保 L3 和 L4 流量能够有效且安全地直接传输到工作负载、其他 ztunnel 代理或航点代理。

术语“安全覆盖”用于统称通过 ztunnel 代理在环境网格中实现的一组 L4 网络功能。在传输层,这是通过一个称为HBONE的基于 HTTP CONNECT 的流量隧道协议实现的。

航路点代理

航点代理是Envoy 代理的部署;Istio 用于其 Sidecar 数据平面模式的同一引擎。

航点代理在应用程序 Pod 之外运行。它们可以独立于应用程序进行安装、升级和扩展。

某些 Istio 在环境模式下的用例可能仅通过 L4 安全覆盖功能来解决,并且不需要 L7 功能,因此不需要部署航点代理。需要高级流量管理和 L7 网络功能的用例将需要部署航点。

应用程序部署用例环境模式配置
通过双向 TLS、客户端应用程序流量的加密和隧道传输数据、L4 授权、L4 遥测实现零信任网络仅 ztunnel(默认)
如上所述,以及高级 Istio 流量管理功能(包括 L7 授权、遥测和 VirtualService 路由)ztunnel 和航点代理
这些信息是否有用?
您是否有任何改进建议?

感谢您的反馈!