4.4.4. 为 BGP 为 RHOSO 网络 VIPS 准备 RHOCP


创建 BGPPeer 自定义资源(CR)对,以定义哪个叶交换机连接到每个节点上的 eth2eth3 接口。例如,worker-0 有两个 BGPPeer CR,一个用于 leaf-0,一个用于 leaf-1。

您还必须创建 IPAddressPool CR 来定义要公告的网络范围,以及一个 BGPAdvertisement CR,用于定义如何声明 BGPPeer CR,并将 IPAddressPool CR 链接到接收广告的 BGPPeer CR。

流程

  1. 在工作站上创建一个 BGPPeer CR 文件,如 bgppeers.yaml
  2. 将每个节点的 BGPPeer CR 对配置为 peer。以下示例为 worker-0 节点配置两个 BGPPeer CR,一个用于 leaf-0,一个用于 leaf-1 :

    apiVersion: metallb.io/v1beta2
    kind: BGPPeer
    metadata:
      name: bgp-peer-node-0-0
      namespace: metallb-system
    spec:
      myASN: 64999
      nodeSelectors:
      - matchExpressions:
    	- key: kubernetes.io/hostname
      	operator: In
      	values:
      	- worker-0
      password: r3dh4t1234
      peerASN: 64999
      peerAddress: 100.64.0.13
    ---
    apiVersion: metallb.io/v1beta2
    kind: BGPPeer
    metadata:
      name: bgp-peer-node-0-1
      namespace: metallb-system
    spec:
      myASN: 64999
      nodeSelectors:
      - matchExpressions:
    	- key: kubernetes.io/hostname
      	operator: In
      	values:
      	- worker-0
      password: r3dh4t1234
      peerASN: 64999
      peerAddress: 100.65.0.13
  3. 创建 BGPPeer CR:

    $ oc create -f bgppeers.yaml
  4. 在工作站上创建一个 IPAddressPool CR 文件,例如 ipaddresspools-bgp.yaml
  5. IPAddressPool CR 文件中,在每个隔离网络上配置 IPAddressPool 资源,以指定 MetalLB 具有授权的 IP 地址范围:

    apiVersion: metallb.io/v1beta1
    kind: IPAddressPool
    metadata:
      name: ctlplane
      namespace: metallb-system
    spec:
      addresses:
      - 192.168.125.80-192.168.125.90
    ---
    apiVersion: metallb.io/v1beta1
    kind: IPAddressPool
    metadata:
      name: internalapi
      namespace: metallb-system
    spec:
      addresses:
      - 172.17.0.80-172.17.0.90
    • spec.addresses: IPAddressPool 范围不得与 whereabouts IPAM 范围和 NetConfig allocationRange 重叠。

    有关如何配置其他 IPAddressPool 资源参数的详情,请参考 RHOCP 网络概述 中配置 MetalLB BGP 对等点

  6. 在集群中创建 IPAddressPool CR:

    $ oc apply -f ipaddresspools-bgp.yaml
  7. 验证 IPAddressPool CR 是否已创建:

    $ oc describe -n metallb-system IPAddressPool
  8. 在工作站上创建一个 BGPAdvertisement CR 文件,如 bgpadvert.yaml

    apiVersion: metallb.io/v1beta1
    kind: BGPAdvertisement
    metadata:
      name: bgpadvertisement
      namespace: metallb-system
    spec:
      ipAddressPools:
      - ctlplane
      - internalapi
      - storage
      peers:
      - bgp-peer-node-0-0
      - bgp-peer-node-0-1
      - bgp-peer-node-1-0
      - bgp-peer-node-1-1
      - bgp-peer-node-2-0
      - bgp-peer-node-2-1
      ...
    • peers :列出您为每个 RHOCP 节点需要与之通信的对等 IP 地址定义的所有 BGPPeer CR。
  9. 在集群中创建 BGPAdvertisement CR:

    $ oc apply -f bgpadvert.yaml
  10. 如果您的集群将 OVNKubernetes 用作网络后端,则必须启用全局转发,以便 MetalLB 可以在二级网络接口中工作。

    1. 检查集群使用的网络后端:

      $ oc get network.operator cluster --output=jsonpath='{.spec.defaultNetwork.type}'
    2. 如果后端是 OVNKubernetes,则运行以下命令来启用全局 IP 转发:

      $ oc patch network.operator cluster -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}' --type=merge

其他资源

  • link:https://docs.redhat.com/en/documentation/openshift_container_platform/4.20/html/ingress_and_load_balancing/load-balancing-with-metallb#nw-metallb-configure-bgppeer_configure-metallb-bgp-peers [配置 BGP peer]
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部