6.4. ルートアドバタイズメントのセットアップ例
クラスター管理者は、クラスターに対して次のルートアドバタイズメントのセットアップ例を設定できます。この設定は、ルートアドバタイズメントの設定方法を示すサンプルとして使用しています。
6.4.1. ルートアドバタイズメントのセットアップ例 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、クラスターに対して Border Gateway Protocol (BGP) ルーティングサポートを有効にできます。この設定は、ルートアドバタイズメントの設定方法を示すサンプルとして使用しています。この設定では、フルメッシュセットアップではなくルートリフレクションを使用します。
BGP ルーティングは、ベアメタルインフラストラクチャーでのみサポートされます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてクラスターにログインしている。 - クラスターは、ベアメタルインフラストラクチャーにインストールされている。
- FRR デーモンコンテナーを実行する予定のクラスターにアクセスできるベアメタルシステムがある。
手順
次のコマンドを実行して、
RouteAdvertisementsフィーチャーゲートが有効になっていることを確認します。oc get featuregate -oyaml | grep -i routeadvertisement
$ oc get featuregate -oyaml | grep -i routeadvertisementCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
- name: RouteAdvertisements
- name: RouteAdvertisementsCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Cluster Network Operator (CNO) を設定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow CNO がすべてのノードを再起動するために数分かかる場合があります。
次のコマンドを実行して、ノードの IP アドレスを取得します。
oc get node -owide
$ oc get node -owideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、各ノードのデフォルトの Pod ネットワークを取得します。
oc get node <node_name> -o=jsonpath={.metadata.annotations.k8s\\.ovn\\.org/node-subnets}$ oc get node <node_name> -o=jsonpath={.metadata.annotations.k8s\\.ovn\\.org/node-subnets}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
{"default":["10.129.0.0/23"],"ns1.udn-network-primary-layer3":["10.150.6.0/24"]}{"default":["10.129.0.0/23"],"ns1.udn-network-primary-layer3":["10.150.6.0/24"]}Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、ベアメタルハイパーバイザーで、使用する外部 FRR コンテナーの IP アドレスを取得します。
ip -j -d route get <a cluster node's IP> | jq -r '.[] | .dev' | xargs ip -d -j address show | jq -r '.[] | .addr_info[0].local'
$ ip -j -d route get <a cluster node's IP> | jq -r '.[] | .dev' | xargs ip -d -j address show | jq -r '.[] | .addr_info[0].local'Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に示すように、各ノードの IP アドレスが含まれる FRR 用の
frr.confファイルを作成します。frr.conf設定ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の内容が含まれるファイルを、
daemonsという名前で作成します。daemons設定ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
frr.confファイルとdaemonsファイルの両方を、同じディレクトリー (例:/tmp/frr) に保存します。 次のコマンドを実行して、外部 FRR コンテナーを作成します。
sudo podman run -d --privileged --network host --rm --ulimit core=-1 --name frr --volume /tmp/frr:/etc/frr quay.io/frrouting/frr:9.1.0
$ sudo podman run -d --privileged --network host --rm --ulimit core=-1 --name frr --volume /tmp/frr:/etc/frr quay.io/frrouting/frr:9.1.0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の
FRRConfiguration設定およびRouteAdvertisements設定を作成します。次の内容で
receive_all.yamlファイルを作成します。receive_all.yaml設定ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の内容で
ra.yamlファイルを作成します。ra.yaml設定ファイルの例Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、
receive_all.yamlファイルとra.yamlファイルを適用します。for f in receive_all.yaml ra.yaml; do oc apply -f $f; done
$ for f in receive_all.yaml ra.yaml; do oc apply -f $f; doneCopy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
設定が適用されたか検証します。
次のコマンドを実行して、
FRRConfiguration設定が作成されたか検証します。oc get frrconfiguration -A
$ oc get frrconfiguration -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
RouteAdvertisements設定が作成されたか検証します。oc get ra -A
$ oc get ra -ACopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS default Accepted
NAME STATUS default AcceptedCopy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、外部 FRR コンテナー ID を取得します。
sudo podman ps | grep frr
$ sudo podman ps | grep frrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
22cfc713890e quay.io/frrouting/frr:9.1.0 /usr/lib/frr/dock... 5 hours ago Up 5 hours ago frr
22cfc713890e quay.io/frrouting/frr:9.1.0 /usr/lib/frr/dock... 5 hours ago Up 5 hours ago frrCopy to Clipboard Copied! Toggle word wrap Toggle overflow 前のステップで取得したコンテナー ID を使用して、外部 FRR コンテナーの
vtyshセッションで近隣の BGP とルートを確認します。以下のコマンドを実行します。sudo podman exec -it <container_id> vtysh -c "show ip bgp"
$ sudo podman exec -it <container_id> vtysh -c "show ip bgp"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、各クラスターノードの
frr-k8sPod を見つけます。oc -n openshift-frr-k8s get pod -owide
$ oc -n openshift-frr-k8s get pod -owideCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、OpenShift Container Platform クラスターから、FRR コンテナー内にあるクラスターノードの
frr-k8sPod 上の BGP ルートを確認します。oc -n openshift-frr-k8s -c frr rsh frr-k8s-86wmq
$ oc -n openshift-frr-k8s -c frr rsh frr-k8s-86wmqCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターノードからの IP ルートを確認します。
vtysh
sh-5.1# vtyshCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Hello, this is FRRouting (version 8.5.3). Copyright 1996-2005 Kunihiro Ishiguro, et al.
Hello, this is FRRouting (version 8.5.3). Copyright 1996-2005 Kunihiro Ishiguro, et al.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、IP ルートを確認します。
worker-2# show ip bgp
worker-2# show ip bgpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、OpenShift Container Platform クラスターからノードをデバッグします。
oc debug node/<node_name>
$ oc debug node/<node_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Temporary namespace openshift-debug-lbtgh is created for debugging node... Starting pod/worker-2-debug-zrg4v ... To use host binaries, run `chroot /host` Pod IP: 192.168.111.25 If you don't see a command prompt, try pressing enter.
Temporary namespace openshift-debug-lbtgh is created for debugging node... Starting pod/worker-2-debug-zrg4v ... To use host binaries, run `chroot /host` Pod IP: 192.168.111.25 If you don't see a command prompt, try pressing enter.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、BGP ルートがアドバタイズされていることを確認します。
ip route show | grep bgp
sh-5.1# ip route show | grep bgpCopy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow