|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
IP池
IP池是一个内置的IP地址管理(IPAM)解决方案,仅适用于SUSE Virtualization负载均衡器(LB)。
功能
-
*多个IP范围:*每个IP池可以包含多个IP范围或CIDR。
-
*分配历史:*IP池跟踪每个IP地址的分配历史,并优先根据负载均衡器名称分配之前分配的地址。
status: allocatedHistory: 192.168.178.8: default/rke2-default-lb-pool-2fab9ac0 -
*范围:*IP池可以限制在特定的网络、项目、名称空间或来宾集群中。
创建IP池
-
在SUSE Virtualization UI上,转到*网络 → IP池*。
-
选择*创建*。
-
指定IP池的名称。
-
在*范围*选项卡上,指定一个或多个IP范围。
-
在*选择器*选项卡上,指定IP池的优先级和范围(名称空间)。
使用Rancher UI创建IP池
如果您将SUSE Virtualization集群导入到Rancher中,您可以使用Rancher UI创建IP池(虚拟化管理 → IP池:创建*)。但是,*范围*选项卡上的*选择器*部分要求您指定项目和客户Kubernetes集群,以及命名空间。有关更多信息,请参见多租户示例和 与Rancher的项目和Kubernetes名称空间。
当*范围*部分仅包含一个条目,并且*项目*、*名称空间*和*访客Kubernetes集群*字段设置为*全部*时,IP池被指定为全局资源。
选择策略
每个IP池将具有特定范围,您可以在LB `annotations`中指定相应的要求。满足指定要求的IP池将自动为LB分配IP地址。
-
LB使用以下注释来表达要求(所有注释都是可选的):
-
`loadbalancer.harvesterhci.io/network`指定访客集群节点使用的虚拟机网络。
-
`loadbalancer.harvesterhci.io/project`和`loadbalancer.harvesterhci.io/namespace`标识构成访客集群的虚拟机的项目和名称空间。
-
`loadbalancer.harvesterhci.io/cluster`表示访客集群的名称。
-
-
IP池具有选择器,包括网络和范围,以匹配LB的要求。
-
网络是一个硬性条件。可选的IP池必须与LB注释`loadbalancer.harvesterhci.io/network`的值匹配。
-
每个IP池(全局IP池除外)如果其优先级为`0`,则具有与其他IP池不同的唯一范围。如果LB希望从此池中获取IP,则项目、名称空间或集群名称应在IP池的范围内。
-
-
spec.selector.priority`指定IP池的优先级。数字越大,优先级越高。如果优先级不是`0,则值应不同。优先级帮助您将旧IP池迁移到新IP池。 -
如果IP池的范围匹配所有项目、名称空间和来宾集群,则称为全局IP池,并且只允许一个全局IP池。如果没有IP池满足LB的要求,IPAM将在全局IP池中分配一个IP地址(如果存在)。
示例
-
*示例 1:*您希望在`192.168.100.0/24`范围内为`default`名称空间设置一个IP池。在这种情况下,`default`名称空间内的所有负载均衡器将从这个指定的IP池中获取IP地址:
apiVersion: networking.harvesterhci.io/v1beta1 kind: IPPool metadata: name: default-ip-pool spec: ranges: - subnet: 192.168.100.0/24 selector: scope: namespace: default -
*示例 2:*您在网络`default/vlan1`中部署了一个来宾集群`rke2`,其`project/namespace`名称为`product/default`。如果您想为其配置一个独占的IP池范围`192.168.10.10-192.168.10.20`。请参见以下`YAML`配置:
apiVersion: networking.harvesterhci.io/v1beta1 kind: IPPool metadata: name: rke2-ip-pool spec: ranges: - subnet: 192.168.10.0/24 rangeStart: 192.168.10.10 rangeEnd: 192.168.10.20 selector: network: default/vlan1 scope: - project: product namespace: default guestCluster: rke2 -
*示例 3:*如果您已为`default`名称空间指定了IP池`default-ip-pool`,您希望将IP池`default-ip-pool`迁移到一个不同的IP池`default-ip-pool-2`,其范围为`192.168.200.0/24`。不允许为同一范围指定多个IP池,但您可以将IP池`default-ip-pool-2`的优先级设置高于`default-ip-pool`。请参见以下`YAML`配置:
apiVersion: networking.harvesterhci.io/v1beta1 kind: IPPool metadata: name: default-ip-pool-2 spec: ranges: - subnet: 192.168.200.0/24 selector: priority: 1 # The priority is higher than default-ip-pool scope: namespace: default -
*示例 4:*您希望配置一个CIDR范围为`192.168.20.0/24`的全局IP池:
apiVersion: networking.harvesterhci.io/v1beta1 kind: IPPool metadata: name: global-ip-pool labels: loadbalancer.harvesterhci.io/global-ip-pool: 'true' # Added by the controller automatically spec: ranges: - subnet: 192.168.20.0/24 selector: scope: - project: "*" namespace: "*" guestCluster: "*"
最佳实践
虚拟机类型负载均衡器的 IP 池
-
创建一个IP池使用SUSE Virtualization UI,将范围选择器的*项目*和*来宾Kubernetes集群*字段留空。
-
如果您必须使用Rancher UI,请将*项目*和*来宾Kubernetes集群*字段设置为*全部*或*无*。
来宾集群类型负载均衡器的 IP 池
-
创建一个IP池使用Rancher UI,这允许您指定目标项目和来宾Kubernetes集群,以便更好地管理和隔离资源。
-
创建全局 IP 池时请谨慎。单个来宾集群可能会耗尽整个池,导致其他集群无法提供服务。此外,如果任何地址仍在使用中,您无法删除该池。