支持配置网络模式相同为 Kube-OVN 的集群之间的集群互联,使集群内的 Pod 能够相互访问。集群互联控制器是 Kube-OVN 提供的扩展组件,负责收集不同集群间的网络信息,并通过下发路由实现多个集群网络的互联。
不同集群的子网 CIDR 不能相互重叠。
需要有一组机器,能够被每个集群的 kube-ovn-controller 通过 IP 访问,用于部署跨集群互联的控制器。
每个集群需要有一组机器,能够被 kube-ovn-controller 通过 IP 访问,用作后续的网关节点。
该功能仅支持默认 VPC,用户自定义 VPC 无法使用互联功能。
提供三种部署方式:Deploy 部署(平台 v3.16.0 及以上版本支持)、Docker 部署和 Containerd 部署。
注意:该部署方式支持平台 v3.16.0 及以上版本。
操作步骤
在集群主节点执行以下命令获取 install-ic-server.sh 安装脚本。
打开当前目录下的脚本文件,按如下修改参数。
修改后的参数配置如下:
保存脚本文件后,执行以下命令运行脚本。
选择任意集群中的 三个及以上节点 部署互联控制器。此处以准备三台节点为例。
任选一台节点作为 Leader,根据不同部署方式执行以下命令。
注意:配置前请检查 /etc
目录下是否存在 ovn 目录,如无则执行 mkdir /etc/ovn
创建。
Docker 部署命令
注意:执行 docker images | grep ovn
获取 Kube-OVN 镜像地址。
Leader 节点命令:
其他两台节点命令:
Containerd 部署命令
注意:执行 crictl images | grep ovn
获取 Kube-OVN 镜像地址。
Leader 节点命令:
其他两台节点命令:
在 global 的任意控制节点,根据注释替换以下参数,并执行以下命令创建 ConfigMap 资源。
注意:为保证正确运行,global 上名为 ovn-ic 的 ConfigMap 不允许被修改。如需更改参数,请先删除 ConfigMap 并正确重新配置后再应用。
将网络模式为 Kube-OVN 的集群加入集群互联。
前提条件
集群中 已创建的子网、ovn-default 及 加入的子网 不得与集群互联组中任何集群网段冲突。
操作步骤
在左侧导航栏点击 集群 > 集群的集群。
点击要加入集群互联的 集群 名称。
在右上角点击 操作 > 集群互联。
点击 加入集群互联。
选择该集群的网关节点。
点击 加入。
更新已加入集群互联组的集群网关节点信息。
操作步骤
在左侧导航栏点击 集群 > 集群的集群。
点击需更新网关节点信息的 集群名称。
在右上角点击 操作 > 集群互联。
点击需更新网关节点信息的集群对应的 更新网关节点。
重新选择该集群的网关节点。
点击 更新。
已加入集群互联组的集群退出集群互联,退出后集群 Pod 与外部集群 Pod 断开连接。
操作步骤
在左侧导航栏点击 集群 > 集群的集群。
点击要退出的 集群 名称。
在右上角点击 操作 > 集群互联。
点击要退出的集群对应的 退出集群互联。
正确输入集群名称。
点击 退出。
当集群未退出互联集群即被删除时,控制器上可能残留部分数据。若尝试使用这些节点重新创建集群并加入互联集群,可能会失败。可在控制器(kube-ovn-controller)的 /var/log/ovn/ovn-ic.log
日志中查看详细错误信息,部分错误信息示例如下:
操作步骤
对要加入的集群执行退出互联集群操作。
在容器或 Pod 中执行清理脚本。
可直接在 ovn-ic-db 容器或 ovn-ic-controller Pod 中执行清理脚本,任选其一:
方法一:在 ovn-ic-db 容器中执行
进入 ovn-ic-db 容器,执行以下命令进行清理操作。
然后执行以下清理命令之一:
使用原集群名称执行清理操作,替换 <cluster-name> 为 原集群名称:
使用原集群中任意节点名称执行清理操作,替换 <node-name> 为 原集群中任意节点名称:
方法二:在 ovn-ic-controller Pod 中执行
进入 ovn-ic-controller Pod,执行以下命令进行清理操作。
然后执行以下清理命令之一:
使用原集群名称执行清理操作,替换 <cluster-name> 为 原集群名称:
使用原集群中任意节点名称执行清理操作,替换 <node-name> 为 原集群中任意节点名称:
注意:步骤 1 至 步骤 3 需在所有已加入互联集群的业务集群上执行。
操作步骤
删除业务集群中名为 ovn-ic-config 的 ConfigMap,执行以下命令。
通过平台操作退出互联集群。
使用以下命令进入 ovn-central 的 Leader Pod。
登录控制器部署节点,删除控制器。
Docker 命令:
Containerd 命令:
使用以下命令删除 global 集群中名为 ovn-ic 的 ConfigMap。
加入集群互联后,若需配置集群网关高可用,可执行以下步骤:
登录需改造为高可用网关的集群,执行以下命令将 enable-ic
字段修改为 false
。
注意:将 enable-ic
字段改为 false
会中断集群互联,直到再次设置为 true
。
修改网关节点配置,更新 gw-nodes
字段,网关节点之间用英文逗号分隔;同时将 enable-ic
字段改为 true
。
进入集群 ovn-central 中的 Pod,执行 ovn-nbctl lrp-get-gateway-chassis {当前集群名称}-ts
命令,验证配置是否生效。