1.4. 为 Red Hat OpenShift Service on AWS 集群创建虚拟私有云
您必须有一个 AWS Virtual Private Cloud (VPC)才能在 AWS 集群上创建 Red Hat OpenShift Service。您可以使用以下方法创建 VPC:
- 使用 ROSA CLI 创建 VPC
- 使用 Terraform 模板创建 VPC
- 在 AWS 控制台中手动创建 VPC 资源
					Terraform 指令用于测试和演示目的。您自己的安装需要对 VPC 的一些修改才能自行使用。您还应确保使用此链接的 Terraform 配置时,它位于您要安装集群的同一区域。在这些示例中,使用了 us-east-2。
				
1.4.1. 使用 ROSA CLI 创建 AWS VPC
					rosa create network 命令在 ROSA CLI 的 v.1.2.48 或更高版本中提供。命令使用 AWS CloudFormation 创建 VPC 以及在 AWS 集群上安装 Red Hat OpenShift Service 所需的相关网络组件。CloudFormation 是一个原生 AWS 基础架构即代码工具,与 AWS CLI 兼容。
				
如果没有指定模板,CloudFormation 将使用以下参数来创建资源的默认模板:
| VPC 参数 | value | 
|---|---|
| 可用区 | 1 | 
| 区域 | 
									 | 
| VPC CIDR | 
									 | 
					您可以创建和自定义 CloudFormation 模板,以用于 rosa create network 命令。如需有关默认 VPC 模板的信息,请参阅本节的其他资源。
				
先决条件
- 您已配置了 AWS 帐户
- 您已配置了您的红帽帐户
- 已安装 ROSA CLI 并将其配置为最新版本
流程
- 运行以下命令,使用默认的 CloudFormations 模板创建 AWS VPC: - rosa create network - $ rosa create network- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 可选:通过指定附加参数来自定义 VPC。 - 您可以使用- - -param标志指定对默认 VPC 模板的更改。以下示例命令为- region、- Name、- AvailabilityZoneCount和- VpcCidr指定自定义值。- rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16 - $ rosa create network --param Region=us-east-2 --param Name=quickstart-stack --param AvailabilityZoneCount=3 --param VpcCidr=10.0.0.0/16- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 该命令需要大约 5 分钟来运行,并在创建资源时从 AWS 提供常规状态更新。如果 CloudFormation 存在问题,则会尝试回滚。对于遇到的所有其他错误,请按照错误消息说明或联系 AWS 支持。 
验证
- 完成后,您会收到创建的资源概述: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
1.4.1.1. 使用 Terraform 创建虚拟私有云
Terraform 是一个工具,可让您使用已建立的模板创建各种资源。以下流程根据需要使用默认选项在 AWS 集群上创建 Red Hat OpenShift Service。有关使用 Terraform 的更多信息,请参阅其他资源。
先决条件
- 您已在机器上安装 Terraform 版本 1.4.0 或更新版本。
- 您已在机器上安装了 Git。
流程
- 运行以下命令,打开 shell 提示符并克隆 Terraform VPC 存储库: - git clone https://github.com/openshift-cs/terraform-vpc-example - $ git clone https://github.com/openshift-cs/terraform-vpc-example- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令来进入创建的目录: - cd terraform-vpc-example - $ cd terraform-vpc-example- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令来启动 Terraform 文件: - terraform init - $ terraform init- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 在此过程完成后会显示确认初始化的消息。 
- 要根据现有的 Terraform 模板构建 VPC Terraform 计划,请运行 - plan命令。您必须包含 AWS 区域。您可以选择指定集群名称。在- terraform plan完成后,一个- rosa.tfplan文件会被添加到- hypershift-tf目录。有关更详细的选项,请参阅 Terraform VPC 存储库的 README 文件。- terraform plan -out rosa.tfplan -var region=<region> - $ terraform plan -out rosa.tfplan -var region=<region>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 运行以下命令应用此计划文件来构建 VPC: - terraform apply rosa.tfplan - $ terraform apply rosa.tfplan- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 可选:您可以通过运行以下命令捕获在创建 Red Hat OpenShift Service on AWS 集群时要使用的 Terraform-provisioned private、public 和 machinepool 子网 ID 的值: - export SUBNET_IDS=$(terraform output -raw cluster-subnets-string) - $ export SUBNET_IDS=$(terraform output -raw cluster-subnets-string)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 使用以下命令验证变量是否已正确设置: - echo $SUBNET_IDS - $ echo $SUBNET_IDS- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0 - $ subnet-0a6a57e0f784171aa,subnet-078e84e5b10ecf5b0- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
1.4.2. 手动创建 AWS Virtual Private Cloud
如果您选择手动创建 AWS Virtual Private Cloud (VPC)而不是使用 Terraform,请访问 AWS 控制台中的 VPC 页面。
您的 VPC 必须满足下表中显示的要求。
| 要求 | 详情 | 
|---|---|
| VPC 名称 | 创建集群时,您需要具有特定的 VPC 名称和 ID。 | 
| CIDR 范围 | 您的 VPC CIDR 范围应该与您的机器 CIDR 匹配。 | 
| 可用区 | 您需要一个区域的可用区,并且需要三个用于多区的可用区。 | 
| 公共子网 | 您必须有一个公共子网,其中包含公共集群的 NAT 网关。私有集群不需要公共子网。 | 
| DNS 主机名和解析 | 您必须确保启用 DNS 主机名和解析。 |