安装多主模式多网络 mesh
在两个集群上的多主模式多网络拓扑中安装 Istio。
在此操作步骤中,CLUSTER1 是 East 集群,CLUSTER2 是 West 集群。
你可以将这些说明调整为适用于跨越两个以上集群的 mesh。
拓扑
跨集群边界的服务工作负载通过专用于东西向流量的网关间接通信。 每个集群中的网关都必须能够被另一个集群访问。
前提条件
- 你已在构成该 mesh 的所有集群上安装了 Alauda Container Platform Networking for Multus 插件,并且 kube-ovn 必须为 v4.1.5 或更高版本。
- 你可以访问两个支持外部负载均衡器的集群。
- 你已在构成该 mesh 的所有集群上安装了 Alauda Service Mesh v2 Operator。
- 你已完成 为多集群 mesh 创建证书。
- 你已完成 将证书应用到多集群拓扑。
- 你已在本地安装
istioctl,以便运行这些说明。
操作步骤
创建定义要安装的 Istio 版本的 ISTIO_VERSION 环境变量
在 East 集群上安装 IstioCNI
通过运行以下命令,在 East 集群上安装 IstioCNI 资源:
在 East 集群上安装 Istio
-
通过运行以下命令,在 East 集群上创建
Istio资源: -
通过运行以下命令,等待控制平面返回
Ready状态条件: -
通过运行以下命令,在 East 集群上创建 East-West gateway:
WARNING对于运行 4.11 之前 Linux kernel 版本的节点(例如 CentOS 7),在安装网关之前需要进行额外配置。
可选:将 East-West gateway 部署到 Infra Nodes(点击展开)
运行以下命令以修补网关部署:
-
通过运行以下命令,通过网关暴露服务:
在 West 集群上安装 IstioCNI
通过运行以下命令,在 West 集群上安装 IstioCNI 资源:
在 West 集群上安装 Istio
-
通过运行以下命令,在 West 集群上创建
Istio资源: -
通过运行以下命令,等待控制平面返回
Ready状态条件: -
通过运行以下命令,在 West 集群上创建 East-West gateway:
WARNING对于运行 4.11 之前 Linux kernel 版本的节点(例如 CentOS 7),在安装网关之前需要进行额外配置。
可选:将 East-West gateway 部署到 Infra Nodes(点击展开)
运行以下命令以修补网关部署:
-
通过运行以下命令,通过网关暴露服务:
在 East 集群上安装一个远程 secret,以提供对 West 集群 API server 的访问
在 West 集群上安装一个远程 secret,以提供对 East 集群 API server 的访问
验证多集群拓扑
为了确认你的多集群拓扑运行正常,你将向两个独立的 Alauda Container Platform 集群部署示例应用程序。目标是建立一个基线环境,以便生成并观察跨集群流量。
操作步骤
首先将所需的示例应用程序部署到 East 集群。
该集群将承载 helloworld 服务的 v1 版本。
-
在
East集群上为应用程序创建一个专用 namespace。 -
通过应用所需的 label,为
samplenamespace 启用 Istio sidecar 自动注入。 -
部署
helloworld应用程序组件。a. 首先,建立
helloworld服务端点。b. 然后,部署
helloworld应用程序的v1实例。 -
部署
sleep应用程序,它将作为发送测试请求的客户端。 -
暂停该过程,直到
helloworld-v1部署完全可用并处于就绪状态。 -
同样,等待
sleep部署报告Ready状态。
在 West 集群上复制该设置。
该集群将承载 helloworld 服务的 v2 版本。
-
在
West集群上创建samplenamespace。 -
同样为此 namespace 启用 Istio sidecar 注入。
-
部署
helloworld应用程序组件。a. 在
West集群上创建通用的helloworld服务端点。b. 部署
helloworld应用程序的v2实例。 -
在
West集群上部署客户端sleep应用程序。 -
等待
helloworld-v2部署变为完全可用。 -
最后,确保
West集群上的sleep部署已就绪。
验证集群之间的流量流向
在两个集群上部署并运行应用程序后,下一步是发送请求,并确认流量已在整个 service mesh 中正确进行负载均衡。
-
从
East集群中的一个 pod 发送一系列 10 个请求到helloworld服务。预期结果应为来自
helloworld-v1(East)和helloworld-v2(West)的响应混合,这证明 service mesh 正在跨集群边界路由请求。示例输出
-
在
West集群中执行相同测试。同样,你应该观察到来自服务的
v1和v2的响应,确认无论请求源自何处,多集群负载均衡都能正常工作。
从开发环境中移除多集群拓扑
在完成验证和实验后,你应拆除多集群配置,以清理开发环境并释放资源。
操作步骤
-
执行单个命令,从
East集群中移除所有 Istio 组件和示例应用程序。 -
运行相应命令,在
West集群上执行相同的清理操作。