32.7. 配置社区别名
作为集群管理员,您可以配置一个社区别名并在不同的广告中使用它。
32.7.1. 关于社区自定义资源
community
自定义资源是社区的一个别名集合。用户可使用 BGPAdvertis
定义广告 ipAddressPools
时使用的命名别名。下表中描述了 community
自定义资源的字段。
community
CRD 仅适用于 BGPAdvertisement。
字段 | 类型 | 描述 |
---|---|---|
|
|
指定 |
|
|
指定 |
|
|
指定可在 BGPAdvertisements 中使用的 BGP 社区别名列表。社区别名由名称(别名)和值(数字:number)组成。通过引用 |
字段 | 类型 | 描述 |
---|---|---|
|
|
|
|
|
与给定名称对应的 BGP |
32.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
特权的用户身份登录。
流程
创建 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 peer。创建一个文件,如
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 peer 的配置:
$ 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
- 在这里指定
CommunityAlias.name
,而不是社区自定义资源 (CR) 名称。
应用配置:
$ oc apply -f bgpadvertisement.yaml