34.7. 配置社区别名


作为集群管理员,您可以配置一个社区别名并在不同的广告中使用它。

34.7.1. 关于社区自定义资源

community 自定义资源是社区的一个别名集合。用户可使用 BGPAdvertis 定义广告 ipAddressPools 时使用的命名别名。下表中描述了 community 自定义资源的字段。

注意

community CRD 仅适用于 BGPAdvertisement。

表 34.6. MetalLB 社区自定义资源
字段类型描述

metadata.name

string

指定 community 的名称。

metadata.namespace

string

指定 community 的命名空间。指定 MetalLB Operator 使用的同一命名空间。

spec.communities

string

指定可在 BGPAdvertisements 中使用的 BGP 社区别名列表。社区别名由名称(别名)和值(数字:number)组成。通过引用 spec.communities 字段中的别名名称,将 BGPAdvertisement 链接到社区别名。

表 34.7. CommunityAlias
字段类型描述

name

string

community 的别名名称。

value

string

与给定名称对应的 BGP community 值。

34.7.2. 使用 BGP 广告和社区别名配置 MetalLB

按如下所示配置 MetalLB,以便 BGP 协议广告 IPAddressPool,并将社区别名设置为 NO_ADVERTISE 社区的数字值。

在以下示例中,对等 BGP 路由器 doc-example-peer-community 接收一个 203.0.113.200/32 路由,以及一个 fc00:f853:ccd:e799::1/128 路由,每个 load-balancer IP 地址都分配给服务。使用 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 peer。

    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 peer 的配置:

      $ 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
      在这里指定 CommunityAlias.name,而不是社区自定义资源 (CR) 名称。
    2. 应用配置:

      $ oc apply -f bgpadvertisement.yaml
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.