

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 AWS ParallelCluster 命令行界面配置和创建集群
<a name="install-v3-configuring"></a>

安装后 AWS ParallelCluster，完成以下配置步骤。

1. 验证您的 AWS 账户是否具有包含运行 [`pcluster`](pcluster-v3.md) CLI 所需的权限的角色。有关更多信息，请参阅 [AWS ParallelCluster `pcluster`用户策略示例](iam-roles-in-parallelcluster-v3.md#iam-roles-in-parallelcluster-v3-example-user-policies)。

1. 设置您的 AWS 凭证。有关更多信息，请参阅 *AWS CLI 用户指南* 中的[配置 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)。

   ```
   $ aws configure
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [us-east-1]: us-east-1
   Default output format [None]:
   ```

1. 集群的启动 AWS 区域 位置必须至少有一个 Amazon EC2 密钥对。有关更多信息，请参阅《适用于 Linux 实例的 Amazon Elastic Compute Cloud 用户指南》**中的 [Amazon Elastic Compute Cloud 密钥对](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html)。

使用 AWS ParallelCluster 命令行界面 (CLI) 时，您只需为创建或更新 AWS ParallelCluster 映像和集群时创建的 AWS 资源付费。有关更多信息，请参阅 [AWS 使用的服务 AWS ParallelCluster](aws-services-v3.md)。

## 配置和创建第一个集群
<a name="install-v3-configuring-create"></a>

要创建您的第一个集群，请使用 `pcluster configure` CLI 命令启动向导，提示您提供配置和创建集群所需的所有信息。与使用 AWS Batch 作为调度器相比，序列的细节有所不同。Slurm

------
#### [ Slurm ]

```
$  pcluster configure --config cluster-config.yaml
```

从有效 AWS 区域 标识符列表中，选择您希望集群运行 AWS 区域 的位置。

**注意**  
 AWS 区域 显示的列表基于您的账户分区，仅包括为您的账户启 AWS 区域 用的分区。有关为您的账户启 AWS 区域 用的更多信息，请参阅 AWS 区域中的[管理*AWS 一般参考*](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)。显示的示例来自 AWS 全局分区。如果您的账户在 AWS GovCloud (US) 分区中，则只会列出该分区 AWS 区域 中的账户（`gov-us-east-1`和`gov-us-west-1`）。同样，如果您的账户位于 AWS 中国分区，则`cn-north-1`仅显示`cn-northwest-1`和。有关 AWS 区域 支持的完整列表 AWS ParallelCluster，请参阅[AWS 区域 支持 AWS ParallelCluster](supported-regions.md)。

```
Allowed values for AWS 区域 ID:
1. af-south-1
2. ap-east-1
3. ap-northeast-1
4. ap-northeast-2
5. ap-south-1
6. ap-southeast-1
7. ap-southeast-2
8. ap-southeast-3
9. ap-southeast-5
10. ap-southeast-7
11. ca-central-1
12. eu-central-1
13. eu-north-1
14. eu-south-1
15. eu-west-1
16. eu-west-2
17. eu-west-3
18. il-central-1
19. me-south-1
20. sa-east-1
21. us-east-1
22. us-east-2
23. us-west-1
24. us-west-2
AWS 区域 ID [ap-northeast-1]:
```

在选定的选项中，从在亚马逊弹性计算云中注册的密钥对中选择密钥对 AWS 区域：

```
Allowed values for Amazon EC2 Key Pair Name:
1. your-key-1
2. your-key-2
Amazon EC2 Key Pair Name [your-key-1]:
```

选择要用于集群的计划程序。

```
Allowed values for Scheduler:
1. slurm
2. awsbatch
Scheduler [slurm]:
```

选择操作系统。

```
Allowed values for Operating System:
1. alinux2
2. alinux2023
3. ubuntu2404
4. ubuntu2204
6. rhel8
7. rhel9
Operating System [alinux2]:
```

选择头节点实例类型：

```
Head node instance type [t2.micro]:
```

选择队列配置。注意：不能为同一个队列中的多个计算资源指定实例类型。

```
Number of queues [1]:
Name of queue 1 [queue1]:
Number of compute resources for queue1 [1]: 2
Compute instance type for compute resource 1 in queue1 [t2.micro]:
Maximum instance count [10]:
```

启用 EFA 以大规模运行需要高水平实例间通信的应用程序，无需额外付费： AWS 
+ 选择[支持 Elastic Fabric Adapter (EFA)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/efa.html#efa-instance-types) 的实例类型。
+ 启用 [EFA](efa-v3.md)。
+ 指定现有[置放群组](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/placement-groups.html)名称。如果将其留空，则会为您 AWS ParallelCluster 创建一个。

```
Compute instance type for compute resource 2 in queue1 [t2.micro]: c5n.18xlarge
Enable EFA on c5n.18xlarge (y/n) [y]: y
Maximum instance count [10]:
Placement Group name []:
```

完成前面的步骤后，决定是使用现有 VPC 还是让你 AWS ParallelCluster 创建 VPC。如果您没有正确配置的 VPC， AWS ParallelCluster 可以为您创建一个新的 VPC。它会将头节点和计算节点置于同一公有子网中，或者仅将头节点置于公有子网中，而将所有计算节点置于私有子网中。如果让 AWS ParallelCluster 创建 VPC，则必须决定是否所有节点都应位于公有子网中。有关更多信息，请参阅 [网络配置](network-configuration-v3.md)。

如果您将集群配置为使用具有多个网络接口或网卡的实例类型，请参阅[网络配置](network-configuration-v3.md)以了解其他网络要求。

可以达到您的配额，以达到 VPCs 允许的数量 AWS 区域。a 的默认配额 VPCs 为五个 AWS 区域。有关此配额以及如何请求提高配额的更多信息，请参阅 *Amazon VPC 用户指南* 中的 [VPC 和子网](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-vpcs-subnets)。

**重要**  
VPCs 创建者默认情况下 AWS ParallelCluster 不启用 VPC 流日志。VPC 流日志使您能够捕获有关进出您的网络接口的 IP 流量的信息 VPCs。有关更多信息，请参阅《Amazon VPC 用户指南》**中的 [VPC 流日志](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)。

如果您允许 AWS ParallelCluster 创建 VPC，请务必决定是否所有节点都位于公有子网中。

**注意**  
如果您愿意`1. Head node in a public subnet and compute fleet in a private subnet`，则 AWS ParallelCluster 创建一个 NAT 网关，即使您指定了免费套餐资源，也会产生额外费用。

```
Automate VPC creation? (y/n) [n]: y
Allowed values for Availability Zone:
1. us-east-1a
2. us-east-1b
3. us-east-1c
4. us-east-1d
5. us-east-1e
6. us-east-1f
Availability Zone [us-east-1a]:
Allowed values for Network Configuration:
1. Head node in a public subnet and compute fleet in a private subnet
2. Head node and compute fleet in the same public subnet
Network Configuration [Head node in a public subnet and compute fleet in a private subnet]: 1
Beginning VPC creation. Please do not leave the terminal until the creation is finalized
```

如果您不创建新的 VPC，则必须选择现有 VPC。

如果您选择 AWS ParallelCluster 创建 VPC，请记下 VPC ID，以便日 AWS CLI 后使用将其删除。

```
Automate VPC creation? (y/n) [n]: n
Allowed values for VPC ID:
  #  id                     name                                 number_of_subnets
---  ---------------------  ---------------------------------  -------------------
  1  vpc-0b4ad9c4678d3c7ad  ParallelClusterVPC-20200118031893                    2
  2  vpc-0e87c753286f37eef  ParallelClusterVPC-20191118233938                    5
VPC ID [vpc-0b4ad9c4678d3c7ad]: 1
```

选择 VPC 后，决定是使用现有子网还是创建新子网。

```
Automate Subnet creation? (y/n) [y]: y
```

```
Creating CloudFormation stack...
Do not leave the terminal until the process has finished
```

------
#### [ AWS Batch ]

```
$  pcluster configure --config cluster-config.yaml
```

从有效 AWS 区域 标识符列表中，选择您希望集群运行 AWS 区域 的位置。

**注意**  
 AWS 区域 显示的列表基于您的账户分区。它仅包括 AWS 区域 为您的账户启用的功能。有关为您的账户启 AWS 区域 用的更多信息，请参阅 AWS 区域中的[管理*AWS 一般参考*](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)。显示的示例来自 AWS 全局分区。如果您的账户在 AWS GovCloud (US) 分区中，则只会列出该分区 AWS 区域 中的账户（`gov-us-east-1`和`gov-us-west-1`）。同样，如果您的账户位于 AWS 中国分区，则`cn-north-1`仅显示`cn-northwest-1`和。有关 AWS 区域 支持的完整列表 AWS ParallelCluster，请参阅[AWS 区域 支持 AWS ParallelCluster](supported-regions.md)。

```
Allowed values for AWS 区域 ID:
1. af-south-1
2. ap-east-1
3. ap-northeast-1
4. ap-northeast-2
5. ap-south-1
6. ap-southeast-1
7. ap-southeast-2
8. ap-southeast-3
9. ap-southeast-5
10. ap-southeast-7
11. ca-central-1
12. eu-central-1
13. eu-north-1
14. eu-south-1
15. eu-west-1
16. eu-west-2
17. eu-west-3
18. il-central-1
19. me-south-1
20. sa-east-1
21. us-east-1
22. us-east-2
23. us-west-1
24. us-west-2
AWS 区域 ID [us-east-1]:
```

从向所选 AWS 区域中的 Amazon EC2 注册的密钥对中选择密钥对。选择密钥对：

```
Allowed values for Amazon EC2 Key Pair Name:
1. your-key-1
2. your-key-2
Amazon EC2 Key Pair Name [your-key-1]:
```

选择要用于集群的计划程序。

```
Allowed values for Scheduler:
1. slurm
2. awsbatch
Scheduler [slurm]: 2
```

当选择 `awsbatch` 作为计划程序时，`alinux2` 将用作操作系统。输入头节点实例类型：

```
Head node instance type [t2.micro]:
```

选择队列配置。 AWS Batch 调度器仅包含一个队列。输入计算节点集群的最大大小。这是用 v 来衡量CPUs的。

```
Number of queues [1]:
Name of queue 1 [queue1]:
Maximum vCPU [10]:
```

决定是使用现有 VPCs 还是让自己 AWS ParallelCluster VPCs 创建。如果没有正确配置的 VPC， AWS ParallelCluster 可以创建新的 VPC。它将使用同一公有子网中的头节点和计算节点，或者仅使用公有子网中的头节点，所有节点都在私有子网中。一个地区 VPCs 允许的数量可以达到您的配额。默认数字 VPCs 为五。有关此配额以及如何请求提高配额的更多信息，请参阅 *Amazon VPC 用户指南* 中的 [VPC 和子网](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-vpcs-subnets)。

**重要**  
VPCs 创建者默认情况下 AWS ParallelCluster 不启用 VPC 流日志。VPC 流日志使您能够捕获有关进出您的网络接口的 IP 流量的信息 VPCs。有关更多信息，请参阅《Amazon VPC 用户指南》**中的 [VPC 流日志](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)。

如果您允许 AWS ParallelCluster 创建 VPC，请务必决定是否所有节点都位于公有子网中。

**注意**  
如果您选择 `1. Head node in a public subnet and compute fleet in a private subnet`， AWS ParallelCluster 将会创建一个 NAT 网关，即使您指定了免费套餐资源，也会产生额外费用。

```
Automate VPC creation? (y/n) [n]: y
Allowed values for Availability Zone:
1. us-east-1a
2. us-east-1b
3. us-east-1c
4. us-east-1d
5. us-east-1e
6. us-east-1f
Availability Zone [us-east-1a]:
Allowed values for Network Configuration:
1. Head node in a public subnet and compute fleet in a private subnet
2. Head node and compute fleet in the same public subnet
Network Configuration [Head node in a public subnet and compute fleet in a private subnet]: *1*
Beginning VPC creation. Please do not leave the terminal until the creation is finalized
```

如果您不创建新的 VPC，则必须选择现有 VPC。

如果您选择 AWS ParallelCluster 创建 VPC，请记下 VPC ID，以便日后使用 AWS CLI 或 AWS 管理控制台 将其删除。

```
Automate VPC creation? (y/n) [n]: n
Allowed values for VPC ID:
  #  id                     name                                 number_of_subnets
---  ---------------------  ---------------------------------  -------------------
  1  vpc-0b4ad9c4678d3c7ad  ParallelClusterVPC-20200118031893                    2
  2  vpc-0e87c753286f37eef  ParallelClusterVPC-20191118233938                    5
VPC ID [vpc-0b4ad9c4678d3c7ad]: 1
```

选择 VPC 后，确保决定是使用现有子网还是创建新子网。

```
Automate Subnet creation? (y/n) [y]: y
```

```
Creating CloudFormation stack...
Do not leave the terminal until the process has finished
```

------

完成上述步骤后，一个简单集群将启动到 VPC 中。VPC 使用支持公有 IP 地址的现有子网。该子网的路由表为 `0.0.0.0/0 => igw-xxxxxx`。请注意以下条件：
+ VPC 必须具有 `DNS Resolution = yes` 和 `DNS Hostnames = yes`。
+ VPC 还必须具有带适用于 AWS 区域的正确 `domain-name` 的 DHCP 选项。默认 DHCP 选项集已经指定了所需的 AmazonProvidedDNS。如果指定多个域名服务器，请参阅 *Amazon VPC 用户指南* 中的 [DHCP 选项集](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_DHCP_Options.html)。使用私有子网时，请使用 NAT 网关或内部代理为计算节点启用 Web 访问。有关更多信息，请参阅 [网络配置](network-configuration-v3.md)。

但所有设置都包含有效值时，您可以通过运行创建命令来启动集群：

```
$ pcluster create-cluster --cluster-name test-cluster --cluster-configuration cluster-config.yaml
{
  "cluster": {
    "clusterName": "test-cluster",
    "cloudformationStackStatus": "CREATE_IN_PROGRESS",
    "cloudformationStackArn": "arn:aws:cloudformation:eu-west-1:xxx:stack/test-cluster/abcdef0-f678-890a-5abc-021345abcdef",
    "region": "eu-west-1",
    "version": "3.15.0",
    "clusterStatus": "CREATE_IN_PROGRESS"
  },
  "validationMessages": []
}
```

 关注集群进度：

```
$ pcluster describe-cluster --cluster-name test-cluster
```

 或者 

```
$ pcluster list-clusters --query 'clusters[?clusterName==`test-cluster`]'
```

在集群达到`"clusterStatus": "CREATE_COMPLETE"`状态后，您可以使用常规 SSH 客户端设置连接到该集群。有关连接 Amazon EC2 实例的更多信息，请参阅[《Amazon EC2 用户指南》](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html#ec2-connect-to-instance-linux)**。或者，您可以通过以下方式连接到该集群 

```
$ pcluster ssh --cluster-name test-cluster -i ~/path/to/keyfile.pem
```

要删除该集群，请运行以下命令。

```
$ pcluster delete-cluster --region us-east-1 --cluster-name test-cluster
```

删除集群后，您可以通过删除网络堆栈来删除 VPC 中的 CloudFormation 网络资源。堆栈名称以“parallelclusternetworking-”开头，并且包含“YYYYMMDDHHMMSS”格式的创建时间。您可以使用 [https://docs.aws.amazon.com/goto/aws-cli/cloudformation-2010-05-15/ListStacks](https://docs.aws.amazon.com/goto/aws-cli/cloudformation-2010-05-15/ListStacks) 命令列出堆栈。

```
$ aws --region us-east-1 cloudformation list-stacks \
   --stack-status-filter "CREATE_COMPLETE" \
   --query "StackSummaries[].StackName" | \
   grep -e "parallelclusternetworking-"
   "parallelclusternetworking-pubpriv-20191029205804"
```

 可以使用 [https://docs.aws.amazon.com/goto/aws-cli/cloudformation-2010-05-15/DeleteStack](https://docs.aws.amazon.com/goto/aws-cli/cloudformation-2010-05-15/DeleteStack) 命令删除堆栈。

```
$ aws --region us-east-1 cloudformation delete-stack \
   --stack-name parallelclusternetworking-pubpriv-20191029205804
```

为您[`pcluster configure`](pcluster.configure-v3.md)创建的 VPC *不是*在 CloudFormation 网络堆栈中创建的。您可以在控制台中或者通过使用 AWS CLI，手动删除该 VPC。

```
$ aws --region us-east-1 Amazon EC2 delete-vpc --vpc-id vpc-0b4ad9c4678d3c7ad
```