HeadNode 部分 - Amazon ParallelCluster
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

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 实例类型。该实例类型的架构必须与用于 Amazon Batch InstanceType 或 Slurm InstanceType 设置的架构相同。

注意

对于 HeadNode 设置,Amazon ParallelCluster 不支持以下 实例类型。

  • hpc6id

如果您定义 p4d 实例类型或定义具有多个网络接口或使用网络接口卡的其他实例类型,则必须将 ElasticIp 设置为 true 以提供公有访问权限。只能将 Amazon 公有 IP 分配给使用单个网络接口启动的实例。对于这种情况,我们建议您使用 NAT 网关为集群计算节点提供公有访问权限。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的在实例启动期间分配公有 IPv4 地址

更新策略:如果更改此设置,则不允许更新。

DisableSimultaneousMultithreading可选Boolean

如果为 true,则在头节点上禁用超线程。默认值为 false

并非所有实例类型都可以禁用超线程。有关支持禁用超线程的实例类型列表,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的每种实例类型的 CPU 内核以及每个 CPU 内核的线程

更新策略:如果更改此设置,则不允许更新。

SharedStorageType可选String

指定用于内部共享数据的存储类型。内部共享的数据包括Amazon ParallelCluster用于管理群集的数据,以及用于挂载共享文件系统卷的默认共享数据(/home如果未在挂载目录中指定)。SharedStorage 部分有关内部共享数据的更多详细信息,请参阅Amazon 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 地址分配给头节点。支持的值为 truefalse 或现有弹性 IP 地址的 ID。默认值为 false

更新策略:如果更改此设置,则不允许更新。

SecurityGroups可选[String]

用于头节点的 Amazon VPC 安全组 ID 的列表。如果不包含此属性,则这些安全组将取代 Amazon 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 卷类型。支持的值为 gp2gp3io1io2sc1st1standard。默认值为 gp3

有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 Amazon EBS 卷类型

更新策略:如果更改此设置,则不允许更新。

Iops可选Integer

定义 io1io2gp3 类型卷的 IOPS 数。

默认值、支持的值以及 volume_size/volume_iops 比率因 VolumeTypeSize 而异。

更新策略:如果更改此设置,则不允许更新。

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 卷可能无法实现完全性能。io2Block Express 卷在 R5b 实例类型上支持高达 256000 的 Iops 值。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的 io2Block Express 卷

更新策略:可以在更新期间更改此设置。

Throughput可选Integer

定义 gp3 卷类型的吞吐量,以 MiB/s 为单位。此设置仅在 VolumeTypegp3 时有效。默认值为 125。支持的值:125–1000 MiB/s

ThroughputIops 的比率不能超过 0.25。1000 MiB/s 的最大吞吐量要求 Iops 设置至少为 4000。

更新策略:如果更改此设置,则不允许更新。

DeleteOnTermination可选Boolean

指定头节点终止时是否应删除根卷。默认值为 true

更新策略:如果更改此设置,则不允许更新。

EphemeralVolume可选

指定任何实例存储卷的详细信息。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的实例存储卷

EphemeralVolume: MountDir: string

更新策略:如果更改此设置,则不允许更新。

MountDir可选String

指定实例存储卷的挂载目录。默认值为 /scratch

更新策略:如果更改此设置,则不允许更新。

Dcv

(可选)定义头节点上运行的 NICE DCV 服务器的配置设置。

有关更多信息,请参阅通过 NICE DCV 连接到头节点

Dcv: Enabled: boolean Port: integer AllowedIps: string
重要

默认情况下,Amazon ParallelCluster 设置的 NICE DCV 端口对所有 IPv4 地址开放。但是,只有当您具有 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 范围。此设置仅在 Amazon 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可选

要运行的脚本的列表。Amazon 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]

要传递到单个脚本的参数的列表。

更新策略:可以在更新期间更改此设置。

注意

从 Amazon ParallelCluster 3.4.0 开始添加了 OnNodeUpdated

从 Amazon ParallelCluster 版本 3.6.0 开始添加了 Sequence。指定 Sequence 后,您可以列出自定义操作的多个脚本。在配置自定义操作时,Amazon ParallelCluster 继续支持使用单个脚本而不包括 Sequence

Amazon ParallelCluster 不支持对同一个自定义操作同时包括单个脚本和 Sequence

Iam

(可选)指定要在头节点上使用的实例角色或实例配置文件,用于覆盖集群的默认实例角色或实例配置文件。

Iam: InstanceRole: string InstanceProfile: string S3Access: - BucketName: string EnableWriteAccess: boolean KeyName: string AdditionalIamPolicies: - Policy: string

更新策略:可以在更新期间更改此设置。

Iam 属性

InstanceProfile可选String

指定用于覆盖默认头节点实例配置文件的实例配置文件。您不能同时指定 InstanceProfileInstanceRole。格式为 arn:Partition:iam::Account:instance-profile/InstanceProfileName

如果指定此设置,则不能指定 S3AccessAdditionalIamPolicies 设置。

