K8s 中的零信任安全性变得简单:Istio Ambient Mesh,无需 Sidecar

发布:2024-11-13 09:35 阅读:21 点赞:2

服务网格已成为管理微服务架构复杂性和安全性的关键工具。然而,基于 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 网络功能。

服务之间的 mTLS 状态

Ambient Mesh 的主要优势

  1. 资源效率:通过消除 sidecar,Ambient Mesh 在许多情况下将 CPU 和内存需求降低了 90% 以上,从而释放了整个 Kubernetes 集群的资源。
  2. 简化操作:Ambient Mesh 无需 sidecar 注入,简化了网格部署,使用户能够在不停机或容器重启的情况下将应用程序添加到网格中。
  3. 灵活的安全和流量管理:组织可以通过 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. 

 

第 4 层流量的数据平面示例

结论

Istio 的环境网格模式提供了一种简化的服务网格架构方法,消除了 sidecar 代理的复杂性,同时保持了强大的安全性和可观察性。对于以前被 sidecar 管理吓倒的团队,Ambient Mesh 提供了一条引人注目的前进道路,降低了资源成本,并提供了可随应用程序需求增长的适应性模型。随着该功能的成熟,Ambient Mesh 有望成为 Kubernetes 用户管理大型、安全和高效集群的重要工具。