4.4.4. 为 BGP 为 RHOSO 网络 VIPS 准备 RHOCP
创建 BGPPeer 自定义资源(CR)对,以定义哪个叶交换机连接到每个节点上的 eth2 和 eth3 接口。例如,worker-0 有两个 BGPPeer CR,一个用于 leaf-0,一个用于 leaf-1。
您还必须创建 IPAddressPool CR 来定义要公告的网络范围,以及一个 BGPAdvertisement CR,用于定义如何声明 BGPPeer CR,并将 IPAddressPool CR 链接到接收广告的 BGPPeer CR。
流程
-
在工作站上创建一个
BGPPeerCR 文件,如bgppeers.yaml。 将每个节点的
BGPPeerCR 对配置为 peer。以下示例为worker-0节点配置两个BGPPeerCR,一个用于 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创建 BGPPeer CR:
$ oc create -f bgppeers.yaml-
在工作站上创建一个
IPAddressPoolCR 文件,例如ipaddresspools-bgp.yaml。 在
IPAddressPoolCR 文件中,在每个隔离网络上配置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范围不得与whereaboutsIPAM 范围和 NetConfigallocationRange重叠。
有关如何配置其他
IPAddressPool资源参数的详情,请参考 RHOCP 网络概述 中配置 MetalLB BGP 对等点。-
在集群中创建
IPAddressPoolCR:$ oc apply -f ipaddresspools-bgp.yaml验证
IPAddressPoolCR 是否已创建:$ oc describe -n metallb-system IPAddressPool在工作站上创建一个
BGPAdvertisementCR 文件,如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 地址定义的所有BGPPeerCR。
-
在集群中创建
BGPAdvertisementCR:$ oc apply -f bgpadvert.yaml如果您的集群将 OVNKubernetes 用作网络后端,则必须启用全局转发,以便 MetalLB 可以在二级网络接口中工作。
检查集群使用的网络后端:
$ oc get network.operator cluster --output=jsonpath='{.spec.defaultNetwork.type}'如果后端是 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]