集群调研"/>
Istio多集群调研
版本 1.12
概述
将多个集群纳于同一网格下管理。
部署模型
总共有4种基本部署结构:
-
相同网络下多控制面
两集群处在相同网络下,各自部署一个控制面,istio资源只影响到本集群中的sidecar;因为处在相同网络,pod与pod之间可以直接通信(同上)。
-
相同网络下单控制面
两集群处在相同网络下,其中一个集群共用另一集群的控制平面,在控制平面组所在集群创建istio资源可以下发到两个集群sidecar中;因为处在相同网络,pod与pod之间可以直接通信(网格istiod做了集群间的服务发现和流量打通工作,无须其他配置);但是要实现共享控制面,需要通过eastwest-gateway暴露主控制面的istiod服务。
-
不同网络下多控制面
两集群处在不同网络下,各自部署一个控制平面,istio资源只影响到本集群中的sidecar;因为处在不同网络,pod与pod之间不能直接通信,需要通过eastwest-gateway来互相暴露应用服务;无需使用eastwest-gateway暴露istiod服务。
-
不同网络下单控制面
两集群处在不同网络下,其中一个集群共用另一集群的控制平面,在控制平面组所在集群创建istio资源可以下发到两个集群sidecar中;因为处在不同网络,pod与pod之间不能直接通信,需要通过eastwest-gateway来互相暴露服务,并且需要在控制平面所在集群使用eastwest-gateway暴露主控制面的istiod的服务。
部署准备
以上4种部署结构,有些前置工作都是一样。
参考before you begin.
-
准备两个kubernetes集群,版本1.20, 1.21, 1.22, 1.23。
-
配置API Server Access
每个集群中的 API 服务器必须能被网格中其他集群访问。 很多云服务商通过网络负载均衡器(NLB)开放 API 服务器的公网访问。 如果 API 服务器不能被直接访问,则需要调整安装流程以放开访问。 例如,用于多网络、主-从架构配置的 东西向网关 就可以用来开启 API 服务器的访问。
我们做实验的机器每个集群apiserver 6443端口可以互相连通,无需额外工作。
-
配置kubeconfig及环境变量,参考环境变量 一节
先参考Kubernetes 配置文件 配置(kubectl)对多个集群的访问。
因为已有两个集群的kubeconfig文件,也可以直接将两者合并,形式如下:
#合并后的kubeconfig apiVersion: v1 clusters: - cluster: //来自cluster1 config ... - cluster: //来自cluster2 configcontexts: - context: //来自cluster1 config ... - context: //来自cluster2 config ... users: 同上# 测验,可以看到有两个context存在 kubectl config get-contexts CURRENT NAME CLUSTER AUTHI
更多推荐
Istio多集群调研
发布评论