混合云节点池接入本地IDC,其复杂的网络拓扑和跨域路由需求超出了常规容器网络插件的能力范围。Terway Hybrid网络插件专为混合云节点池设计,它能确保集群内Pod(处于IDC或云端)之间的网络互通。
工作原理
ACK混合云节点池的整体网络架构如下,整体分为两个网络域:阿里云中心云VPC和本地IDC(如果存在多个IDC或者三方云和中心云互联,则有多个网络域)。两个网络域之间通过专线实现三层内网互通。其中中心VPC的ACK集群可采用Flannel/Terway网络插件,本地IDC采用Terway Hybrid网络插件。
Terway Hybrid模式选择
Terway Hybrid在节点池级别提供了两种模式,请在创建混合云节点池时进行配置。
对比项 | Underlay模式 | Overlay模式 |
优势 | 性能高,无VXLAN封包开销,网络延迟低。相比Overlay模式性能提升约20%。 | 配置简单,对底层网络无特殊要求,部署灵活。 |
网络要求 | 节点之间需要二层网络域互通。若节点分布在不同三层网络域,则必须配置BGP协议宣告容器路由。 | 节点之间仅需三层内网互通。 |
容器网络路径 | 容器通信数据包直接通过主机网卡进行三层通信传输。 | 容器网络数据包通过虚拟网卡进行VXLAN封包,借助主机网络8472端口进行UDP传输。 |
适用范围
已创建ACK托管集群Pro版,版本为1.33及以上。
使用混合云节点池时,同时保有ECS节点,用于部署部分ACK管控组件(建议使用3个及以上ECS节点以保证高可用)。
操作步骤
步骤一:打通跨云网络
在安装Terway Hybrid插件前,需要先确保跨云网络互通:
如本地IDC需主动访问阿里云产品,请在本地IDC核心交换机中添加阿里云产品网段100.64.0.0/10的路由条目,请参见专线接入配置私网连接。
如果云上资源需要访问IDC内的Pod,IDC核心交换机需支持BGP协议,具体操作请参见步骤三:将容器向外暴露。
步骤二:安装插件
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标集群名称,然后在左侧导航栏,单击组件管理。
安装控制面组件terway-hybrid-controlplane。
配置项
说明
混合云容器网段
混合云节点池使用的容器网段。
混合云容器网段掩码大小
为混合云节点池中每个节点划分容器网段掩码大小。例如设置为24时,每个节点都将使用
xxx.xxx.xxx.0/24
作为容器网段,支持256个Pod IP。源地址转换
混合云节点的Pod访问集群外部地址时,是否将其源IP地址转换为节点IP地址。
如选择关闭,请确保外部网络设备可解析Pod IP,请参见步骤三:将容器向外暴露。
安装数据面组件terway-hybrid,无需配置参数。后续添加的混合云节点将自动安装Terway Hybrid插件。
步骤三:将容器向外暴露
如果本地IDC外的网络设备(例如中心VPC、集群外设备)需直接访问容器,请配置BGP将容器的路由信息动态宣告给交换机。
在集群内创建BGP配置
Terway Hybrid定义了BGPClusterConfig
CRD,其中保存了BGP配置,并通过nodeSelector关联到一个混合云节点池。
Terway Hybrid默认不创建该资源,请为需要使用BGP的每个混合云节点池都创建一个BGPClusterConfig
。
使用以下代码创建名为
bgpclusterconfig.yaml
的文件。apiVersion: network.alibabacloud.com/v1beta1 kind: BGPClusterConfig metadata: name: bgp spec: localASN: 65010 nodeSelector: matchLabels: alibabacloud.com/nodepool-id: "np-xxx" bgpSpeakers: - name: hybrid-node-1 peers: - name: switch-1 peerASN: 65001 peerAddress: "10.10.0.1" - name: hybrid-node-2 peers: - name: switch-1 peerASN: 65001 peerAddress: "10.10.0.1" #可选项 authPassword: secretKeyRef: name: bgp-secret key: password --- #可选项 apiVersion: v1 kind: Secret metadata: name: bgp-secret namespace: kube-system type: Opaque data: password: bXxXXXxXXXXXx== # base64编码的值。
参数
是否必填
说明
metadata.name
是
BGPClusterConfig
在集群中的名称。spec.localASN
是
自治系统编号(ASN),用于标识BGP Speaker所在的网络。推荐使用私有ASN,范围为[64512. 65535]。
spec.nodeSelector
是
指定此BGP配置将应用在哪些节点上,建议使用label选择一个混合云节点池中的所有节点。
spec.bgpSpeakers
是
从已关联节点中选择BGP Speaker节点,这些节点将负责宣告Pod的路由。
建议选择2个及以上节点,避免单点故障。
spec.bgpSpeakers.name
是
BGP Speaker节点的名称,必须与
spec.nodeSelector
选中的节点名一致。spec.bgpSpeakers.peers
是
与此BGP Speaker建立对等会话(BGP Peering)的设备列表,通常是接入层交换机。
spec.bgpSpeakers.peers.name
是
对端BGP Peer的设备名称。
spec.bgpSpeakers.peers.peerASN
是
对端BGP Peer的自治系统编号(ASN)。
spec.bgpSpeakers.peers.peerAddress
是
对端BGP Peer的IP地址。
spec.bgpSpeakers.peers.authPassword
否
用于配置BGP会话认证密码,通过引用Secret资源获取。Secret必须处于
kube-system
命名空间。创建BGPClusterConfig。
kubectl apply -f bgpclusterconfig.yaml
配置外部网络设备
在本地IDC的网络设备中启用BGP服务,将在集群内创建BGP配置中选择的BGP节点配置为BGP Peer。然后在中心VPC路由表、专线网关和IDC核心交换机上,都添加指向IDC容器网段的路由。配置完成后,确认可以和集群中的Pod成功建立BGP会话。
Terway Hybrid默认开启BGP GracefulRestart,默认时间为600秒,请您合理配置交换机的BGP GracefulRestart。