混合集群中的容器网络插件包括本地数据中心中运行的容器网络插件和云上计算节点上运行的容器网络插件两部分。本文将介绍如何在混合集群中部署和配置Terway网络插件。
前提条件
-
对于场景二:本地数据中心容器网络模式为BGP网络及场景三:本地数据中心容器网络为Host网络,在创建注册集群时需要配置Terway网络的参数。
- 根据您的需要选择是否选中IPvlan。
- 配置Pod虚拟交换机。
- 配置Service CIDR。
- 已完成创建混合集群中步骤4之前的操作。
场景一:本地数据中心容器网络模式为覆盖(Overlay)网络
若本地数据中心内的容器网络模式为覆盖网络,则云上计算节点也可以复用此网络模式,只需要保证云上计算节点能够正常拉取容器网络插件守护进程集所使用的容器镜像即可。
例如,常见的覆盖网络模式有:
- Flannel VXLAN模式。
- Calico IPIP模式。
- Cilium VXLAN模式。
场景二:本地数据中心容器网络模式为BGP网络
若本地数据中心内的容器网络模式为BGP网络,那么云上计算节点需要使用Terway网络。关于云上云下容器网络互通,请参见云上边界路由器的BGP配置。
在此场景下,需要保证以下条件:
- 云下容器网络插件(如Calico BGP路由反射模式)的守护进程集不要被调度到云上计算节点。
- 同时也要保证Terway网络插件的守护进程集不要被调度到云下计算节点。
在注册集群中,通过注册集群节点池扩容的计算节点都会添加一个固定的节点标签:alibabacloud.com/external=true
,可以作为区分云上云下节点的过滤条件。
例如,针对云下Calico网络插件,可以使用
nodeAffinity
设置其不被调度到拥有标签alibabacloud.com/external=true
的节点上。其他任何运行于云下且不希望被调度到云上的工作负载,都可以使用这种方式设置。执行以下命令更新Calico网络插件。cat <<EOF > calico-ds.pactch
spec:
template:
spec:
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: alibabacloud.com/external
operator: NotIn
values:
- "true"
EOF
kubectl -n kube-system patch ds calico-node -p "$(cat calico-ds.pactch)"
云上Terway网络插件默认只被调度到拥有标签alibabacloud.com/external=true
的节点上。
场景三:本地数据中心容器网络为Host网络
由于本地数据中心内的容器网络使用的是Host网络,所以只需保证云上Terway网络插件的守护进程集不被调度到云下即可。云上Terway网络插件默认只调度到拥有节点标签为alibabacloud.com/external=true
的云上节点。
安装和配置Terway网络插件
在场景二和场景三下,需要为混合集群的云上节点安装和配置Terway网络插件。
步骤一:安装Terway插件
步骤二:配置Terway插件
在注册集群中,所有Addon组件都使用自定义的AccessKey来获取云资源的操作权限。
开启Terway组件的NetworkPolicy
在注册集群中Terway组件默认关闭NetworkPolicy。若您不需要开启NetworkPolicy,请跳过该步骤。更多信息,请参见使用网络策略Network Policy。
注意 Terway组件的NetworkPolicy功能依赖Calico CRD。若您的集群已经使用了Calico容器网络插件,开启Terway的NetworkPolicy功能时可能导致已有Calico容器网络异常。若有问题,请提交工单咨询。