快速、安全、简单:Istio 的环境模式在 v1.24 中达到普遍可用

我们最新的版本表明环境模式——无需 sidecar 的服务网格——已准备好供所有人使用。

2024 年 11 月 7 日 | 作者:林孙 - Solo.io,代表 Istio 指导委员会和技术监督委员会

我们很自豪地宣布,Istio 的环境数据平面模式已达到普遍可用,ztunnel、waypoints 和 API 已被 Istio TOC 标记为稳定版本。这标志着 Istio 功能阶段进展的最后阶段,表明环境模式已完全准备好用于广泛的生产环境。

环境网格——以及 Istio 环境模式的参考实现——于 2022 年 9 月宣布。从那时起,我们的社区投入了 26 个月的辛勤工作和协作,得到了 Solo.io、Google、Microsoft、Intel、Aviatrix、华为、IBM、Red Hat 和许多其他公司的贡献。1.24 中的稳定状态表明环境模式的功能现在已完全准备好用于广泛的生产工作负载。这对 Istio 来说是一个巨大的里程碑,它使 Istio 能够在无需 sidecar 的情况下实现生产就绪,并为用户提供选择

为什么选择环境网格?

从 2017 年 Istio 发布以来,我们观察到对应用程序网格功能的需求日益增长,但我们也听到许多用户发现 sidecar 的资源开销和操作复杂性难以克服。Istio 用户与我们分享的挑战包括 sidecar 如何在添加后破坏应用程序、每个工作负载的代理需要大量的 CPU 和内存,以及每次新的 Istio 版本都需要重新启动应用程序 pod 的不便。

作为一个社区,我们从头开始设计环境网格来解决这些问题,缓解了希望实施服务网格的用户之前面临的复杂性障碍。这个新概念被称为“环境网格”,因为它旨在对您的应用程序透明,无需与用户工作负载共置的代理基础设施,无需进行细微的配置更改即可加入,也不需要重新启动应用程序。在环境模式下,添加或删除网格中的应用程序非常简单。您只需标记一个命名空间,该命名空间中的所有应用程序就会立即添加到网格中。这会立即使用行业标准的双向 TLS 加密来保护该命名空间内的所有流量——无需其他配置或重新启动!有关我们构建 Istio 环境模式的原因的更多信息,请参阅介绍环境网格博客

环境模式如何使采用更容易?

环境网格背后的核心创新在于它将第 4 层 (L4) 和第 7 层 (L7) 处理分成两个不同的层。Istio 的环境模式由轻量级、共享的 L4 节点代理和可选的 L7 代理提供支持,无需在数据平面中使用传统的 sidecar 代理。这种分层方法允许您逐步采用 Istio,从而实现从无网格到安全覆盖(L4)到可选的完整 L7 处理的平滑过渡——根据需要,在您的整个集群中按命名空间进行。

通过利用环境网格,用户可以绕过 sidecar 模型中一些以前具有限制性的元素。服务器先发送协议现在可以工作了,大多数保留端口现在都可用,并且容器绕过 sidecar 的能力——无论是恶意还是非恶意——都被消除了。

轻量级共享 L4 节点代理称为ztunnel(零信任隧道)。ztunnel 通过消除在集群中过度配置内存和 CPU 以处理预期负载的需要,从而大大降低了运行网格的开销。在某些用例中,节省的资源可能超过 90% 或更多,同时仍然使用带有加密身份的双向 TLS 提供零信任安全、简单的 L4 授权策略和遥测。

L7 代理称为waypoints。Waypoints 处理 L7 函数,例如流量路由、丰富的授权策略执行和企业级弹性。Waypoints 在您的应用程序部署之外运行,并且可以根据您的需要独立扩展,这可能是针对整个命名空间或命名空间内的多个服务。与 sidecar 相比,您不需要每个应用程序 pod 都使用一个 waypoint,并且您可以根据其范围有效地扩展 waypoint,从而在大多数情况下节省大量的 CPU 和内存。

L4 安全覆盖层和 L7 处理层之间的分离允许逐步采用环境模式数据平面,这与之前 sidecar 的二进制“全部包含”注入形成对比。用户可以从安全的 L4 覆盖开始,它提供了人们部署 Istio 的大部分功能(mTLS、授权策略和遥测)。然后可以根据具体情况启用复杂的 L7 处理,例如重试、流量拆分、负载平衡和可观察性收集。

环境模式的快速探索和采用

Docker Hub 上的 ztunnel 镜像下载量已超过100 万次,仅在过去一周就有约 63,000 次拉取。

Docker Hub downloads of Istio ztunnel!

我们询问了一些用户他们对环境模式 GA 的看法

范围是什么?

环境模式的正式可用意味着以下内容现在被认为是稳定的

请参阅功能状态页面以获取更多信息。

路线图

我们没有止步不前!我们正在继续为未来的版本开发许多功能,包括一些当前处于 Alpha/Beta 阶段的功能。

在我们即将发布的版本中,我们预计将快速推进以下环境模式扩展:

sidecar 怎么样?

Sidecar 不会消失,并且仍然是 Istio 中的一等公民。您可以继续使用 sidecar,并且它们将继续得到完全支持。虽然我们认为大多数用例都将通过环境模式下的服务网格得到最佳服务,但 Istio 项目仍然致力于持续支持 sidecar 模式。

立即尝试环境模式

随着 Istio 1.24 版本和环境模式的正式发布,现在比以往任何时候都更容易在您自己的工作负载上试用 Istio。

您可以与 Istio Slack 上的 #ambient 频道中的开发者互动 Istio Slack,或者使用 GitHub 上的讨论论坛 GitHub 来解答您可能遇到的任何问题。

分享此文章