我们建议您指定 S3AccessAdditionalIamPolicies 设置中的一个或两个,因为添加到 Amazon ParallelCluster 中的功能通常需要新权限。

更新策略:如果更改此设置,则不允许更新。

InstanceRole可选String

指定用于覆盖默认头节点实例角色的实例角色。您不能同时指定 InstanceProfileInstanceRole。格式为 arn:Partition:iam::Account:role/RoleName

如果指定此设置,则不能指定 S3AccessAdditionalIamPolicies 设置。

我们建议您指定 S3AccessAdditionalIamPolicies 设置中的一个或两个,因为添加到 Amazon ParallelCluster 中的功能通常需要新权限。

更新策略:可以在更新期间更改此设置。

S3Access

S3Access可选

指定存储桶。此设置用于生成针对存储桶授予指定访问权限的策略。

如果指定此设置,则不能指定 InstanceProfileInstanceRole 设置。

我们建议您指定 S3AccessAdditionalIamPolicies 设置中的一个或两个,因为添加到 Amazon ParallelCluster 中的功能通常需要新权限。

S3Access: - BucketName: string EnableWriteAccess: boolean KeyName: string

更新策略:可以在更新期间更改此设置。

BucketName必需String

存储桶的名称。

更新策略:可以在更新期间更改此设置。

KeyName可选String

存储桶的密钥。默认值为“*”。

更新策略:可以在更新期间更改此设置。

EnableWriteAccess可选Boolean

指示是否为存储桶启用写入权限。默认值为 false

更新策略:可以在更新期间更改此设置。

AdditionalIamPolicies

AdditionalIamPolicies可选

指定 Amazon EC2 的 IAM 策略的 Amazon 资源名称 (ARN) 列表。除了 Amazon ParallelCluster 所需的权限之外,此列表还附加到用于头节点的根角色。

IAM 策略名称及其 ARN 不相同。不能使用名称。

如果指定此设置,则不能指定 InstanceProfileInstanceRole 设置。

我们建议您使用 AdditionalIamPolicies,因为 AdditionalIamPolicies 已经添加到 Amazon ParallelCluster 所需的权限中,而 InstanceRole 必须包含所有必需的权限。随着功能的不断添加,所需权限通常会随版本发生变化。

没有默认值。

AdditionalIamPolicies: - Policy: string

更新策略:可以在更新期间更改此设置。

Policy可选[String]

IAM 策略的列表。

更新策略:可以在更新期间更改此设置。

Imds

(可选)指定实例元数据服务 (IMDS) 的属性。有关更多信息,请参阅 Amazon EC2 用户指南(适用于 Linux 实例)中的实例元数据服务版本 2 的工作原理

Imds: Secured: boolean

更新策略:如果更改此设置,则不允许更新。

Imds 属性

Secured可选Boolean

如果为 true,则仅允许一部分超级用户访问头节点的 IMDS(以及实例配置文件凭证)。

如果为 false,则头节点中的每个用户都可以访问头节点的 IMDS。

允许以下用户访问头节点的 IMDS:

  • 根用户

  • 集群管理用户(默认为 pc-cluster-admin

  • 操作系统特定的默认用户(ec2-user在亚马逊 Linux 2 上 RedHat,在 Ubuntu 18.04 ubuntu 上,在 centos CentOS 7 上)

默认值为 true

default 用户负责确保集群拥有与 Amazon 资源交互所需的权限。如果您禁用 default 用户 IMDS 访问权限,则 Amazon ParallelCluster 无法管理计算节点并停止工作。请勿禁用 default 用户 IMDS 访问权限。

向用户授予头节点 IMDS 的访问权限后,他们可以使用头节点的实例配置文件中包含的权限。例如,他们可以使用这些权限来启动 EC2 实例,或读取为集群配置的用于进行身份验证的 AD 域的密码。

为了限制 IMDS 访问权限,Amazon ParallelCluster 管理着一个 iptables 链。

具有 sudo 访问权限的集群用户可以通过运行以下命令,对其他单独用户(包括 default 用户)有选择地启用或禁用对头节点 IMDS 的访问权限:

$ sudo /opt/parallelcluster/scripts/imds/imds-access.sh --allow <USERNAME>

您可以使用此命令的 --deny 选项禁用用户的 IMDS 访问权限。

如果您无意中禁用了 default 用户的 IMDS 访问权限,则可以使用 --allow 选项还原该权限。

注意

iptablesip6tables 规则进行任何自定义都可能干扰头节点上用于限制 IMDS 访问权限的机制。

更新策略:如果更改此设置,则不允许更新。

Image

(可选)为头节点定义自定义映像。

Image: CustomAmi: string

更新策略:如果更改此设置,则不允许更新。

Image 属性

CustomAmi可选String

指定要用于头节点的自定义 AMI(而非默认 AMI)的 ID。有关更多信息,请参阅Amazon 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 问题

更新策略:如果更改此设置,则不允许更新。