This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.26.3. 配置 MetalLB 地址池
作为集群管理员,您可以添加、修改和删除地址池。MetalLB Operator 使用地址池自定义资源来设置 MetalLB 可分配给服务的 IP 地址。
26.3.1. 关于地址池自定义资源
下表中描述了地址池自定义资源的字段。
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
									 | 
									 | 
									指定地址池的名称。添加服务时,您可以在  | 
| 
									 | 
									 | 指定地址池的命名空间。指定 MetalLB Operator 使用的同一命名空间。 | 
| 
									 | 
									 | 
									指定向对等节点发布负载均衡器 IP 地址的协议。指定  | 
| 
									 | 
									 | 
									可选:指定 MetalLB 是否从这个池自动分配 IP 地址。如果要使用  | 
| 
									 | 
									 | 指定分配给服务的 MetalLB 的 IP 地址列表。您可以在单个池中指定多个范围。以 CIDR 表示法指定每个范围,或者指定为以连字符隔开的起始和结束 IP 地址。 | 
| 
									 | 
									 | 
									可选:默认情况下,BGP 模式向配置的对等点公告每个分配的负载均衡器 IP 地址,且没有额外的 BGP 属性。对等路由器收到每个服务 IP 地址的一个  | 
					bgpAdvertisements 对象的字段在下表中定义:
				
| 字段 | 类型 | 描述 | 
|---|---|---|
| 
									 | 
									 | 
									可选:指定 32 位 CIDR 掩码中包含的位数。为了聚合发言人向 BGP 对等者公告的路由,掩码将应用于多个服务 IP 地址的路由,speaker 会公告聚合的路由。例如,聚合长度为  | 
| 
									 | 
									 | 
									可选:指定 128 位 CIDR 掩码中包含的位数。例如,在聚合长度为  | 
| 
									 | 
									 | 可选:指定一个或多个 BGP 社区。每个社区都被指定为两个 16 位值,用冒号字符分隔。知名的社区必须指定为 16 位值: 
 | 
| 
									 | 
									 | 可选:指定这个广播的本地首选项。此 BGP 属性适用于 Autonomous System 中的 BGP 会话。 | 
26.3.2. 配置地址池
作为集群管理员,您可以在集群中添加地址池来控制 MetalLB 可分配给负载均衡器服务的 IP 地址。
先决条件
- 
							安装 OpenShift CLI(oc)。
- 
							以具有 cluster-admin特权的用户身份登录。
流程
- 创建一个包含类似以下示例内容的文件,如 - addresspool.yaml:- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 为地址池应用配置: - oc apply -f addresspool.yaml - $ oc apply -f addresspool.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 查看地址池: - oc describe -n metallb-system addresspool doc-example - $ oc describe -n metallb-system addresspool doc-example- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
					确认输出中显示了地址池名称,如 doc-example,并且 IP 地址范围显示在输出中。
				
26.3.3. 地址池配置示例
26.3.3.1. 示例:IPv4 和 CIDR 范围
您可以使用 CIDR 表示法指定 IP 地址范围。您可以将 CIDR 表示法与使用连字符分隔下限和上限的表示法合并。
26.3.3.2. 示例:保留 IP 地址
						您可以将 autoAssign 字段设置为 false,以防止 MetalLB 自动从池中分配 IP 地址。添加服务时,您可以从池中请求特定的 IP 地址,或者在注解中指定池名称从池中请求任何 IP 地址。
					
26.3.3.3. 示例:IPv4 和 IPv6 地址
						您可以添加使用 IPv4 和 IPv6 的地址池。您可以像几个 IPv4 示例一样在 地址 列表中指定多个范围。
					
						无论服务被分配一个 IPv4 地址、一个 IPv6 地址,还是由您添加该服务来确定。spec.ipFamilies 和 spec.ipFamilyPolicy 字段控制 IP 地址如何分配给该服务。
					
26.3.3.4. 示例:使用 BGP 模式的简单地址池
						对于 BGP 模式,您必须将 protocol 字段设置为 bgp。其他地址池自定义资源字段(如 autoAssign )也适用于 BGP 模式。
					
						在以下示例中,对等的 BGP 路由器接收一个 203.0.113.200/32 路由,以及一个 fc00:f853:ccd:e799::1/128 路由,每个 load-balancer IP 地址分配给服务。因为没有指定 localPref 和 community 字段,所以路由会公告,并将 localPref 设置为 0,且没有 BGP 社区。
					
26.3.3.5. 示例:带有自定义公告的 BGP 模式
您可以指定复杂的自定义公告。
						在前面的示例中,MetalLB 分配 IP 地址到 203.0.113.200 和 203.0.113.203 之间的范围中的负载均衡服务,并在 fc00:f853:ccd:e799::0 和 fc00:f853:ccd:e799::f 之间。
					
						为了说明两个 BGP 公告,在 MetalLB 分配 IP 地址 203.0.113.200 时,请考虑实例。以该 IP 地址为例,发言人向 BGP 对等点公告两个路由:
					
- 
								203.0.113.200/32,localPref设置为100,并且社区设置为知名NO_ADVERTISE社区的数字值。此规范指示它们可以使用此路由的对等路由器,但它们不应将有关此路由的信息传播到 BGP 对等点。
- 
								203.0.113.200/30将 MetalLB 分配的负载均衡器 IP 地址聚合到一个路由中。MetalLB 公告到 BGP 对等点的聚合路由,并将 community 属性设置为8000:800。BGP 同行将203.0.113.200/30个路由传播到其他 BGP 同级服务器。当流量通过发言人路由到节点时,使用203.0.113.200/32路由将流量转发到集群以及与该服务关联的 pod。
						当添加更多服务和 MetalLB 从池中分配更多负载均衡器 IP 地址时,对等路由器收到一个本地路由,203.0.113.20x/32,以及 203.0.113.200/30 聚合路由。您添加的每个服务都会生成 /30 路由,但 MetalLB 会将路由重复数据删除到一个 BGP 公告,然后再与对等路由器通信。
					
26.3.4. 后续步骤
- 对于 BGP 模式,请参阅 配置 MetalLB BGP peer。
- 配置服务以使用 MetalLB。