34.7. コミュニティーエイリアスの設定
クラスター管理者は、コミュニティーエイリアスを設定して、さまざまなアドバタイズメントで使用できます。
34.7.1. コミュニティーカスタムリソースについて
community カスタムリソースは、コミュニティーのエイリアスのコレクションです。ユーザーは、BGPAdvertisement を使用して ipAddressPools をアドバタイズするときに使用される名前付きエイリアスを定義できます。次の表で、community カスタムリソースのフィールドについて説明します。
community CRD は BGPAdvertisement にのみ適用されます。
表34.6 MetalLB コミュニティーカスタムリソース
| フィールド | タイプ | 説明 |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
BGPAdvertisements で使用できる BGP コミュニティーエイリアスのリストを指定します。コミュニティーエイリアスは、名前 (エイリアス) と値 (番号:番号) のペアで設定されます。 |
表34.7 CommunityAlias
| フィールド | タイプ | 説明 |
|---|---|---|
|
|
|
|
|
|
|
指定された名前に対応する BGP |
34.7.2. BGP アドバタイズメントとコミュニティーエイリアスを使用した MetalLB の設定
MetalLB を次のように設定し、IPAddressPool が BGP プロトコルでアドバタイズされ、コミュニティーエイリアスが NO_ADVERTISE コミュニティーの数値に設定されるようにします。
次の例では、ピア BGP ルーター doc-example-peer-community は、MetalLB がサービスに割り当てるロードバランサー IP アドレスごとに 1 つの 203.0.113.200/32 ルートと 1 つの fc00:f853:ccd:e799::1/128 ルートを受信します。コミュニティーエイリアスは、NO_ADVERTISE コミュニティーで設定されます。
前提条件
-
OpenShift CLI (
oc) がインストールされている。 -
cluster-admin権限を持つユーザーとしてログインしている。
手順
IP アドレスプールを作成します。
以下の例のような内容で、
ipaddresspool.yamlなどのファイルを作成します。apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: doc-example-bgp-community spec: addresses: - 203.0.113.200/30 - fc00:f853:ccd:e799::/124IP アドレスプールの設定を適用します。
$ oc apply -f ipaddresspool.yaml
community1という名前のコミュニティーエイリアスを作成します。apiVersion: metallb.io/v1beta1 kind: Community metadata: name: community1 namespace: metallb-system spec: communities: - name: NO_ADVERTISE value: '65535:65282'doc-example-bgp-peerという名前の BGP ピアを作成します。次の例のようなコンテンツを含む
bgppeer.yamlなどのファイルを作成します。apiVersion: metallb.io/v1beta2 kind: BGPPeer metadata: namespace: metallb-system name: doc-example-bgp-peer spec: peerAddress: 10.0.0.1 peerASN: 64501 myASN: 64500 routerID: 10.10.10.10
BGP ピアの設定を適用します。
$ oc apply -f bgppeer.yaml
コミュニティーエイリアスを使用して BGP アドバタイズメントを作成します。
以下の例のような内容で、
bgpadvertisement.yamlなどのファイルを作成します。apiVersion: metallb.io/v1beta1 kind: BGPAdvertisement metadata: name: bgp-community-sample namespace: metallb-system spec: aggregationLength: 32 aggregationLengthV6: 128 communities: - NO_ADVERTISE 1 ipAddressPools: - doc-example-bgp-community peers: - doc-example-peer- 1
- ここでは、コミュニティーのカスタムリソース (CR) 名ではなく、
CommunityAlias.nameを指定します。
設定を適用します。
$ oc apply -f bgpadvertisement.yaml