在网格外部部署 Istio 控制平面

Istio 的一种新的部署模型。

2020 年 8 月 27 日 | 作者:IBM 的 Lin Sun 和 IBM 的 Iris Ding

概述

根据与各种服务网格用户和供应商合作的经验,我们认为典型的服务网格有 3 个关键角色

在 1.7 版之前,Istio 需要控制平面在网格中的一个 主集群 中运行,导致网格操作员和网格管理员之间缺乏分离。Istio 1.7 引入了一种新的 外部控制平面 部署模型,该模型允许网格操作员在单独的外部集群上安装和管理网格控制平面。这种部署模型允许网格操作员和网格管理员之间明确分离。Istio 网格操作员现在可以为网格管理员运行 Istio 控制平面,而网格管理员仍然可以控制控制平面的配置,而无需担心安装或管理控制平面。此模型对网格用户来说是透明的。

外部控制平面部署模型

使用 默认安装配置文件 安装 Istio 后,您将在单个集群中安装 Istiod 控制平面,如下图所示

Istio mesh in a single cluster
单个集群中的 Istio 网格

使用 Istio 1.7 中的新部署模型,可以在外部集群上运行 Istiod,该集群与网格服务分离,如下图所示。外部控制平面集群由网格操作员拥有,而网格管理员拥有运行网格中部署的服务的集群。网格管理员无法访问外部控制平面集群。网格操作员可以按照 外部 istiod 单个集群分步指南 了解更多信息。(注意:在 Istio 维护者之间的一些内部讨论中,此模型以前称为“中央 istiod”。)

Istio mesh in a single cluster with Istiod outside
具有外部控制平面集群中的 Istiod 的单个集群 Istio 网格

网格管理员可以将服务网格扩展到多个集群,这些集群由外部集群中运行的同一个 Istiod 管理。在这种情况下,没有一个网格集群是 主集群。它们都是 远程集群。但是,其中一个还充当 Istio 配置集群,此外还运行服务。外部控制平面从 config cluster 读取 Istio 配置,Istiod 将配置推送到在配置集群和其他远程集群中运行的数据平面,如下图所示。

Multicluster Istio mesh with Istiod outside
具有外部控制平面集群中的 Istiod 的多集群 Istio 网格

网格操作员可以进一步扩展这种部署模型,以从运行多个 Istiod 控制平面的外部集群管理多个 Istio 控制平面

Istio meshes in single clusters with Istiod outside
多个单个集群,具有外部控制平面集群中的多个 Istiod 控制平面

在这种情况下,每个 Istiod 管理自己的远程集群。网格操作员甚至可以在外部控制平面集群中安装他们自己的 Istio 网格,并配置其 istio-ingress 网关,以便将流量从远程集群路由到相应的 Istiod 控制平面。要了解更多信息,请查看 这些步骤

结论

外部控制平面部署模型允许 Istio 控制平面由具有 Istio 操作专业知识的网格操作员运行和管理,并且在服务网格控制和数据平面之间提供清晰的分隔。网格操作员可以在他们自己的集群或其他环境中运行控制平面,并将控制平面作为服务提供给网格管理员。网格操作员可以在单个集群中运行多个 Istiod 控制平面,部署他们自己的 Istio 网格,并使用 istio-ingress 网关来控制对这些 Istiod 控制平面的访问。通过这里提供的示例,网格操作员可以探索不同的实现选择,并选择最适合他们的选择。

这种新模型通过允许网格管理员专注于网格配置而无需自己操作控制平面,从而降低了复杂性。网格管理员可以继续配置网格范围的设置和 Istio 资源,而无需访问外部控制平面集群。网格用户可以继续与服务网格进行交互,而无需任何更改。

分享此帖子