34.7. コミュニティーエイリアスの設定
クラスター管理者は、コミュニティーエイリアスを設定して、さまざまなアドバタイズメントで使用できます。
34.7.1. コミュニティーカスタムリソースについて
community
カスタムリソースは、コミュニティーのエイリアスのコレクションです。ユーザーは、BGPAdvertisement
を使用して ipAddressPools
をアドバタイズするときに使用される名前付きエイリアスを定義できます。次の表で、community
カスタムリソースのフィールドを説明します。
community
CRD は BGPAdvertisement にのみ適用されます。
フィールド | 型 | 説明 |
---|---|---|
|
|
|
|
|
|
|
|
BGPAdvertisements で使用できる BGP コミュニティーエイリアスのリストを指定します。コミュニティーエイリアスは、名前 (エイリアス) と値 (番号 : 番号) のペアで構成されます。 |
フィールド | 型 | 説明 |
---|---|---|
|
|
|
|
|
指定された名前に対応する 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::/124
IP アドレスプールの設定を適用します。
$ 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