32.7. コミュニティーエイリアスの設定

クラスター管理者は、コミュニティーエイリアスを設定して、さまざまなアドバタイズメントで使用できます。

32.7.1. コミュニティーカスタムリソースについて

community カスタムリソースは、コミュニティーのエイリアスのコレクションです。ユーザーは、BGPAdvertisement を使用して ipAddressPools をアドバタイズするときに使用される名前付きエイリアスを定義できます。次の表で、community カスタムリソースのフィールドについて説明します。

注記

community CRD は BGPAdvertisement にのみ適用されます。

表32.5 MetalLB コミュニティーカスタムリソース

フィールド説明

metadata.name

string

community の名前を指定します。

metadata.namespace

string

community の namespace を指定します。MetalLB Operator が使用するものと同じ namespace を指定します。

spec.communities

string

BGPAdvertisements で使用できる BGP コミュニティーエイリアスのリストを指定します。コミュニティーエイリアスは、名前 (エイリアス) と値 (番号:番号) のペアで設定されます。spec.communities フィールドのエイリアス名を参照して、BGPAdvertisement をコミュニティーエイリアスにリンクします。

表32.6 CommunityAlias

フィールド説明

name

string

community のエイリアスの名前。

value

string

指定された名前に対応する BGP community 値。

32.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 権限を持つユーザーとしてログインしている。

手順

  1. IP アドレスプールを作成します。

    1. 以下の例のような内容で、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
    2. IP アドレスプールの設定を適用します。

      $ oc apply -f ipaddresspool.yaml
  2. community1 という名前のコミュニティーエイリアスを作成します。

    apiVersion: metallb.io/v1beta1
    kind: Community
    metadata:
      name: community1
      namespace: metallb-system
    spec:
      communities:
        - name: NO_ADVERTISE
          value: '65535:65282'
  3. doc-example-bgp-peer という名前の BGP ピアを作成します。

    1. 次の例のようなコンテンツを含む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
    2. BGP ピアの設定を適用します。

      $ oc apply -f bgppeer.yaml
  4. コミュニティーエイリアスを使用して BGP アドバタイズメントを作成します。

    1. 以下の例のような内容で、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 を指定します。
    2. 設定を適用します。

      $ oc apply -f bgpadvertisement.yaml