本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立叢集 AWS CloudFormation
瞭解如何使用 AWS ParallelCluster CloudFormation 自訂資源建立叢集。如需詳細資訊,請參閱 AWS CloudFormation 自訂資源。
使用時 AWS ParallelCluster,您只需為建立或更新 AWS ParallelCluster 映像和叢集時所建立的 AWS 資源付費。如需詳細資訊,請參閱 AWS 所使用的 服務 AWS ParallelCluster。
事前準備:
-
AWS CLI 已安裝並設定。
使用 CloudFormation 快速建立堆疊建立叢集
在本教學課程中,您會使用快速建立堆疊來部署建立叢集和下列 AWS 資源的 CloudFormation 範本:
-
使用 CloudFormation 快速建立 CloudFormation 堆疊所建立的根堆疊。
-
包含預設原則、預設 VPC 設定和自訂資源提供者的巢狀 CloudFormation 堆疊。
-
範例 AWS ParallelCluster 叢集堆疊和叢集,您可以登入並執行作業。
建立叢集 AWS CloudFormation
-
登入 AWS Management Console。
-
開啟 CloudFormation 快速建立連結
,在 CloudFormation 主控台中建立下列資源: -
具有公用和私有子網路的 VPC 的巢狀 CloudFormation 堆疊,用於分別執行叢集頭節點和計算節點。
-
具有用於管理叢集的 AWS ParallelCluster 自訂資源的巢狀 CloudFormation 堆疊。
-
具有管理叢集之預設原則的巢狀 CloudFormation 堆疊。
-
巢狀 CloudFormation 堆疊的根堆疊。
-
具有Slurm排程器和已定義計算節點數目的 AWS ParallelCluster 叢集。
-
-
在「快速建立堆疊參數」區段中,輸入下列參數的值:
-
在中 KeyName,輸入您的 Amazon EC2 key pair 的名稱。
-
對於 AvailabilityZone,選擇叢集節點的 AZ,例如,
us-east-1a
。
-
-
核取方塊以確認頁面底部的每個存取功能。
-
選擇建立堆疊。
-
等待 CloudFormation 堆棧到達狀
CREATE_COMPLETE
態。
使用 AWS CloudFormation 命令列介面 (CLI) 建立叢集
在本教學課程中,您會使用 AWS 命令列介面 (CLI) CloudFormation 來部署建立叢集的 CloudFormation 範本。
建立下列 AWS 資源:
-
使用 CloudFormation 快速建立 CloudFormation 堆疊所建立的根堆疊。
-
包含預設原則、預設 VPC 設定和自訂資源提供者的巢狀 CloudFormation 堆疊。
-
範例 AWS ParallelCluster 叢集堆疊和叢集,您可以登入並執行作業。
以您自己的值取代以紅色反白顯示的輸入
,例如金鑰配對
。
建立叢集 AWS CloudFormation
-
建立具有下列內
cluster_template.yaml
容命名的 CloudFormation 範本:AWSTemplateFormatVersion: '2010-09-09' Description: > AWS ParallelCluster CloudFormation Template Parameters: KeyName: Description: KeyPair to login to the head node Type: AWS::EC2::KeyPair::KeyName AvailabilityZone: Description: Availability zone where instances will be launched Type: AWS::EC2::AvailabilityZone::Name Default: us-east-2a Mappings: ParallelCluster: Constants: Version: 3.7.0 Resources: PclusterClusterProvider: Type: AWS::CloudFormation::Stack Properties: TemplateURL: !Sub - https://${AWS::Region}-aws-parallelcluster.s3.${AWS::Region}.${AWS::URLSuffix}/parallelcluster/${Version}/templates/custom_resource/cluster.yaml - { Version: !FindInMap [ParallelCluster, Constants, Version] } PclusterVpc: Type: AWS::CloudFormation::Stack Properties: Parameters: PublicCIDR: 10.0.0.0/24 PrivateCIDR: 10.0.16.0/20 AvailabilityZone: !Ref AvailabilityZone TemplateURL: !Sub - https://${AWS::Region}-aws-parallelcluster.s3.${AWS::Region}.${AWS::URLSuffix}/parallelcluster/${Version}/templates/networking/public-private-${Version}.cfn.json - { Version: !FindInMap [ParallelCluster, Constants, Version ] } PclusterCluster: Type: Custom::PclusterCluster Properties: ServiceToken: !GetAtt [ PclusterClusterProvider , Outputs.ServiceToken ] ClusterName: !Sub 'c-${AWS::StackName}' ClusterConfiguration: Image: Os: alinux2 HeadNode: InstanceType: t2.medium Networking: SubnetId: !GetAtt [ PclusterVpc , Outputs.PublicSubnetId ] Ssh: KeyName: !Ref KeyName Scheduling: Scheduler: slurm SlurmQueues: - Name: queue0 ComputeResources: - Name: queue0-cr0 InstanceType: t2.micro Networking: SubnetIds: - !GetAtt [ PclusterVpc , Outputs.PrivateSubnetId ] Outputs: HeadNodeIp: Description: The Public IP address of the HeadNode Value: !GetAtt [ PclusterCluster, headNode.publicIpAddress ]
-
執行下列 AWS CLI 命令以部署 CloudFormation 堆疊以進行叢集建立和管理。
$
aws cloudformation deploy --template-file
./cluster_template.yaml
\ --stack-namemycluster
\ --parameter-overrides KeyName=keypair
\ AvailabilityZone=us-east-2b
\ --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND
檢視 CloudFormation 叢集輸出
檢視 CloudFormation 叢集輸出以取得有用的叢集詳細資訊。新增的ValidationMessages
屬性可讓您存取叢集建立和更新作業的驗證訊息。
-
導覽至主CloudFormation 控台
,然後選取包含您 AWS ParallelCluster 自訂資源的堆疊。 -
選擇堆疊詳細資料,然後選取輸出索引標籤。
驗證訊息可能會被截斷。如需如何擷取記錄檔的詳細資訊,請參閱AWS ParallelCluster 疑難排解。
存取您的叢集
存取叢集。
ssh
進入叢集頭節點
-
CloudFormation 堆疊部署完成後,請使用下列命令取得頭節點的 IP 位址:
$
HEAD_NODE_IP=$(aws cloudformation describe-stacks --stack-name=
mycluster
--query "Stacks|[0].Outputs[?OutputKey=='HeadNodeIp']|[0].OutputValue" --output=text)您也可以從 CloudFormation 主控台的叢集堆疊輸出索引標籤中的HeadNodeIp參數擷取頭節點 IP 位址。
您可以在這裡找到頭節點 IP 位址,因為它是在叢集範 CloudFormation 本的
Outputs
區段中新增的,特別是針對此範例叢集。 -
執行下列命令,Connect 至叢集頭節點:
$
ssh -i
keyname.pem
ec2-user@$HEAD_NODE_IP
清除
刪除叢集。
-
執行下列 AWS CLI 命令以刪除 CloudFormation 堆疊和叢集。
$
aws cloudformation delete-stack --stack-name=
mycluster
-
通過運行以下命令檢查堆棧刪除狀態。
$
aws cloudformation describe-stacks --stack-name=
mycluster