第 13 章 高级情景 高级方案
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
在某些环境中,可能只需要单集群服务网格部署。 但其他环境可能需要多个群集和单一的全局服务网格部署或独立服务网格部署联盟。这种环境可能需要考虑现有的单体或其他外部服务。虽然我们都很期待看到微服务统治世界、单体应用退出历史舞台的那一天,但我们还没到那一步。Istio 项目深谙此道,支持多种部署和配置模型。
本章将介绍一些常见的高级拓扑结构。高级拓扑结构在以下环境中非常有用:重点严格放在地理位置相近的微服务上的环境,或跨区域或跨提供商分布服务网格的环境。
高级拓扑类型
虽然可以进行多种拓扑配置,但我们在此讨论的是可以转变为其他配置的几种核心拓扑。我们将这几种拓扑分为两种基础拓扑,分别部署在单个集群或多个集群中。
单集群网状结构
高级单集群拓扑是网状扩展。 网格扩展是一种拓扑结构,包括在 Istio 服务网格上的裸机或虚拟机(或两者)上运行传统的、非微服务工作负载(即单体应用程序)。虽然这些应用程序无法获得服务网格提供的所有优势,但将它们纳入服务网格确实可以让你开始深入了解和控制这些服务是如何相互通信的。这为迁移到云原生架构或在 Kubernetes 和非 Kubernetes 节点之间划分工作负载奠定了基础。
本章稍后我们将对此进行深入探讨。这里的重点是将网状结构扩展与将棕色应用接入网状结构联系起来,在网状结构中,你可以观察流量,通过路由规则 "扼杀 "单体,或者在这些服务不再运行在虚拟机或主机上时对其进行测试。
多集群网状结构
另外两种高级拓扑是 Istio多集群和跨集群模型。 我们将这两种拓扑结构归入同一个多集群网状结构(联盟)类别,因为从本质上讲,它们旨在解决相同的集群间通信问题。 它们为运行单个服务网格的不同 Kubernetes 集群之间提供通信,将它们统一在一个控制平面或两个控制平面之下。不过,这也是语言变得有点棘手和容易混淆的地方。
为了简单起见,我们现在先总结一下这两种方法,并在本章后面进一步探讨。
Istio 多群集(单网格)
Istio multicluster(单一网格)是一种将多个服务网格连接成单一服务网格的集中式方法。具体方法是选择一个群集作为主群集,其他群集作为远程群集。我们使用本地和远程这两个术语来标示哪个群集的数据平面是集中控制平面的本地数据平面,哪个群集的数据平面是集中控制平面的远程数据平面。
只要集群之间存在网络连接且 IP 地址范围不重叠,单控制平面 Istio 部署就可以跨越多个集群。图 13-1展示了 Istio v1.0 如何支持这种跨集群的扁平网络模型。您可以将 Istio v1.0 扩展到非扁平网络,即集群之间存在 IP 地址冲突的网络。
利用网络地址转换(NAT)和 VPN、IstioGateway或其他网络服务的组合,可以将集群连接到同一管理域(在同一单一控制平面下)。 在 v1.0 版中,可以将多个控制平面联合起来,但这需要在 Istio 中进行大量手动调整和配置。无论采用哪种方法将集群联网在一起,为了实现服务名称解析和可验证的身份,每个集群中的所有名称空间、服务和服务账户都需要进行相同的定义。
图 13-1. Istio 多集群方法:跨集群直接连接(扁平 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access