使用 Amazon ParallelCluster 命令行界面配置和创建集群 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

使用 Amazon ParallelCluster 命令行界面配置和创建集群

安装后 Amazon ParallelCluster,完成以下配置步骤。

验证您的 Amazon 账户是否具有包含运行 pcluster CLI 所需的权限的角色。有关更多信息,请参阅 Amazon ParallelCluster pcluster用户策略示例

设置您的 Amazon 凭证。有关更多信息,请参阅 Amazon CLI 用户指南 中的配置 Amazon CLI

$ 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]:

集群的启动 Amazon Web Services 区域 位置必须至少有一个 Amazon EC2 密钥对。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 Amazon EC2 密钥对

使用 Amazon ParallelCluster 命令行界面 (CLI) 时,您只需为创建或更新 Amazon ParallelCluster 映像和集群时创建的 Amazon 资源付费。有关更多信息,请参阅 Amazon ParallelCluster 使用的 Amazon 服务

配置和创建第一个集群

通过使用 pcluster configure CLI 命令启动向导来创建您的第一个集群,该向导会提示您输入配置和创建集群所需的所有信息。与使用 Amazon Batch 作为调度器相比,序列的细节有所不同。Slurm

Slurm
$ pcluster configure --config config-file.yaml

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

注意

Amazon Web Services 区域 显示的列表基于您的账户分区,仅包括为您的账户启 Amazon Web Services 区域 用的分区。有关为您的账户启 Amazon Web Services 区域 用的更多信息,请参阅 Amazon Web Services 区域中的管理Amazon Web Services 一般参考。显示的示例来自 Amazon 全局分区。如果您的账户在 Amazon GovCloud (US) 分区中,则只会列出该分区 Amazon Web Services 区域 中的账户(gov-us-east-1gov-us-west-1)。同样,如果您的账户位于 Amazon 中国分区,cn-northwest-1则仅显示cn-north-1和。有关 Amazon Web Services 区域 支持的完整列表 Amazon ParallelCluster,请参阅Amazon ParallelCluster 的支持区域

Allowed values for Amazon Web Services 区域 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. ca-central-1 9. eu-central-1 10. eu-north-1 11. eu-south-1 12. eu-west-1 13. eu-west-2 14. eu-west-3 15. me-south-1 16. sa-east-1 17. us-east-1 18. us-east-2 19. us-west-1 20. us-west-2 Amazon Web Services 区域 ID [ap-northeast-1]:

从向所选 Amazon Web Services 区域中的 Amazon EC2 注册的密钥对中选择密钥对。选择密钥对:

Allowed values for EC2 Key Pair Name: 1. your-key-1 2. your-key-2 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. centos7 3. ubuntu2204 4. ubuntu2004 5. rhel8 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 以大规模运行需要高水平实例间通信的应用程序,无需额外付费: Amazon

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 还是让你 Amazon ParallelCluster 创建 VPC。如果您没有正确配置的 VPC, Amazon ParallelCluster 可以为您创建一个新的 VPC。它会将头节点和计算节点置于同一公有子网中,或者仅将头节点置于公有子网中,而将所有计算节点置于私有子网中。如果您允许 Amazon ParallelCluster 创建 VPC,则必须决定是否所有节点都位于公有子网中。有关更多信息,请参阅 网络配置

如果您将集群配置为使用具有多个网络接口或网卡的实例类型,请参阅网络配置以了解其他网络要求。

可能会达到 Amazon Web Services 区域中允许的 VPC 数量配额。默认配额是每个 Amazon Web Services 区域五个 VPC。有关此配额以及如何请求提高配额的更多信息,请参阅 Amazon VPC 用户指南 中的 VPC 和子网

重要

默认情况下,由创建的 VPC Amazon ParallelCluster 不启用 VPC 流日志。VPC 流日志使您可以捕获有关在您的 VPC 中传入和传出网络接口的 IP 流量的信息。有关更多信息,请参阅《Amazon VPC 用户指南》中的 VPC 流日志

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

