本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
HeadNode
部分
(必需)指定头节点的配置。
HeadNode: InstanceType:
string
Networking: SubnetId:string
ElasticIp:string/boolean
SecurityGroups: -string
AdditionalSecurityGroups: -string
Proxy: HttpProxyAddress:string
DisableSimultaneousMultithreading:boolean
Ssh: KeyName:string
AllowedIps:string
LocalStorage: RootVolume: Size:integer
Encrypted:boolean
VolumeType:string
Iops:integer
Throughput:integer
DeleteOnTermination:boolean
EphemeralVolume: MountDir:string
SharedStorageType:string
Dcv: Enabled:boolean
Port:integer
AllowedIps:string
CustomActions: OnNodeStart: Sequence: - Script:string
Args: -string
Script:string
Args: -string
OnNodeConfigured: Sequence: - Script:string
Args: -string
Script:string
Args: -string
OnNodeUpdated: Sequence: - Script:string
Args: -string
Script:string
Args: -string
Iam: InstanceRole:string
InstanceProfile:string
S3Access: - BucketName:string
EnableWriteAccess:boolean
KeyName:string
AdditionalIamPolicies: - Policy:string
Imds: Secured:boolean
Image: CustomAmi:string
HeadNode
属性
InstanceType
(必需,String
)-
指定头节点的实例类型。
指定用于头节点的 Amazon EC2 实例类型。实例类型的架构必须与用于 AWS Batch InstanceType或SlurmInstanceType设置的架构相同。
注意
AWS ParallelCluster 不支持该
HeadNode
设置的以下实例类型。-
hpc6id
如果您定义 p4d 实例类型或定义具有多个网络接口或使用网络接口卡的其他实例类型,则必须将 ElasticIp 设置为
true
以提供公有访问权限。只能将 AWS 公有 IP 分配给使用单个网络接口启动的实例。对于这种情况,我们建议您使用 NAT 网关为集群计算节点提供公有访问权限。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的在实例启动期间分配公有 IPv4 地址。 -
DisableSimultaneousMultithreading
(可选,Boolean
)-
如果为
true
,则在头节点上禁用超线程。默认值为false
。并非所有实例类型都可以禁用超线程。有关支持禁用超线程的实例类型列表,请参阅 Amazon EC2 用户指南中每种实例类型的 CPU 核心和每个 CPU 内核的线程。
SharedStorageType
(可选,String
)-
指定用于内部共享数据的存储类型。内部共享的数据包括 AWS ParallelCluster 用于管理群集的数据,以及用于挂载共享文件系统卷的默认共享数据(
/home
如果未在挂载目录中指定)。SharedStorage 部分有关内部共享数据的更多详细信息,请参阅AWS ParallelCluster内部目录。如果
Ebs
(这是默认存储类型),则头节点会将其根卷的一部分导出为使用 NFS 的计算节点和登录节点的共享目录。如果是
Efs
,Parallelcluster 将创建一个 EFS 文件系统用于共享的内部数据和。/home
注意
当集群向外扩展时,EBS 存储类型可能会出现性能瓶颈,因为头节点使用 NFS 导出与计算节点共享来自根卷的数据。使用 EFS,您可以在集群扩展时避免 NFS 导出,并避免与之相关的性能瓶颈。建议选择 EBS 以最大限度地提高小文件和安装过程的读/写潜力。选择 EFS 进行扩展。
Networking
(必需)定义头节点的网络配置。
Networking: SubnetId:
string
ElasticIp:string/boolean
SecurityGroups: -string
AdditionalSecurityGroups: -string
Proxy: HttpProxyAddress:string
Networking
属性
SubnetId
(必需,String
)-
指定要在其中预置头节点的现有子网的 ID。
ElasticIp
(可选,String
)-
创建弹性 IP 地址或将弹性 IP 地址分配给头节点。支持的值为
true
、false
或现有弹性 IP 地址的 ID。默认值为false
。 SecurityGroups
(可选,[String]
)-
用于头节点的 Amazon VPC 安全组 ID 的列表。如果不包含此属性,则它们将替换 AWS ParallelCluster 创建的安全组。
验证您的SharedStorage系统是否正确配置了安全组。
AdditionalSecurityGroups
(可选,[String]
)-
用于头节点的其他 Amazon VPC 安全组 ID 的列表。
Proxy
(可选)-
指定头节点的代理设置。
Proxy: HttpProxyAddress:
string
HttpProxyAddress
(可选,String
)-
定义 HTTP 或 HTTPS 代理服务器,通常为
https://
。x.x.x.x:8080
没有默认值。
Ssh
(可选)定义头节点的 SSH 访问配置。
Ssh: KeyName:
string
AllowedIps:string
Ssh
属性
KeyName
(可选,String
)-
命名一个现有 Amazon EC2 密钥对,以启用对头节点的 SSH 访问。
AllowedIps
(可选,String
)-
为与头节点的 SSH 连接指定采用 CIDR 格式的 IP 范围或前缀列表 ID。默认值为
0.0.0.0/0
。
LocalStorage
(可选)定义头节点的本地存储配置。
LocalStorage: RootVolume: Size:
integer
Encrypted:boolean
VolumeType:string
Iops:integer
Throughput:integer
DeleteOnTermination:boolean
EphemeralVolume: MountDir:string
LocalStorage
属性
RootVolume
(必需)-
指定头节点的根卷存储。
RootVolume: Size:
integer
Encrypted:boolean
VolumeType:string
Iops:integer
Throughput:integer
DeleteOnTermination:boolean
Size
(可选,Integer
)-
指定头节点根卷大小,以吉字节 (GiB) 为单位。默认大小来自 AMI。如果使用不同的大小,则 AMI 必须支持
growroot
。 Encrypted
(可选,Boolean
)-
指定是否对根卷进行加密。默认值为
true
。 VolumeType
(可选,String
)-
指定 Amazon EBS 卷类型。支持的值为
gp2
、gp3
、io1
、io2
、sc1
、st1
和standard
。默认值为gp3
。有关更多信息,请参阅《Amazon EC2 用户指南》中的 Amazon EBS 卷类型。
Iops
(可选,Integer
)-
定义
io1
、io2
和gp3
类型卷的 IOPS 数。默认值、支持的值以及
volume_size
/volume_iops
比率因VolumeType
和Size
而异。VolumeType
=io1
-
默认值:
Iops
= 100支持的值:
Iops
= 100–64000 †最大
Iops
/Size
比率 = 50 IOPS/GiB。5000 IOPS 需要至少 100 GiB 的Size
。 VolumeType
=io2
-
默认值:
Iops
= 100支持的值:
Iops
= 100–64000(io2
Block Express 卷为 256000)†最大
Iops
/Size
比率 = 500 IOPS/GiB。5000 IOPS 需要至少 10 GiB 的Size
。 VolumeType
=gp3
-
默认值:
Iops
= 3000支持的值:
Iops
= 3000–16000最大
Iops
/Size
比率 = 500 IOPS/GiB。5000 IOPS 需要至少 10 GiB 的Size
。
† 只有在 Nitro System 上构建的实例配置超过 32000 IOPS 时,才能保证最大 IOPS。其他实例保证最高为 32000 IOPS。除非您修改卷,否则较旧的
io1
卷可能无法实现完全性能。io2
Block Express 卷在R5b
实例类型上支持高达 256000 的Iops
值。有关更多信息,请参阅 Amazon EC2 用户指南中的io2
阻止 Express 卷。 Throughput
(可选,Integer
)-
定义
gp3
卷类型的吞吐量,以 MiB/s 为单位。此设置仅在VolumeType
为gp3
时有效。默认值为125
。支持的值:125–1000 MiB/sThroughput
与Iops
的比率不能超过 0.25。1000 MiB/s 的最大吞吐量要求Iops
设置至少为 4000。 DeleteOnTermination
(可选,Boolean
)-
指定头节点终止时是否应删除根卷。默认值为
true
。
EphemeralVolume
(可选)-
指定任何实例存储卷的详细信息。有关更多信息,请参阅 Amazon EC2 用户指南中的实例存储卷。
EphemeralVolume: MountDir:
string
MountDir
(可选,String
)-
指定实例存储卷的挂载目录。默认值为
/scratch
。
Dcv
(可选)定义头节点上运行的 NICE DCV 服务器的配置设置。
有关更多信息,请参阅 通过 NICE DCV 连接到头节点。
Dcv: Enabled:
boolean
Port:integer
AllowedIps:string
重要
默认情况下,设置的 NICE DCV 端口对所有 IPv4 地址开放。 AWS ParallelCluster 但是,只有当您具有 NICE DCV 会话的 URL 时,才能连接到 NICE DCV 端口,并应在 pcluster dcv-connect
返回 URL 后的 30 秒内连接到 NICE DCV 会话。请使用 AllowedIps
设置进一步限制对具有 CIDR 格式 IP 范围的 NICE DCV 端口的访问,并使用 Port
设置来设置非标准端口。
Dcv
属性
Enabled
(必需,Boolean
)-
指定是否在头节点上启用 NICE DCV。默认值为
false
。注意
NICE DCV 自动生成自签名证书,用于保护 NICE DCV 客户端和头节点上运行的 NICE DCV 服务器之间的流量。要配置您自己的证书,请参阅 NICE DCV HTTPS 证书。
Port
(可选,Integer
)-
指定 NICE DCV 的端口。默认值为
8443
。 AllowedIps
(可选,建议,String
)-
指定 NICE DCV 连接的 CIDR 格式的 IP 范围。此设置仅在 AWS ParallelCluster 创建安全组时使用。默认值是
0.0.0.0/0
,允许从任何 Internet 地址访问。
CustomActions
(可选)指定要在头节点上运行的自定义脚本。
CustomActions: OnNodeStart: Sequence: - Script:
string
Args: -string
Script:string
Args: -string
OnNodeConfigured: Sequence: - Script:string
Args: -string
Script:string
Args: -string
OnNodeUpdated: Sequence: - Script:string
Args: -string
Script:string
Args: -string
CustomActions
属性
OnNodeStart
(可选)-
指定要在启动任何节点部署引导操作之前在头节点上运行的单个脚本或一系列脚本。有关更多信息,请参阅 自定义引导操作。
Sequence
(可选)-
要运行的脚本列表。 AWS ParallelCluster 按配置文件中列出的顺序运行脚本,从第一个脚本开始。
Script
(必需,String
)-
指定要使用的文件。文件路径可以
https://
或s3://
开头。 Args
(可选,[String]
)-
要传递到脚本的参数的列表。
Script
(必需,String
)-
指定用于单个脚本的文件。文件路径可以
https://
或s3://
开头。 Args
(可选,[String]
)-
要传递到单个脚本的参数的列表。
OnNodeConfigured
(可选)-
指定要在节点引导操作完成后在头节点上运行的单个脚本或一系列脚本。有关更多信息,请参阅 自定义引导操作。
Sequence
(可选)-
指定要运行的脚本的列表。
Script
(必需,String
)-
指定要使用的文件。文件路径可以
https://
或s3://
开头。 Args
(可选,[String]
)-
要传递到脚本的参数的列表。
Script
(必需,String
)-
指定用于单个脚本的文件。文件路径可以
https://
或s3://
开头。 Args
(可选,[String]
)-
要传递到单个脚本的参数的列表。
OnNodeUpdated
(可选)-
指定要在节点更新操作完成后在头节点上运行的单个脚本或一系列脚本。有关更多信息,请参阅 自定义引导操作。
Sequence
(可选)-
指定要运行的脚本的列表。
Script
(必需,String
)-
指定要使用的文件。文件路径可以
https://
或s3://
开头。 Args
(可选,[String]
)-
要传递到脚本的参数的列表。
Script
(必需,String
)-
指定用于单个脚本的文件。文件路径可以
https://
或s3://
开头。 Args
(可选,[String]
)-
要传递到单个脚本的参数的列表。
注意
OnNodeUpdated
是从 AWS ParallelCluster 3.4.0 开始添加的。Sequence
是从 3.6.0 AWS ParallelCluster 版本开始添加的。指定后Sequence
,您可以列出自定义操作的多个脚本。 AWS ParallelCluster 继续支持使用单个脚本配置自定义操作,不包括脚本Sequence
。AWS ParallelCluster 不支持同时包含单个脚本和
Sequence
同一个自定义操作。
Iam
(可选)指定要在头节点上使用的实例角色或实例配置文件,用于覆盖集群的默认实例角色或实例配置文件。
Iam: InstanceRole:
string
InstanceProfile:string
S3Access: - BucketName:string
EnableWriteAccess:boolean
KeyName:string
AdditionalIamPolicies: - Policy:string
Iam
属性
InstanceProfile
(可选,String
)-
指定用于覆盖默认头节点实例配置文件的实例配置文件。您不能同时指定
InstanceProfile
和InstanceRole
。格式为arn:
。Partition
:iam::Account
:instance-profile/InstanceProfileName
如果指定此设置,则不能指定
S3Access
和AdditionalIamPolicies
设置。我们建议您指定
S3Access
和AdditionalIamPolicies
设置中的一个或两个,因为添加到中的功能 AWS ParallelCluster 通常需要新的权限。 InstanceRole
(可选,String
)-
指定用于覆盖默认头节点实例角色的实例角色。您不能同时指定
InstanceProfile
和InstanceRole
。格式为arn:
。Partition
:iam::Account
:role/RoleName
如果指定此设置,则不能指定
S3Access
和AdditionalIamPolicies
设置。我们建议您指定
S3Access
和AdditionalIamPolicies
设置中的一个或两个,因为添加到中的功能 AWS ParallelCluster 通常需要新的权限。
S3Access
S3Access
(可选)-
指定存储桶。此设置用于生成针对存储桶授予指定访问权限的策略。
如果指定此设置,则不能指定
InstanceProfile
和InstanceRole
设置。我们建议您指定
S3Access
和AdditionalIamPolicies
设置中的一个或两个,因为添加到中的功能 AWS ParallelCluster 通常需要新的权限。S3Access: - BucketName:
string
EnableWriteAccess:boolean
KeyName:string
BucketName
(必需,String
)-
存储桶的名称。
KeyName
(可选,String
)-
存储桶的密钥。默认值为“
*
”。 EnableWriteAccess
(可选,Boolean
)-
指示是否为存储桶启用写入权限。默认值为
false
。
AdditionalIamPolicies
AdditionalIamPolicies
(可选)-
指定 Amazon EC2 的 IAM 策略的 Amazon 资源名称 (ARN) 列表。除了所需的权限外,此列表还附在用于头节点的根角色上 AWS ParallelCluster。
IAM 策略名称及其 ARN 不相同。不能使用名称。
如果指定此设置,则不能指定
InstanceProfile
和InstanceRole
设置。我们建议您使用,
AdditionalIamPolicies
AdditionalIamPolicies
因为已添加到 AWS ParallelCluster 所需的权限中,并且InstanceRole
必须包含所需的所有权限。随着功能的不断添加,所需权限通常会随版本发生变化。没有默认值。
AdditionalIamPolicies: - Policy:
string
Policy
(可选,[String]
)-
IAM 策略的列表。
Imds
(可选)指定实例元数据服务 (IMDS) 的属性。有关更多信息,请参阅 Amazon EC2 用户指南中的实例元数据服务版本 2 的工作原理。
Imds: Secured:
boolean
Imds
属性
Secured
(可选,Boolean
)-
如果为
true
,则仅允许一部分超级用户访问头节点的 IMDS(以及实例配置文件凭证)。如果为
false
,则头节点中的每个用户都可以访问头节点的 IMDS。允许以下用户访问头节点的 IMDS:
-
根用户
-
集群管理用户(默认为
pc-cluster-admin
) -
操作系统特定的默认用户(
ec2-user
在亚马逊 Linux 2 上 RedHat,在 Ubuntu 18.04ubuntu
上,在centos
CentOS 7 上)
默认值为
true
。default
用户负责确保集群拥有与 AWS 资源交互所需的权限。如果您禁用default
用户 IMDS 访问权限,则 AWS ParallelCluster 无法管理计算节点并停止工作。请勿禁用default
用户 IMDS 访问权限。向用户授予头节点 IMDS 的访问权限后,他们可以使用头节点的实例配置文件中包含的权限。例如,他们可以使用这些权限启动 Amazon EC2 实例,或者读取集群配置为用于身份验证的 AD 域的密码。
要限制 IMDS 的访问权限,请 AWS ParallelCluster 管理一连串的。
iptables
具有
sudo
访问权限的集群用户可以通过运行以下命令,对其他单独用户(包括default
用户)有选择地启用或禁用对头节点 IMDS 的访问权限:$
sudo /opt/parallelcluster/scripts/imds/imds-access.sh --allow<USERNAME>
您可以使用此命令的
--deny
选项禁用用户的 IMDS 访问权限。如果您无意中禁用了
default
用户的 IMDS 访问权限,则可以使用--allow
选项还原该权限。注意
对
iptables
或ip6tables
规则进行任何自定义都可能干扰头节点上用于限制 IMDS 访问权限的机制。 -
Image
(可选)为头节点定义自定义映像。
Image: CustomAmi:
string
Image
属性
CustomAmi
(可选,String
)-
指定要用于头节点的自定义 AMI(而非默认 AMI)的 ID。有关更多信息,请参阅 AWS ParallelCluster AMI 自定义。
如果自定义 AMI 需要其他权限才能启动,则必须将这些权限添加到用户和头节点策略中。
例如,如果自定义 AMI 具有与之关联的加密快照,则用户和头节点策略中都需要以下其他策略:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:DescribeKey", "kms:ReEncrypt*", "kms:CreateGrant", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:
<AWS_REGION>
:<AWS_ACCOUNT_ID>
:key/<AWS_KMS_KEY_ID>
" ] } ] }要排查自定义 AMI 验证警告,请参阅排查自定义 AMI 问题。