本指南介绍如何设置含有多个 GKE on VMware 的 Anthos Service Mesh。您可以扩展此流程,将任意数量的集群整合到网格中。
多集群 Anthos Service Mesh 配置可以满足一些重要企业场景,例如扩缩、位置和隔离。如需了解详情,请参阅多集群用例。此外,您还应优化您的应用,以充分利用服务网格。如需了解详情,请参阅准备适用于 Anthos Service Mesh 的应用。
如果您安装了先前版本的 Anthos Service Mesh,请参阅升级 Anthos Service Mesh GKE on VMware。此安装会在集群上启用支持的功能。
使用要求
在开始之前,本指南假定您使用在本地安装 Anthos Service Mesh 中所述的步骤创建的新集群或现有集群。
本指南的要求是对在本地安装 Anthos Service Mesh 中列出的要求的补充。
集群上安装有 Anthos Service Mesh 1.8 或更高版本。请参阅在本地安装 Anthos Service Mesh 来安装集群或将其升级到所需版本。
gkectl version
如果您未安装
gkectl
,请参阅 GKE On-Prem 下载。所有集群都在 vSphere 上的 GKE On-Prem 上运行。
您需要之前用于在集群上安装 Anthos Service Mesh 的配置软件包。如果需要其他副本,可以使用以下命令下载:
kpt pkg get https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.8-asm .
您无需在配置软件包中设置任何值。
安装东-西网关
在 cluster1 中安装专用于东-西流量的网关。默认情况下,此网关在互联网上为公开。生产系统可能需要额外的访问限制(例如防火墙规则),以防止外部攻击。
asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh mesh1 --cluster cluster1 --network network1 --revision asm-186-8 | \ istioctl --context="${CTX_CLUSTER1}" install -y -f -
在 cluster2 中安装专用于 cluster1 东-西流量的网关。
/asm/istio/expansion/gen-eastwest-gateway.sh \ --mesh mesh1 --cluster cluster2 --network network2 | \ istioctl --context="${CTX_CLUSTER2}" install -y -f -
公开服务
由于集群位于不同的网络中,因此您需要在这两个集群中的东-西网关上公开所有服务 (*.local
)。虽然此网关在互联网上为公开,但只有具有可信 mTLS 证书和工作负载 ID 的服务才能访问其背后的服务,就像它们位于同一网络上一样。
通过 cluster1 东-西网关公开服务。
kubectl --context="${CTX_CLUSTER1}" apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
通过 cluster2 东-西网关公开服务。
kubectl --context="${CTX_CLUSTER2}" apply -n istio-system -f \ asm/istio/expansion/expose-services.yaml
启用端点发现
在 cluster2 中安装远程密钥,提供对 cluster1 的 API 服务器的访问权限。
istioctl x create-remote-secret \ --context="${CTX_CLUSTER1}" \ --name=cluster1 | \ kubectl apply -f - --context="${CTX_CLUSTER2}"
在 cluster1 中安装远程密钥,提供对 cluster2 的 API 服务器的访问权限。
istioctl x create-remote-secret \ --context="${CTX_CLUSTER2}" \ --name=cluster2 | \ kubectl apply -f - --context="${CTX_CLUSTER1}"