26.4. 配置 MetalLB BGP peer


作为集群管理员,您可以添加、修改和删除边框网关协议(BGP)对等点。MetalLB Operator 使用 BGP peer 自定义资源来标识 MetalLB speaker pod 联系的对等者启动 BGP 会话。对等点接收 MetalLB 分配给服务的负载均衡器 IP 地址的路由公告。

26.4.1. 关于 BGP peer 自定义资源

下表中描述了 BGP peer 自定义资源的字段。

表 26.3. MetalLB BGP peer 自定义资源
字段类型描述

metadata.name

字符串

指定 BGP peer 自定义资源的名称。

metadata.namespace

字符串

指定 BGP peer 自定义资源的命名空间。

spec.myASN

整数

为 BGP 会话的本地末尾指定 Autonomous System 号。在您添加的所有 BGP peer 自定义资源中指定相同的值。范围为 065535

spec.peerASN

整数

为 BGP 会话的远程端指定 Autonomous System 号。范围为 065535

spec.peerAddress

字符串

指定建立 BGP 会话的对等点的 IP 地址。

spec.sourceAddress

字符串

可选:指定建立 BGP 会话时要使用的 IP 地址。该值必须是 IPv4 地址。

spec.peerPort

整数

可选:指定用来建立 BGP 会话的对等端口。范围为 016384

spec.holdTime

字符串

可选:指定到 BGP 对等点的保留时间。最小值为 3 秒(3s)。常见的单位是秒和分钟,如 3s1m5m30s。要更快地检测路径失败,还要配置 BFD。

spec.keepaliveTime

字符串

可选:指定向 BGP 对等发送保留消息之间的最大间隔。如果指定此字段,还必须为 holdTime 字段指定一个值。指定的值必须小于 holdTime 字段的值。

spec.routerID

字符串

可选:指定要公告到 BGP peer 的路由器 ID。如果指定了此字段,则必须在添加的每个 BGP peer 自定义资源中指定相同的值。

spec.password

字符串

可选:指定 MD5 密码,以发送到执行 TCP MD5 经过身份验证的 BGP 会话的路由器的对等点。

spec.bfdProfile

字符串

可选:指定 BFD 配置集的名称。

spec.nodeSelectors

object[]

可选:使用匹配表达式和匹配标签指定选择器,以控制哪些节点可以连接到 BGP 对等点。

spec.ebgpMultiHop

布尔值

可选:指定 BGP peer 是否有多个网络跃点。如果 BGP peer 没有直接连接到同一网络,则 speaker 无法建立 BGP 会话,除非此字段设置为 true。此字段适用于 外部 BGP。外部 BGP 是用来描述当 BGP 对等点属于不同的自治系统的术语。

26.4.2. 配置 BGP peer

作为集群管理员,您可以添加 BGP peer 自定义资源来与网络路由器交换路由信息,并为服务公告 IP 地址。

先决条件

  • 安装 OpenShift CLI(oc)。
  • 以具有 cluster-admin 特权的用户身份登录。
  • 配置为 spec.protocol 字段指定 bgp 的 MetalLB 地址池。

流程

  1. 创建一个文件,如 bgppeer.yaml,其内容类似以下示例:

    apiVersion: metallb.io/v1beta1
    kind: BGPPeer
    metadata:
      namespace: metallb-system
      name: doc-example-peer
    spec:
      peerAddress: 10.0.0.1
      peerASN: 64501
      myASN: 64500
      routerID: 10.10.10.10
  2. 应用 BGP peer 的配置:

    $ oc apply -f bgppeer.yaml

其他资源

26.4.3. BGP 对等配置示例

26.4.3.1. 示例:限制节点连接到 BGP peer

您可以指定节点选择器字段来控制哪些节点可以连接到 BGP 对等点。

apiVersion: metallb.io/v1beta1
kind: BGPPeer
metadata:
  name: doc-example-nodesel
  namespace: metallb-system
spec:
  peerAddress: 10.0.20.1
  peerASN: 64501
  myASN: 64500
  nodeSelectors:
  - matchExpressions:
    - key: kubernetes.io/hostname
      operator: In
      values: [compute-1.example.com, compute-2.example.com]

26.4.3.2. 示例:为 BGP peer 指定 BFD 配置集

您可以指定一个 BFD 配置集,以与 BGP 对等点关联。BFD 复杂的 BGP 通过单独提供与 BGP 间通信故障的更快速检测。

apiVersion: metallb.io/v1beta1
kind: BGPPeer
metadata:
  name: doc-example-peer-bfd
  namespace: metallb-system
spec:
  peerAddress: 10.0.20.1
  peerASN: 64501
  myASN: 64500
  holdTime: "10s"
  bfdProfile: doc-example-bfd-profile-full
注意

删除双向转发检测 (BFD) 配置集并删除添加到边框网关协议 (BGP) 对等资源中的 bfdProfile 不会禁用 BFD。相反,BGP 对等点开始使用默认的 BFD 配置集。要从 BGP peer 资源禁用 BFD,请删除 BGP 对等配置,并在没有 BFD 配置集的情况下重新创建它。如需更多信息,请参阅 BZ#2050824

26.4.3.3. 示例:为双栈网络指定 BGP 对等点

要支持双栈网络,请为 IPv4 添加一个 BGP peer 自定义资源,并为 IPv6 添加一个 BGP peer 自定义资源。

apiVersion: metallb.io/v1beta1
kind: BGPPeer
metadata:
  name: doc-example-dual-stack-ipv4
  namespace: metallb-system
spec:
  peerAddress: 10.0.20.1
  peerASN: 64500
  myASN: 64500
---
apiVersion: metallb.io/v1beta1
kind: BGPPeer
metadata:
  name: doc-example-dual-stack-ipv6
  namespace: metallb-system
spec:
  peerAddress: 2620:52:0:88::104
  peerASN: 64500
  myASN: 64500
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.