简化地多集群安装[实验性]

    本指南描述了如何使用一种简化的实验性方式来配置一个跨多个 Kubernetes 集群的 Istio 网格。我们希望在将来的版本中继续开发这项功能,因此非常期待您对这个流程进行反馈。

    在此我们集中讨论如何连接多集群网格的细节,有关其它背景信息,请参考多集群部署模型。我们将展示如何将同一网络上的两个集群与另一个网络上的第三个集群连接起来。

    使用本指南中展示的方法会导致 Istio 控制平面的实例部署在网格中的每个集群中。尽管这是一种常见配置,但其他更复杂的拓扑也是可能的,只是需要使用一些手动的过程来完成,此处不再赘述。

    此处我们描述的过程主要针对相对干净的未部署过 Istio 的集群。我们在将来能将支持扩展到现有集群。

    为了便于说明,本指南假定您已经创建了三个 Kubernetes 集群:

    • 一个在 网络上的名为 cluster-east-1 的集群。
    • 一个在 network-east 网络上的名为 cluster-east-2 的集群。

    这些集群应当尚未安装 Istio。前两个集群在同一个网络,并可直连,而第三个集群在另一个网络。请查看,以了解针对您的特定环境的任何特殊说明。

    初步准备

    您需要执行一些一次性步骤才能设置多集群网格:

    • 确保您的所有集群都被包含在您的 中,并为它们创建了上下文配置。完成后,您的配置文件应该包含类似如下内容:
    • 决定您的多集群网格的名字。推荐使用一些短小好记的:
    1. $ export MESH_ID=mymeshname
    • 决定组织名以用于创建用来让集群互相通信的根证书和中间证书。这通常可以从您的组织的 DNS 名中得来:
    1. $ export ORG_NAME=mymeshname.mycompanyname.com
    • 创建一个工作目录,用于存储在集群启动过程中产生的若干文件:
    • 下载设置脚本 到您的工作目录。该脚本负责创建必要的证书以启用跨集群通信,它为您准备了默认配置文件,并将在每个集群中部署和配置 Istio。

    • 最后,运行下载的脚本以准备网格。这会创建一个将用于保护网格中群集之间的通信安全的根密钥和证书,以及用于控制所有群集上部署的 Istio 的配置的 文件:

      上面的网格准备工作在您的工作目录里创建了一个名为 base.yaml 的文件。这个文件定义了基本的 配置,它用于将 Istio 部署到您的集群中(下面就会提到)。您可以定制 base.yaml 文件,以精确控制 Istio 将被如何部署到所有的集群中。

      只有这些值不应该被修改:

      1. values.gateway.istio-ingressgateway.env.ISTIO_MESH_NETWORK
      2. values.global.controlPlaneSecurityEnabled
      3. values.global.multiCluster.clusterName
      4. values.global.meshNetworks
      5. values.pilot.meshNetworks=

      这些值是通过以下步骤自动设置的,任何手动设置都会导致数据丢失。

      创建网格

      通过编辑在您的工作目录中的 topology.yaml 文件来指定哪些集群将被包含在网格中。为这三个集群都添加一个条目,使文件如下所示:

      该拓扑文件保存了网格的名字,以及网络的上下文映射。当文件保存后,您就可以开始创建网格了。这将部署 Istio 到每个集群,并配置每个势力以互相安全通信:

      1. $ ./setup-mesh.sh apply

      想要往网格中添加或删除集群,只需要对应地更新该拓扑文件并重新应用这些更改。

      每当您使用 setup-mesh.sh apply 时,都会在您的工作目录中创建一些 secret 文件,尤其是与不同证书关联的一些私钥。您应该存储并保护好这些 secrets。需要保护的这些文件是:

      1. certs/root-key.pem - 根私钥

      您可以使用以下命令从所有的已知集群中删除 Istio:

      相关内容

      共享的控制平面(多网络)

      跨多个 Kubernetes 集群安装一个 Istio 网格,使互不联通的集群网络共享同一个控制平面。

      通过控制平面副本集实例,在多个 Kubernetes 集群上安装 Istio 网格。

      使用 Admiral 管理 Istio 多集群的配置和服务发现

      为 Istio deployment(cluster)提供自动化 Istio 配置,并让其像单个网格一样工作。

      在 Istio 中配置和管理 DNS 证书。

      安全管理 Webhook