5.4. 安装主远程多网络网格
在两个 OpenShift Container Platform 集群上的主远程多网络拓扑中安装 Istio。
在此过程中,CLUSTER1
是东集群,CLUSTER2
是 West 集群。East 集群是主集群,West 集群是远程集群。
您可以为跨越多个集群的网格调整这些说明。
先决条件
- 您已在组成网格的所有集群中安装 OpenShift Service Mesh 3 Operator。
- 您已完成"为多集群网格创建证书"。
- 您已完成"将证书应用到多集群拓扑"。
- 您已创建了 Istio Container Network Interface (CNI)资源。
-
您已在笔记本电脑上安装了
istioctl
,您将使用它们运行这些说明。
步骤
运行以下命令,创建一个
ISTIO_VERSION
环境变量来定义要安装的 Istio 版本:export ISTIO_VERSION=1.24.3
$ export ISTIO_VERSION=1.24.3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在东集群中安装 Istio:
运行以下命令,为 East 集群设置默认网络:
oc --context="${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
$ oc --context="${CTX_CLUSTER1}" label namespace istio-system topology.istio.io/network=network1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在东集群中创建
Istio
资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 这可让在 East 集群上安装 control plane,作为其他远程集群的外部 control plane。
运行以下命令,等待 control plane 返回 "Ready" 状态条件:
oc --context "${CTX_CLUSTER1}" wait --for condition=Ready istio/default --timeout=3m
$ oc --context "${CTX_CLUSTER1}" wait --for condition=Ready istio/default --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在东集群中创建一个 East-West 网关:
oc --context "${CTX_CLUSTER1}" apply -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/east-west-gateway-net1.yaml
$ oc --context "${CTX_CLUSTER1}" apply -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/east-west-gateway-net1.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,通过网关公开 control plane,以便 West 集群中的服务可以访问 control plane:
oc --context "${CTX_CLUSTER1}" apply -n istio-system -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/expose-istiod.yaml
$ oc --context "${CTX_CLUSTER1}" apply -n istio-system -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/expose-istiod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,通过网关公开应用程序服务:
oc --context "${CTX_CLUSTER1}" apply -n istio-system -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/expose-services.yaml
$ oc --context "${CTX_CLUSTER1}" apply -n istio-system -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/expose-services.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在 West 集群上安装 Istio:
运行以下命令,保存在 East 集群中运行的 East-West 网关的 IP 地址:
export DISCOVERY_ADDRESS=$(oc --context="${CTX_CLUSTER1}" \ -n istio-system get svc istio-eastwestgateway \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
$ export DISCOVERY_ADDRESS=$(oc --context="${CTX_CLUSTER1}" \ -n istio-system get svc istio-eastwestgateway \ -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在 West 集群中创建
Istio
资源:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在 West 集群中注解
istio-system
命名空间,使其由 control plane 在 East 集群中管理:oc --context="${CTX_CLUSTER2}" annotate namespace istio-system topology.istio.io/controlPlaneClusters=cluster1
$ oc --context="${CTX_CLUSTER2}" annotate namespace istio-system topology.istio.io/controlPlaneClusters=cluster1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,为 West 集群设置默认网络:
oc --context="${CTX_CLUSTER2}" label namespace istio-system topology.istio.io/network=network2
$ oc --context="${CTX_CLUSTER2}" label namespace istio-system topology.istio.io/network=network2
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在东集群中安装远程 secret,以便访问 West 集群中的 API 服务器:
istioctl create-remote-secret \ --context="${CTX_CLUSTER2}" \ --name=cluster2 | \ oc --context="${CTX_CLUSTER1}" apply -f -
$ istioctl create-remote-secret \ --context="${CTX_CLUSTER2}" \ --name=cluster2 | \ oc --context="${CTX_CLUSTER1}" apply -f -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,等待
Istio
资源返回 "Ready" 状态条件:oc --context "${CTX_CLUSTER2}" wait --for condition=Ready istio/default --timeout=3m
$ oc --context "${CTX_CLUSTER2}" wait --for condition=Ready istio/default --timeout=3m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,在 West 集群上创建一个 East-West 网关:
oc --context "${CTX_CLUSTER2}" apply -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/east-west-gateway-net2.yaml
$ oc --context "${CTX_CLUSTER2}" apply -f https://raw.githubusercontent.com/istio-ecosystem/sail-operator/main/docs/deployment-models/resources/east-west-gateway-net2.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意由于 West 集群安装有远程配置集,因此公开 East 集群中的应用程序服务在两个集群的东部网关上公开它们。