2.11. 将 Load Balancers 分配给特定的子网
您可以通过分配负载均衡器来有效地管理应用程序流量。网络管理员可以分配负载均衡器来自定义部署,这些部署可以确保最佳流量分布、应用程序高可用性、不间断的服务和网络分段。
2.11.1. 将 API 和 Ingress Load Balancers 分配给 AWS 上的特定子网 复制链接链接已复制到粘贴板!
您可以通过显式定义虚拟私有云(VPC)子网,并在 install-config.yaml
文件的 platform.aws.vpc.subnets
部分中直接为其分配特定的角色,从而控制 OpenShift Load Balancers (包括 Ingress Controller 的网络放置)。此方法提供对将哪些子网用于资源(如 Ingress Controller 和其他集群组件)的粒度控制。
2.11.1.1. 在安装时为 OpenShift API 和入口负载均衡器指定 AWS 子网 复制链接链接已复制到粘贴板!
执行以下步骤将 API 和入口负载均衡器分配给特定的子网。
先决条件
在开始前,请确定您有:
- 现有的 AWS 虚拟私有云 (VPC)。
预先配置的 AWS 子网供 OpenShift 集群使用,请考虑以下事项:
-
您有一个其子网 ID 列表(例如
subnet-0123456789abcdef0
)。这些 ID 将在install-config.yaml
文件中使用。 - 使用至少跨越两个可用区(AZ)的子网来实现负载均衡器和其他关键组件(如 control plane)的高可用性。
- 您在这些子网中有足够的可用 IP 地址用于所有分配的角色。
- 这些子网的 AWS 配置(包括网络 ACL 和安全组)必须允许分配给它们的所有角色所需的流量。对于托管入口控制器的子网,这通常包括来自所需源的 TCP 端口 80 和 443。
-
您有一个其子网 ID 列表(例如
- 有目标 OpenShift 版本的 OpenShift 安装程序二进制文件。
-
您有一个
install-config.yaml
文件。
流程
准备
install-config.yaml
文件:如果您还没有这样做,请使用 OpenShift 安装程序生成安装配置文件:
openshift-install create install-config --dir=<your_installation_directory>
$ openshift-install create install-config --dir=<your_installation_directory>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令在指定目录中创建
install-config.yaml
文件。定义子网并分配角色:
使用文本编辑器打开位于
<your_installation_directory>
中的install-config.yaml
文件。您将在platform.aws.vpc.subnets
字段中定义您的 VPC 子网及其指定角色。对于您要使用集群的每个 AWS 子网,您将创建一个条目,指定其
id
和roles
列表。每个角色都是带有type
键的对象。要为默认 Ingress Controller 指定子网,请为它分配一个带有type: IngressControllerLB
的角色。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 您的基域。
- 2
- 您的 AWS 区域。
- 3
platform.aws
下的 vpc 对象包含子网列表。- 4
- OpenShift 将要使用的所有子网对象的列表。每个对象定义一个子网 id 及其角色。
- 5
- 使用您的 AWS 子网 ID 替换。
- 6
type: IngressControllerLB
角色专门用于为默认 Ingress Controller 的 LoadBalancer 指定这个子网。在私有/内部集群中,带有IngressControllerLB
角色的子网必须是私有。- 7
type: ClusterNode
角色为 control plane 和计算节点指定这个子网。这些通常是专用子网。- 8
- 您的 pull secret。
- 9
- 您的 SSH 密钥。
subnets
列表中 control plane 负载均衡器的条目遵循类似的模式:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于默认公共 Ingress Controller,在
install-config.yaml
文件中分配了IngressControllerLB
角色的任何子网都必须是公共子网。例如,必须在 AWS 中有一个路由表条目,用于将出站流量定向到互联网网关(IGW)。确保您在 AZ 中列出所有必要的子网、公共和私有子网,并根据集群架构分配适当的角色。
子网 ID 在现有 VPC 中定义子网,并可选择性地指定它们的预期角色。如果在任何子网上没有指定角色,则会自动决定子网角色。在这种情况下,VPC 不得包含没有
kubernetes.io/cluster/<cluster-id>
标签的任何其他非集群子网。如果为子网指定角色,每个子网必须至少有一个分配的角色,并且
ClusterNode
、BootstrapNode
、IngressControllerLB
、ControlPlaneExternalLB
和ControlPlaneInternalLB
角色必须至少分配给一个子网。但是,如果集群范围是内部的,则不需要ControlPlaneExternalLB
。继续集群安装:
将更改保存到
install-config.yaml
文件后,创建集群:openshift-install create cluster --dir=<your_installation_directory>
$ openshift-install create cluster --dir=<your_installation_directory>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 安装程序现在使用
install-config.yaml
文件的platform.aws.vpc.subnets
部分中的子网定义和显式角色分配来置备集群资源,包括将 Ingress Controller 的 LoadBalancer 放置到您使用IngressControllerLB
角色指定的子网中。
platform.aws.vpc.subnets
中的角色分配机制,如 IngressControllerLB
,ClusterNode
,ControlPlaneExternalLB
,ControlPlaneInternalLB
,BootstrapNode
是 OpenShift 安装程序标识适合不同集群服务和组件的类型。