K8s 中的零信任安全性变得简单:Istio Ambient Mesh,无需 Sidecar
服务网格已成为管理微服务架构复杂性和安全性的关键工具。然而,基于 sidecar 的模型虽然功能强大,但通常会带来显著的运营和资源开销。
进入 Ambient Mesh:Istio 的全新无 sidecar 替代方案,可简化服务网格的采用并减少资源需求。作为 GA 功能引入,Ambient Mesh 提供了一种创新的方式来利用 Istio 强大的零信任安全性,而无需 sidecar 代理的复杂性。
Sidecar 挑战
Sidecar 代理在传统的服务网格架构中是必不可少的,它与每个服务一起提供流量管理、安全性和可观测性功能。但是,它们也带来了大量的权衡,尤其是在每个服务实例都需要自己的 sidecar 的大型集群中。由于 sidecar 管理和应用程序重启,这种模型通常会导致高内存和 CPU 使用率,并增加操作复杂性。对于许多团队来说,这些缺点可能会阻碍可扩展性和采用。Ambient Mesh 通过将流量控制和安全性与单个应用程序容器分离来解决这些痛点。
istioctl install --set profile=ambient --skip-confirmation
|\
| \
| \
| \
/|| \
/ || \
/ || \
/ || \
/ || \
/ || \
/______||__________\
____________________
\__ _____/
\_____/
? Istio core installed ??
? Istiod installed ??
? CNI installed ??
? Ztunnel installed ??
? Installation complete
The ambient profile has been installed successfully, enjoy Istio without sidecars!
Ambient Mesh 的工作原理
Ambient Mesh 在每个节点上引入了 ztunnels(零信任隧道),而不是将 sidecar 代理注入单个服务。这些 ztunnel 创建了一个安全的第 4 层叠加网络,支持 mTLS 加密和基本流量路由等基本功能,并显著降低了资源需求。由于 ztunnel 仅处理第 4 层流量,因此其轻量级特性使 Ambient Mesh 资源高效且易于实施。
对于需要更高级的第 7 层功能(例如详细路由、重试和遥测)的团队,可以有选择地部署航点代理来处理这些任务。ztunnels 和 waypoint proxies 之间的这种职责划分提供了精细的控制,允许团队仅在需要时采用零信任基础和附加功能层。
You now have mTLS encryption between all your pods —
without even restarting or redeploying any of the applications!
Istio 在 Pod 内重定向流量的模型:
Istio 在 Ambient 模式下的 Pod 内流量重定向模型的核心设计原则是 ztunnel 代理可以捕获工作负载 Pod 的 Linux 网络命名空间内的数据路径。此功能是通过 istio-cni 节点代理和 ztunnel 节点代理之间的协作实现的。此模型的一个显着优势是,它允许 Istio 的环境模式与任何 Kubernetes CNI 插件无缝运行,而不会中断 Kubernetes 网络功能。
Ambient Mesh 的主要优势
- 资源效率:通过消除 sidecar,Ambient Mesh 在许多情况下将 CPU 和内存需求降低了 90% 以上,从而释放了整个 Kubernetes 集群的资源。
- 简化操作:Ambient Mesh 无需 sidecar 注入,简化了网格部署,使用户能够在不停机或容器重启的情况下将应用程序添加到网格中。
- 灵活的安全和流量管理:组织可以通过 ztunnel 从轻量级第 4 层安全开始,仅为需要高级第 7 层流量管理的服务添加航点代理,从而符合零信任原则和可扩展性需求。
理想的用例
Ambient Mesh 特别适合旨在以最少的资源和运营开销实施零信任架构的组织。它也非常适合希望逐步扩展网格采用的团队,从安全性开始,然后仅在需要时扩展到更复杂的流量管理。
In Mesh: a pod that is included in the ambient data plane,
and has traffic intercepted at the Layer 4 level by ztunnel.
In this mode, L4 policies can be enforced for pod traffic.
This mode can be enabled by setting the
?istio.io/dataplane-mode=ambient? label.
结论
Istio 的环境网格模式提供了一种简化的服务网格架构方法,消除了 sidecar 代理的复杂性,同时保持了强大的安全性和可观察性。对于以前被 sidecar 管理吓倒的团队,Ambient Mesh 提供了一条引人注目的前进道路,降低了资源成本,并提供了可随应用程序需求增长的适应性模型。随着该功能的成熟,Ambient Mesh 有望成为 Kubernetes 用户管理大型、安全和高效集群的重要工具。