使用Terway Hybrid网络插件

混合云节点池接入本地IDC,其复杂的网络拓扑和跨域路由需求超出了常规容器网络插件的能力范围。Terway Hybrid网络插件专为混合云节点池设计,它能确保集群内Pod(处于IDC或云端)之间的网络互通。

工作原理

ACK混合云节点池的整体网络架构如下,整体分为两个网络域:阿里云中心云VPC和本地IDC(如果存在多个IDC或者三方云和中心云互联,则有多个网络域)。两个网络域之间通过专线实现三层内网互通。其中中心VPCACK集群可采用Flannel/Terway网络插件,本地IDC采用Terway Hybrid网络插件。

image

Terway Hybrid模式选择

Terway Hybrid在节点池级别提供了两种模式,请在创建混合云节点池时进行配置。

对比项

Underlay模式

Overlay模式

优势

性能高,无VXLAN封包开销,网络延迟低。相比Overlay模式性能提升约20%。

配置简单,对底层网络无特殊要求,部署灵活。

网络要求

节点之间需要二层网络域互通。若节点分布在不同三层网络域,则必须配置BGP协议宣告容器路由。

节点之间仅需三层内网互通。

容器网络路径

容器通信数据包直接通过主机网卡进行三层通信传输。

image

容器网络数据包通过虚拟网卡进行VXLAN封包,借助主机网络8472端口进行UDP传输。

image

适用范围

  • 已创建ACK托管集群Pro,版本为1.33及以上。

  • 使用混合云节点池时,同时保有ECS节点,用于部署部分ACK管控组件(建议使用3个及以上ECS节点以保证高可用)。

操作步骤

步骤一:打通跨云网络

在安装Terway Hybrid插件前,需要先确保跨云网络互通:

步骤二:安装插件

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表

  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,单击组件管理

  3. 安装控制面组件terway-hybrid-controlplane

    配置项

    说明

    混合云容器网段

    混合云节点池使用的容器网段。

    混合云容器网段掩码大小

    为混合云节点池中每个节点划分容器网段掩码大小。例如设置为24时,每个节点都将使用xxx.xxx.xxx.0/24作为容器网段,支持256Pod IP。

    源地址转换

    混合云节点的Pod访问集群外部地址时,是否将其源IP地址转换为节点IP地址。

    如选择关闭,请确保外部网络设备可解析Pod IP,请参见步骤三:将容器向外暴露
  4. 安装数据面组件terway-hybrid,无需配置参数。后续添加的混合云节点将自动安装Terway Hybrid插件。

步骤三:将容器向外暴露

如果本地IDC外的网络设备(例如中心VPC、集群外设备)需直接访问容器,请配置BGP将容器的路由信息动态宣告给交换机。

image

在集群内创建BGP配置

Terway Hybrid定义了BGPClusterConfig CRD,其中保存了BGP配置,并通过nodeSelector关联到一个混合云节点池。

Terway Hybrid默认不创建该资源,请为需要使用BGP的每个混合云节点池都创建一个BGPClusterConfig
  1. 使用以下代码创建名为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 PeerIP地址。

    spec.bgpSpeakers.peers.authPassword

    用于配置BGP会话认证密码,通过引用Secret资源获取。Secret必须处于kube-system命名空间。

  2. 创建BGPClusterConfig。

    kubectl apply -f bgpclusterconfig.yaml

配置外部网络设备

在本地IDC的网络设备中启用BGP服务,将在集群内创建BGP配置中选择的BGP节点配置为BGP Peer。然后在中心VPC路由表、专线网关和IDC核心交换机上,都添加指向IDC容器网段的路由。配置完成后,确认可以和集群中的Pod成功建立BGP会话。

Terway Hybrid默认开启BGP GracefulRestart,默认时间为600秒,请您合理配置交换机的BGP GracefulRestart。