4.3. RHOSO ネットワーク VIPS 用の RHOCP の準備
Red Hat OpenStack Services on OpenShift (RHOSO) サービスは、Red Hat OpenShift Container Platform (RHOCP) のワークロードとして実行されます。仮想 IP (VIP) のアナウンス方法を定義するには L2Advertisement リソースを作成し、VIP として使用できる IP を設定するには IPAddressPool リソースを作成する必要があります。レイヤー 2 モードでは、1 つのノードがローカルネットワークにサービスをアドバタイズする役割を担います。
手順
-
ワークステーションに
IPAddressPoolCR ファイル (例:openstack-ipaddresspools.yaml) を作成します。 IPAddressPoolCR ファイルで、分離ネットワークのIPAddressPoolリソースを設定して、MetalLB に権限を与える IP アドレスの範囲を指定します。apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: internalapi namespace: metallb-system spec: addresses: - 172.17.0.80-172.17.0.901 autoAssign: true avoidBuggyIPs: false --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: ctlplane spec: addresses: - 192.168.122.80-192.168.122.90 autoAssign: true avoidBuggyIPs: false --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: storage spec: addresses: - 172.18.0.80-172.18.0.90 autoAssign: true avoidBuggyIPs: false --- apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: tenant spec: addresses: - 172.19.0.80-172.19.0.90 autoAssign: true avoidBuggyIPs: false- 1
IPAddressPoolの範囲が、whereaboutsIPAM の範囲および NetConfigallocationRangeと重複しないようにしてください。
その他の
IPAddressPoolリソースパラメーターを設定する方法は、RHOCP ネットワーク ガイドの MetalLB アドレスプールの設定 を参照してください。クラスターに
IPAddressPoolCR を作成します。$ oc apply -f openstack-ipaddresspools.yamlIPAddressPoolCR が作成されたことを確認します。$ oc describe -n metallb-system IPAddressPool-
ワークステーションに
L2AdvertisementCR ファイル (例:openstack-l2advertisement.yaml) を作成します。 L2AdvertisementCR ファイルで、L2AdvertisementCR を設定して、どのノードがローカルネットワークにサービスをアドバタイズするかを定義します。各ネットワークに 1 つのL2Advertisementリソースを作成します。次の例の各
L2AdvertisementCR では、ネットワークアドレスプールから要求された VIP が VLAN に割り当てられているインターフェイスで通知されるように指定しています。apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: internalapi namespace: metallb-system spec: ipAddressPools: - internalapi interfaces: - internalapi1 --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: ctlplane namespace: metallb-system spec: ipAddressPools: - ctlplane interfaces: - enp6s0 --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: storage namespace: metallb-system spec: ipAddressPools: - storage interfaces: - storage --- apiVersion: metallb.io/v1beta1 kind: L2Advertisement metadata: name: tenant namespace: metallb-system spec: ipAddressPools: - tenant interfaces: - tenant- 1
- VLAN アドレスプールから要求された VIP が通知されるインターフェイス。
その他の
L2Advertisementリソースパラメーターを設定する方法は、RHOCP ネットワーク ガイドの L2 アドバタイズメントとラベルを使用した MetalLB の設定 を参照してください。クラスターに
L2AdvertisementCR を作成します。$ oc apply -f openstack-l2advertisement.yamlL2AdvertisementCR が作成されたことを確認します。$ oc get -n metallb-system L2Advertisement NAME IPADDRESSPOOLS IPADDRESSPOOL SELECTORS INTERFACES ctlplane ["ctlplane"] ["enp6s0"] internalapi ["internalapi"] ["internalapi"] storage ["storage"] ["storage"] tenant ["tenant"] ["tenant"]クラスターにネットワークバックエンドとして 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