如何配置网络负载均衡器¶
注意
网络负载均衡器目前适用于 OVN 网络.
网络负载均衡器类似于转发,它们允许将外部 IP 地址上的特定端口转发到负载均衡器所属网络中内部 IP 地址上的特定端口。负载均衡器和转发之间的区别在于,负载均衡器可用于在多个内部后端地址之间共享入站流量。
如果您有有限的外部 IP 地址,或想要在多个实例上共享单个外部地址和端口,则此功能非常有用。
负载均衡器由以下部分组成
单个外部监听 IP 地址。
一个或多个命名的后端,包括内部 IP 和可选的端口范围。
一个或多个监听端口范围,配置为转发到一个或多个命名的后端。
创建网络负载均衡器¶
使用以下命令创建网络负载均衡器
incus network load-balancer create <network_name> <listen_address> [configuration_options...]
每个负载均衡器都分配给一个网络。它需要一个外部监听地址(有关可以负载均衡哪些地址的更多信息,请参阅 监听地址要求)。
负载均衡器属性¶
网络负载均衡器具有以下属性
配置选项¶
以下配置选项可用于负载均衡器
监听地址要求¶
以下要求必须满足,才能使用有效的监听地址
允许的监听地址必须在上行网络的
ipv{n}.routes
设置或项目的restricted.networks.subnets
设置(如果已设置)中定义。监听地址不得与该网络中其他网络或实体正在使用的子网重叠。
配置后端¶
您可以将后端规范添加到网络负载均衡器以定义目标地址(以及可选的端口)。后端目标地址必须与负载均衡器关联的网络位于同一子网中。
使用以下命令添加后端规范
incus network load-balancer backend add <network_name> <listen_address> <backend_name> <listen_ports> <target_address> [<target_ports>]
目标端口是可选的。如果未指定,负载均衡器将使用后端的后端目标端口的监听端口。
如果您想将流量转发到不同的端口,您可以选择以下两种方式
指定单个目标端口,以将来自所有监听端口的流量转发到此目标端口。
指定一组目标端口,端口数量与监听端口数量相同,以将来自第一个监听端口的流量转发到第一个目标端口,将来自第二个监听端口的流量转发到第二个目标端口,依此类推。
后端属性¶
网络负载均衡器后端具有以下属性
属性 |
类型 |
必需 |
描述 |
---|---|---|---|
|
字符串 |
是 |
后端的名称 |
|
字符串 |
是 |
要转发到的 IP 地址 |
|
字符串 |
否 |
目标端口(例如 |
|
字符串 |
否 |
后端描述 |
配置端口¶
您可以在网络负载均衡器中添加端口规范,以将来自侦听地址上特定端口的流量转发到一个或多个目标后端上的特定端口。
使用以下命令添加端口规范
incus network load-balancer port add <network_name> <listen_address> <protocol> <listen_ports> <backend_name>[,<backend_name>...]
您可以指定单个侦听端口或一组端口。指定的后端必须具有与端口的侦听端口设置兼容的目标端口设置。
端口属性¶
网络负载均衡器端口具有以下属性
属性 |
类型 |
必需 |
描述 |
---|---|---|---|
|
字符串 |
是 |
端口的协议 ( |
|
字符串 |
是 |
侦听端口(例如 |
|
后端列表 |
是 |
要转发到的后端名称 |
|
字符串 |
否 |
端口描述 |
编辑网络负载均衡器¶
使用以下命令编辑网络负载均衡器
incus network load-balancer edit <network_name> <listen_address>
此命令以 YAML 格式打开网络负载均衡器以供编辑。您可以编辑通用配置、后端和端口规范。
删除网络负载均衡器¶
使用以下命令删除网络负载均衡器
incus network load-balancer delete <network_name> <listen_address>