4.8. MetalLB と FRR-K8s の統合の設定
MetalLB がネイティブに提供していない高度なルーティングサービスにアクセスするには、FRRConfiguration カスタムリソース (CR) を設定します。CR を定義することで、特定の FRRouting (FRR) 機能が公開され、クラスターのルーティング機能が標準的な MetalLB アドバタイズメントを超えて拡張されます。
FRRouting (FRR) は、Linux および UNIX プラットフォーム向けの、無料のオープンソースインターネットルーティングプロトコルスイートです。FRR-K8s は Kubernetes ベースの DaemonSet であり、FRR API の一部を Kubernetes に準拠した形で公開します。MetalLB は、適用された MetalLB 設定に対応する FRR-K8s 設定を生成します。
仮想ルート転送 (VRF) を設定する際は、VRF のテーブル ID を 1000 未満に変更する必要があります。1000 より大きい 値 は OpenShift Container Platform 用に予約されているためです。
4.8.1. FRR の設定 リンクのコピーリンクがクリップボードにコピーされました!
MetalLB で FRR サービスを使用するために、複数の FRRConfiguration CR を作成できます。
MetalLB は FRRConfiguration オブジェクトを生成し、FRR-K8s はそのオブジェクトをすべてのユーザーが作成した他のすべての設定とマージします。たとえば、特定の近隣によりアドバタイズされた接頭辞すべてを受信するように FRR-K8s を設定できます。次の例では、ホスト 172.18.0.5 の BGPPeer によってアドバタイズされるすべての接頭辞を受信するように FRR-K8 を設定します。
FRRConfiguration CR の例
apiVersion: frrk8s.metallb.io/v1beta1
kind: FRRConfiguration
metadata:
name: test
namespace: metallb-system
spec:
bgp:
routers:
- asn: 64512
neighbors:
- address: 172.18.0.5
asn: 64512
toReceive:
allowed:
mode: all
# ...
また、FRR-K8s を設定して、適用される設定に関係なく、常に接頭辞のセットをブロックすることもできます。これは、クラスターの誤動作を引き起こす可能性のある、Pod や クラスター IP の CIDR への経路を回避するのに役立ちます。次の例では、接頭辞セット 192.168.1.0/24 をブロックします。
MetalLB CR の例
apiVersion: metallb.io/v1beta1
kind: MetalLB
metadata:
name: metallb
namespace: metallb-system
spec:
bgpBackend: frr-k8s
frrk8sConfig:
alwaysBlock:
- 192.168.1.0/24
# ...
FRR-K8s では、clusterNetwork CIDR と serviceNetwork CIDR をブロックするように設定できます。次のコマンドを実行すると、これらの CIDR アドレス仕様の値を表示できます。
$ oc describe network.config/cluster