1.3. 为 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
。
使用 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
使用 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
手动创建 AWS Virtual Private Cloud
如果您选择手动创建 AWS Virtual Private Cloud (VPC)而不是使用 Terraform,请访问 AWS 控制台中的 VPC 页面。
您的 VPC 必须满足下表中显示的要求。
要求 | 详情 |
---|---|
VPC 名称 | 创建集群时,您需要具有特定的 VPC 名称和 ID。 |
CIDR 范围 | 您的 VPC CIDR 范围应该与您的机器 CIDR 匹配。 |
可用区 | 您需要一个区域的可用区,并且需要三个用于多区的可用区。 |
公共子网 | 您必须有一个公共子网,其中包含公共集群的 NAT 网关。私有集群不需要公共子网。 |
DNS 主机名和解析 | 您必须确保启用 DNS 主机名和解析。 |