4.4.4. RHOCP を BGP 用の RHOSO ネットワーク VIPS を使用するように準備する
各ノードの eth2 および eth3 インターフェイスに接続するリーフスイッチを定義するには、BGPPeer カスタムリソース (CR) のペアを作成する必要があります。たとえば、worker-0 には leaf-0 用と leaf-1 用に 1 つずつ、合計 2 つの BGPPeer CR があります。BGP ピアの詳細は、https://docs.redhat.com/en/documentation/openshift_container_platform/4.18/html/ingress_and_load_balancing/load-balancing-with-metallb#nw-metallb-configure-bgppeer_configure-metallb-bgp-peers [BGP ピアの設定] を参照してください。
また、アドバタイズされるネットワーク範囲を定義する IPAddressPool CR と、BGPPeer CR のアナウンス方法を定義し、アドバタイズを受信する BGPPeer CR に IPAddressPool CR をリンクする BGPAdvertisement CR も作成する必要があります。
手順
-
ワークステーションに
BGPPeerCR ファイル (例:bgppeers.yaml) を作成します。 ピアリングする各ノードの
BGPPeerCR のペアを設定します。次の例では、worker-0ノードに 2 つのBGPPeerCR を設定します。1 つは leaf-0 用、もう 1 つは 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.13BGPPeer 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.yamlIPAddressPoolCR が作成されたことを確認します。$ 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