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 routeadvertisement
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
- name: RouteAdvertisements
- name: RouteAdvertisements
Copy 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 -owide
Copy 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.0
Copy 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; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
設定が適用されたか検証します。
次のコマンドを実行して、
FRRConfiguration
設定が作成されたか検証します。oc get frrconfiguration -A
$ oc get frrconfiguration -A
Copy 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 -A
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME STATUS default Accepted
NAME STATUS default Accepted
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、外部 FRR コンテナー ID を取得します。
sudo podman ps | grep frr
$ sudo podman ps | grep frr
Copy 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 frr
Copy 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-k8s
Pod を見つけます。oc -n openshift-frr-k8s get pod -owide
$ oc -n openshift-frr-k8s get pod -owide
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、OpenShift Container Platform クラスターから、FRR コンテナー内にあるクラスターノードの
frr-k8s
Pod 上の BGP ルートを確認します。oc -n openshift-frr-k8s -c frr rsh frr-k8s-86wmq
$ oc -n openshift-frr-k8s -c frr rsh frr-k8s-86wmq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、クラスターノードからの IP ルートを確認します。
vtysh
sh-5.1# vtysh
Copy 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 bgp
Copy 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 bgp
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow