使用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 key pair。有关更多信息,请参阅适用于 Linux 实例的 Amazon EC2 用户指南中的 Amazon EC2 密钥对

$ pcluster configure --config cluster-config.yaml

配置向导会提示您输入创建集群所需的所有信息。与使用调度器相比,用Amazon Batch作调度器时,序列的细节有所不同Slurm。

Slurm

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

注意

Amazon Web Services 区域显示的列表基于您的账户分区,仅包括Amazon Web Services 区域您的账户已启用的分区。有关为您的账户启Amazon Web Services 区域用的更多信息,请参阅 “Amazon一般参考”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版本 3

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

key pair 是从选定的 Amazon EC2 注册的密钥对中选择的Amazon Web Services 区域。选择key pair:

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. ubuntu1804 4. ubuntu2004 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,则必须决定是否所有节点都位于公有子网中。有关更多信息,请参阅网络配置

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

可以达到您允许的 VPC 数量的配额Amazon Web Services 区域。的默认配额为五个 VPCAmazon Web Services 区域。有关此配额以及如何申请增加配额的更多信息,请参阅 Amazon VPC 用户指南中的 VPC 和子网

重要

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

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

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

注意

Amazon Web Services 区域显示的列表基于您的帐户分区。它仅包括Amazon Web Services 区域已为您账户启用的功能。有关为您的账户启Amazon Web Services 区域用的更多信息,请参阅 “Amazon一般参考”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版本 3

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

key pair 是从选定的 Amazon EC2 注册的密钥对中选择的Amazon Web Services 区域。选择key pair:

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调度器仅包含单个队列。输入计算节点集的最大大小。这是在 vCPUs 中测量的。

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 和子网

重要

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

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

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 还必须具有正确domain-name的 DHCP 选项Amazon Web Services 区域。默认 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.5.0", "clusterStatus": "CREATE_IN_PROGRESS" }, "validationMessages": [] }

关注集群进度:

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

or

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

集群达到"clusterStatus": "CREATE_COMPLETE"状态后,您可以使用普通 SSH 客户端设置连接到该集群。有关连接到 Amazon EC2 实例的更多信息,请参阅 A mazon 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 网络资源。堆栈的名称以 “parallelclusternetworklusternetworking-” 开头,包含 “YYYYMMDDHHMSS” 格式的创建时间。您可以使用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 网络堆栈中创建的。您可以在控制台中手动删除该 VPC,也可以使用Amazon CLI。

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