" 如果你怀念 SDN 领域丰富的网络能力却在云原生领域苦苦追寻而不得,那么 Kube-OVN 将是你的最佳选择。本系列我们将逐个介绍Kube-OVN高级功能的工作原理及使用路径,帮你尽快征服容器网络难题!"
Submariner作为可以打通多个 Kubernetes 集群 Pod 和 Service 网络的开源网络组件,能够帮助 Kube-OVN 实现多集群互联。
相比通过OVN-IC打通多集群网络的方式,Submariner 可以打通 Kube-OVN 和非 Kube-OVN 的集群网络,并能提供 Service 的跨集群能力。但是 Submariner 目前只能实现默认子网的打通,无法实现多子网选择性打通。
前提条件
部署 Submariner
下载subctl
二进制文件,并部署到相应路径:
curl -Ls https://get.submariner.io | bash
export PATH=$PATH:~/.local/bin
echo export PATH=\$PATH:~/.local/bin >> ~/.profile
切换kubeconfig
至希望部署submariner-broker
的集群进行部署:
subctl deploy-broker
在本文档中cluster0
的默认子网 CIDR 为10.16.0.0/16
,cluster1
的默认子网 CIDR 为11.16.0.0/16
。
切换kubeconfig
至cluster0
注册集群至 broker,并注册网关节点:
subctl join broker-info.subm --clusterid cluster0 --clustercidr 10.16.0.0/16 --natt=false --cable-driver vxlan --health-check=false
kubectl label nodes cluster0 submariner.io/gateway=true
切换kubeconfig
至cluster1
注册集群至 broker,并注册网关节点:
subctl join broker-info.subm --clusterid cluster1 --clustercidr 11.16.0.0/16 --natt=false --cable-driver vxlan --health-check=false
kubectl label nodes cluster1 submariner.io/gateway=true
接下来可以在两个集群内分别启动 Pod 并尝试使用 IP 进行相互访问。
如果出现网络互通问题可通过subctl
命令进行诊断:
subctl show all
subctl diagnose all
更多 Submariner 相关操作请查看 Submariner 用户手册(https://submariner.io/operations/usage/)
更多功能介绍,请见Kube-OVN 最新中文文档(点击阅读原文):https://kubeovn.github.io/docs/v1.10.x/