注意

如果您选择 1. Head node in a public subnet and compute fleet in a private subnet, Amazon 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。

如果您选择 Amazon ParallelCluster 创建 VPC,请记下 VPC ID,以便日 Amazon 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
Amazon Batch
$ pcluster configure --config config-file.yaml

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

注意

Amazon Web Services 区域 显示的列表基于您的账户分区。它仅包括 Amazon Web Services 区域 为您的账户启用的功能。有关为您的账户启 Amazon Web Services 区域 用的更多信息,请参阅 Amazon Web Services 区域中的管理Amazon Web Services 一般参考。显示的示例来自 Amazon 全局分区。如果您的账户在 Amazon GovCloud (US) 分区中,则只会列出该分区 Amazon Web Services 区域 中的账户(gov-us-east-1gov-us-west-1)。同样,如果您的账户位于 Amazon 中国分区,cn-northwest-1则仅显示cn-north-1和。有关 Amazon Web Services 区域 支持的完整列表 Amazon ParallelCluster,请参阅Amazon ParallelCluster 的支持区域

Allowed values for Amazon Web Services 区域 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. ca-central-1 9. eu-central-1 10. eu-north-1 11. eu-south-1 12. eu-west-1 13. eu-west-2 14. eu-west-3 15. me-south-1 16. sa-east-1 17. us-east-1 18. us-east-2 19. us-west-1 20. us-west-2 Amazon Web Services 区域 ID [us-east-1]:

从向所选 Amazon Web Services 区域中的 Amazon EC2 注册的密钥对中选择密钥对。选择密钥对:

Allowed values for EC2 Key Pair Name: 1. your-key-1 2. your-key-2 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]:

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

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

决定是使用现有 VPC 还是让你 Amazon ParallelCluster 创建 VPC。如果没有正确配置的 VPC, Amazon ParallelCluster 可以创建新的 VPC。它将使用同一公有子网中的头节点和计算节点,或者仅使用公有子网中的头节点,所有节点都在私有子网中。可能会达到区域中允许的 VPC 数量配额。默认的 VPC 数量为五个。有关此配额以及如何请求提高配额的更多信息,请参阅 Amazon VPC 用户指南 中的 VPC 和子网

重要

默认情况下,由创建的 VPC Amazon ParallelCluster 不启用 VPC 流日志。VPC 流日志使您可以捕获有关在您的 VPC 中传入和传出网络接口的 IP 流量的信息。有关更多信息,请参阅《Amazon VPC 用户指南》中的 VPC 流日志

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

注意

如果您选择 1. Head node in a public subnet and compute fleet in a private subnet, Amazon 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。

如果您选择 Amazon ParallelCluster 创建 VPC,请记下 VPC ID,以便日后使用 Amazon CLI 或 Amazon Web Services Management Console 将其删除。

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 = yesDNS Hostnames = yes

  • VPC 还必须具有带适用于 Amazon Web Services 区域的正确 domain-name 的 DHCP 选项。默认 DHCP 选项集已经指定了所需的 AmazonProvidedDNS。如果指定多个域名服务器,请参阅 Amazon VPC 用户指南 中的 DHCP 选项集。使用私有子网时,请使用 NAT 网关或内部代理为计算节点启用 Web 访问。有关更多信息,请参阅 网络配置

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

$ 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.7.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 用户指南(适用于 Linux 实例)中的 EC2 用户指南。或者,您可以通过以下方式连接到该集群

$ 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”格式的创建时间。您可以使用 list-stacks 命令列出堆栈。

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

可以使用 delete-stack 命令删除堆栈。

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

为您pcluster configure创建的 VPC 不是在 CloudFormation 网络堆栈中创建的。您可以在控制台中或者通过使用 Amazon CLI,手动删除该 VPC。

$ aws --region us-east-1 ec2 delete-vpc --vpc-id vpc-0b4ad9c4678d3c7ad