15.7. 在具有 Wavelength Zone 子网的现有 VPC 上安装集群
您可以在 Amazon Web Services (AWS) 上将集群安装到现有的 Amazon Virtual Private Cloud (VPC) 中。安装程序会置备所需基础架构的其余部分,您可以进一步自定义这些基础架构。要自定义安装,请在安装集群前修改 install-config.yaml
文件中的参数。
在 AWS 上安装集群到现有的 VPC 中,需要使用 AWS Wavelength 区域将计算节点扩展到 Cloud Infrastructure 的边缘。
您可以使用提供的 CloudFormation 模板来创建网络资源。另外,您可以修改模板来自定义模板,或使用其包含的信息根据公司的策略创建 AWS 资源。
执行安装程序置备的基础架构安装的步骤仅作为示例。在现有 VPC 上安装集群需要了解云供应商和 OpenShift Container Platform 安装过程。您可以使用 CloudFormation 模板来帮助您完成这些步骤,或者帮助您建模您自己的集群安装。您可以决定使用其他方法生成这些资源,而不使用 CloudFormation 模板来创建资源。
15.7.1. 在 AWS 中创建 VPC 复制链接链接已复制到粘贴板!
您可以在 OpenShift Container Platform 集群的 Amazon Web Services (AWS) 中为所有 Wavelength 区域位置创建一个 Virtual Private Cloud (VPC) 和子网,以将计算节点扩展到边缘位置。您可以进一步自定义 VPC 以满足您的要求,包括 VPN 和路由表。您还可以添加新的 Wavelength 区域子网,不包含在初始部署中。
您可以使用提供的 CloudFormation 模板和自定义参数文件创建代表 VPC 的 AWS 资源堆栈。
如果不使用提供的 CloudFormation 模板来创建 AWS 基础架构,您必须检查提供的信息并手动创建基础架构。如果集群没有正确初始化,您可能需要联系红帽支持并提供您的安装日志。
先决条件
- 已配置了一个 AWS 帐户。
-
您可以通过运行
aws configure
,将 AWS 密钥和 AWS 区域添加到本地 AWS 配置集中。 - 您可以选择 AWS 帐户上的 AWS Wavelength 区域。
流程
创建一个 JSON 文件,其包含 CloudFormation 模板需要的参数值:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 进入名为 "CloudFormation template for the VPC" 的文档部分,然后从提供的模板中复制语法。将复制的模板语法保存为本地系统中的 YAML 文件。此模板描述了集群所需的 VPC。
运行以下命令,启动 CloudFormation 模板以创建代表 VPC 的 AWS 资源堆栈:
重要您必须在一行内输入命令。
aws cloudformation create-stack --stack-name <name> \ --template-body file://<template>.yaml \ --parameters file://<parameters>.json
$ aws cloudformation create-stack --stack-name <name> \
1 --template-body file://<template>.yaml \
2 --parameters file://<parameters>.json
3 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-vpc/dbedae40-2fd3-11eb-820e-12a48460849f
arn:aws:cloudformation:us-east-1:123456789012:stack/cluster-vpc/dbedae40-2fd3-11eb-820e-12a48460849f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令确认模板组件已存在:
aws cloudformation describe-stacks --stack-name <name>
$ aws cloudformation describe-stacks --stack-name <name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
StackStatus
显示CREATE_COMPLETE
后,输出会显示以下参数的值。您必须为创建集群运行的其他 CloudFormation 模板提供这些参数值。VpcId
您的 VPC ID。
PublicSubnetIds
新公共子网的 ID。
PrivateSubnetIds
新专用子网的 ID。
PublicRouteTableId
新公共路由表 ID 的 ID。
15.7.2. VPC 的 CloudFormation 模板 复制链接链接已复制到粘贴板!
您可以使用以下 CloudFormation 模板来部署 OpenShift Container Platform 集群所需的 VPC。
例 15.2. VPC 的 CloudFormation 模板
15.7.3. 创建 VPC 载体网关 复制链接链接已复制到粘贴板!
要在 Wavelength 区域上运行的 OpenShift Container Platform 集群中使用公共子网,您必须创建载体网关,并将载体网关关联到 VPC。子网可用于部署负载均衡器或边缘计算节点。
要在 OpenShift Container Platform 集群的 Wavelength 区域位置创建边缘节点或面向互联网的负载均衡器,您必须创建以下所需的网络组件:
- 与现有 VPC 关联的载体网关。
- 列出路由条目的载波路由表。
- 与载体路由表关联的子网。
对于仅包含 Wavelength 区中的子网的 VPC 存在载体网关。
以下列表解释了 AWS Wavelength 区域位置上下文中的载体网关的功能:
- 提供 Wavelength Zone 和 carrier 网络之间的连接,其中包括来自载体网络的任何可用设备。
- 执行网络地址转换(NAT)功能,如将作为网络边框组的公共 IP 地址(从 Wavelength 区域转换为载体 IP 地址)的 IP 地址转换。这些转换功能适用于入站和出站流量。
- 授权来自位于特定位置的载体网络的入站流量。
- 授权到载波网络和互联网的出站流量。
互联网没有入站连接配置,通过载体网关到 Wavelength 区域。
您可以使用提供的 CloudFormation 模板来创建以下 AWS 资源堆栈:
- 一个载体网关,与模板中的 VPC ID 关联。
-
一个用于 Wavelength Zone 的公共路由表,名为
<ClusterName>-public-carrier
。 - 以载体网关为目标的新路由表中的默认 IPv4 路由条目。
- AWS Simple Storage Service (S3) 的 VPC 网关端点。
如果不使用提供的 CloudFormation 模板来创建 AWS 基础架构,您必须检查提供的信息并手动创建基础架构。如果集群没有正确初始化,您可能需要联系红帽支持并提供您的安装日志。
先决条件
- 已配置了一个 AWS 帐户。
-
您可以通过运行
aws configure
,将 AWS 密钥和区域添加到本地 AWS 配置集中。
流程
- 进入名为"CloudFormation template for the VPC Carrier Gateway"的文档的下一部分,然后复制 VPC Carrier Gateway 模板的 CloudFormation 模板的语法。将复制的模板语法保存为本地系统中的 YAML 文件。此模板描述了集群所需的 VPC。
运行以下命令来部署 CloudFormation 模板,它会创建一个代表 VPC 的 AWS 资源堆栈:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<stack_name>
是 CloudFormation 堆栈的名称,如clusterName-vpc-carrier-gw
。如果您删除集群,则需要此堆栈的名称。- 2
<template>
是相对路径,以及保存的 CloudFormation 模板 YAML 文件的名称。- 3
<VpcId>
是从名为"Creating a VPC in AWS"部分创建的 CloudFormation 堆栈输出中提取的 VPC ID。- 4
<clusterName>
是一个自定义值,前缀为 CloudFormation 堆栈创建的资源的前缀。您可以使用install-config.yaml
配置文件的metadata.name
部分中定义的相同名称。
输出示例
arn:aws:cloudformation:us-east-1:123456789012:stack/<stack_name>/dbedae40-2fd3-11eb-820e-12a48460849f
arn:aws:cloudformation:us-east-1:123456789012:stack/<stack_name>/dbedae40-2fd3-11eb-820e-12a48460849f
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令确认 CloudFormation 模板组件已存在:
aws cloudformation describe-stacks --stack-name <stack_name>
$ aws cloudformation describe-stacks --stack-name <stack_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
StackStatus
显示CREATE_COMPLETE
后,输出显示以下参数的值:确保为集群运行的其他 CloudFormation 模板提供参数值。PublicRouteTableId
Carrier 基础架构中路由表 ID。
15.7.4. VPC Carrier Gateway 的 CloudFormation 模板 复制链接链接已复制到粘贴板!
您可以使用以下 CloudFormation 模板,在 AWS Wavelength 基础架构上部署 Carrier Gateway。
例 15.3. VPC Carrier Gateway 的 CloudFormation 模板
15.7.5. 在 Wavelength 区域中创建子网 复制链接链接已复制到粘贴板!
在 OpenShift Container Platform 集群中为边缘计算节点配置机器集前,您必须在 Wavelength Zones 中创建子网。对您要将计算节点部署到的每个 Wavelength 区完成以下步骤。
您可以使用提供的 CloudFormation 模板并创建 CloudFormation 堆栈。然后,您可以使用此堆栈自定义置备子网。
如果不使用提供的 CloudFormation 模板来创建 AWS 基础架构,您必须检查提供的信息并手动创建基础架构。如果集群没有正确初始化,您可能需要联系红帽支持并提供您的安装日志。
先决条件
- 已配置了一个 AWS 帐户。
-
您可以通过运行
aws configure
,将 AWS 密钥和区域添加到本地 AWS 配置集中。 - 您可以选择 Wavelength Zones 组。
流程
- 进入名为"CloudFormation template for the VPC 子网"的文档部分,并从模板中复制语法。将复制的模板语法保存为本地系统中的 YAML 文件。此模板描述了集群所需的 VPC。
运行以下命令来部署 CloudFormation 模板,它会创建一个代表 VPC 的 AWS 资源堆栈:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<stack_name>
是 CloudFormation 堆栈的名称,如cluster-wl-<wavelength_zone_shortname>
。如果您删除集群,则需要此堆栈的名称。- 2
<template>
是相对路径,以及保存的 CloudFormation 模板 YAML 文件的名称。- 3
${VPC_ID}
是 VPC ID,它是 VPC 模板输出中的VpcID
值。- 4
${ZONE_NAME}
是用于创建子网的 Wavelength Zones 名称的值。- 5
${CLUSTER_NAME}
是 ClusterName 的值,用作新 AWS 资源名称的前缀。- 6
${ROUTE_TABLE_PUB}
是从 VPC 的载体网关 CloudFormation 堆栈的输出中提取的 PublicRouteTableId。- 7
${SUBNET_CIDR_PUB}
是一个有效的 CIDR 块,用于创建公共子网。这个块必须是 VPC CIDR 块VpcCidr
的一部分。- 8
${ROUTE_TABLE_PVT}
是从 VPC 的 CloudFormation 堆栈的输出中提取的 PrivateRouteTableId。- 9
${SUBNET_CIDR_PVT}
是一个有效的 CIDR 块,用于创建专用子网。这个块必须是 VPC CIDR 块VpcCidr
的一部分。
输出示例
arn:aws:cloudformation:us-east-1:123456789012:stack/<stack_name>/dbedae40-820e-11eb-2fd3-12a48460849f
arn:aws:cloudformation:us-east-1:123456789012:stack/<stack_name>/dbedae40-820e-11eb-2fd3-12a48460849f
验证
运行以下命令确认模板组件已存在:
aws cloudformation describe-stacks --stack-name <stack_name>
$ aws cloudformation describe-stacks --stack-name <stack_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
StackStatus
显示CREATE_COMPLETE
后,输出会显示以下参数的值。确保将这些参数值提供给您为集群创建的其他 CloudFormation 模板。PublicSubnetId
由 CloudFormation 堆栈创建的公共子网的 ID。
PrivateSubnetId
由 CloudFormation 堆栈创建的专用子网的 ID。
15.7.6. VPC 子网的 CloudFormation 模板 复制链接链接已复制到粘贴板!
您可以使用以下 CloudFormation 模板,在 Wavelength 区域基础架构上部署私有和公共子网。
例 15.4. VPC 子网的 CloudFormation 模板
15.7.7. 修改安装配置文件以使用 AWS Wavelength 区域子网 复制链接链接已复制到粘贴板!
修改 install-config.yaml
文件,使其包含 Wavelength Zones 子网。
先决条件
- 您使用"在 Wavelength Zones 中创建子网"流程创建子网。
-
您使用"创建安装配置文件"流程创建了
install-config.yaml
文件。
流程
通过在
platform.aws.subnets
参数中指定 Wavelength Zones 子网来修改install-config.yaml
配置文件。带有 Wavelength 区域子网的安装配置文件示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 区域中创建的子网 ID 列表: Availability 和 Wavelength 区域。
后续步骤