4.2.3. BGP アドバタイズメントと高度なユースケースを使用する MetalLB の設定
MetalLB を設定して、MetalLB がロードバランサーサービスに 203.0.113.200 から 203.0.113.203 の範囲、および fc00:f853:ccd:e799::0 から fc00:f853:ccd:e799::f の 範囲の IP アドレスを割り当てるようにします。
MetalLB が 203.0.113.200 の IP アドレスをサービスに割り当てる例を見ていき、これら 2 つの BGP アドバタイズメントを説明します。その IP アドレスを例にとると、スピーカーは BGP ピアに対して以下の 2 つのルートをアドバタイズします。
-
localPrefが100に、コミュニティーがNO_ADVERTISEコミュニティーの数値に設定されている203.0.113.200/32。この仕様は、ピアルーターにこのルートを使用できることを指定していますが、このルートに関する情報を BGP ピアに伝播しないようにします。 -
MetalLB で割り当てられたロードバランサーの IP アドレスを 1 つのルートに集約する
203.0.113.200/30。MetalLB は、コミュニティー属性が8000:800に設定された BGP ピアに集約ルートをアドバタイズします。BGP ピアは、203.0.113.200/30ルートを他の BGP ピアに伝播します。トラフィックが speaker のあるノードにルーティングされる場合には、203.0.113.200/32ルートを使用して、トラフィックがクラスターに転送され、サービスに関連付けられている Pod に転送されます。
サービスを追加し、MetalLB がプールからロードバランサーの IP アドレスをより多く割り当てると、ピアルーターは各サービスに対して 1 つのローカルルート (203.0.113.20x/32) と、集約ルート (203.0.113.200/30) を受け取ります。追加する各サービスは /30 ルートを生成しますが、MetalLB は、ピアルーターと通信する前に、ルートの重複を排除して 1 つの BGP アドバタイズにします。
4.2.3.1. BGP を使用した高度なアドレスプール設定のアドバタイズ リンクのコピーリンクがクリップボードにコピーされました!
MetalLB が BGP を使用して高度なアドレスプールをアドバタイズするように設定します。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
IP アドレスプールを作成します。
以下の例のような内容で、
ipaddresspool.yamlなどのファイルを作成します。apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: doc-example-bgp-adv labels: zone: east spec: addresses: - 203.0.113.200/30 - fc00:f853:ccd:e799::/124 autoAssign: false # ...IP アドレスプールの設定を適用します。
$ oc apply -f ipaddresspool.yaml
BGP アドバタイズメントを作成します。
以下の例のような内容で、
bgpadvertisement1.yamlなどのファイルを作成します。apiVersion: metallb.io/v1beta1 kind: BGPAdvertisement metadata: name: bgpadvertisement-adv-1 namespace: metallb-system spec: ipAddressPools: - doc-example-bgp-adv communities: - 65535:65282 aggregationLength: 32 localPref: 100 # ...設定を適用します。
$ oc apply -f bgpadvertisement1.yaml以下の例のような内容で、
bgpadvertisement2.yamlなどのファイルを作成します。apiVersion: metallb.io/v1beta1 kind: BGPAdvertisement metadata: name: bgpadvertisement-adv-2 namespace: metallb-system spec: ipAddressPools: - doc-example-bgp-adv communities: - 8000:800 aggregationLength: 30 aggregationLengthV6: 124 # ...設定を適用します。
$ oc apply -f bgpadvertisement2.yaml