本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS ParallelCluster 在无法访问互联网的单个子网中
没有互联网访问权限的子网不允许使用入站或出站互联网连接。此 AWS ParallelCluster 配置可以帮助关注安全的客户进一步增强其 AWS ParallelCluster 资源的安全性。 AWS ParallelCluster 节点 AWS ParallelCluster AMIs的构建基础包括运行无法访问互联网的集群所需的所有软件。通过这种方式, AWS ParallelCluster 可以创建和管理带有无法访问互联网的节点的集群。
在本节中,您将了解如何配置集群。您还将了解运行无互联网访问权限的集群时的限制。
配置VPC终端节点
为确保群集正常运行,群集节点必须能够与多个 AWS 服务进行交互。
创建并配置以下VPC终端节点,以便集群节点无需访问互联网即可与 AWS 服务进行交互:
** 只有在启用了 DirectoryService 时才需要此端点,否则它是可选的。
中的所有实例都VPC必须具有适当的安全组才能与终端节点通信。您可以通过将安全组添加到 HeadNode 配置下面的 AdditionalSecurityGroups 和 SlurmQueues 配置下面的 AdditionalSecurityGroups 来实现这一目的。例如,如果在创建VPC终端节点时没有明确指定安全组,则默认安全组将与终端节点相关联。通过将默认安全组添加到 AdditionalSecurityGroups
,即可启用集群与端点之间的通信。
注意
当您使用IAM策略限制对VPC终端节点的访问时,必须向 Amazon S3 VPC 终端节点添加以下内容:
PolicyDocument: Version: 2012-10-17 Statement: - Effect: Allow Principal: "*" Action: - "s3:PutObject" Resource: - !Sub "arn:${AWS::Partition}:s3:::cloudformation-waitcondition-${AWS::Region}/*"
禁用 Route 53 并使用 Amazon EC2 主机名
创建时 Slurm 集群, AWS ParallelCluster 会创建用于解析自定义计算节点主机名的私有 Route 53 托管区域,例如{queue_name}-{st|dy}-{compute_resource}-{N}
。由于 Route 53 不支持VPC终端节点,因此必须禁用此功能。此外, AWS ParallelCluster 必须配置为使用默认 Amazon EC2 主机名,例如ip-1-2-3-4
。将以下设置应用于您的集群配置:
... Scheduling: ... SlurmSettings: Dns: DisableManagedDns: true UseEc2Hostnames: true
警告
对于使用 SlurmSettings/Dns/创建DisableManagedDns且UseEc2Hostnames设置为的集群true
,Slurm NodeName
未由DNS. 解决 使用 Slurm NodeHostName
相反。
注意
从 3.3.0 AWS ParallelCluster 版本开始,本说明不相关。
对于 3.3.0 之前的 AWS ParallelCluster 支持版本:
当设置UseEc2Hostnames
为时true
,Slurm 配置文件是使用 AWS ParallelCluster prolog
和epilog
脚本设置的:
-
分配了每个作业后,
prolog
用于向计算节点上的/etc/hosts
中添加节点信息。 -
epilog
用于清理prolog
写入的内容。
要添加自定义 epilog
或 prolog
脚本,请分别将其添加到 /opt/slurm/etc/pcluster/prolog.d/
或 /opt/slurm/etc/pcluster/epilog.d/
文件夹。
集群配置
了解如何将集群配置为在没有互联网连接的子网中运行。
此架构的配置需要以下设置:
# Note that all values are only provided as examples ... HeadNode: ... Networking: SubnetId: subnet-1234567890abcdef0 # the VPC of the subnet needs to have VPC endpoints AdditionalSecurityGroups: - sg-abcdef01234567890 # optional, the security group that enables the communication between the cluster and the VPC endpoints Scheduling: Scheduler: Slurm # Cluster in a subnet without internet access is supported only when the scheduler is Slurm. SlurmSettings: Dns: DisableManagedDns: true UseEc2Hostnames: true SlurmQueues: - ... Networking: SubnetIds: - subnet-1234567890abcdef0 # the VPC of the subnet needs to have VPC endpoints attached AdditionalSecurityGroups: - sg-1abcdef01234567890 # optional, the security group that enables the communication between the cluster and the VPC endpoints
-
SubnetId(s):无互联网访问权限的子网。
要启用 AWS ParallelCluster 和 AWS 服务之间的通信,子网VPC的必须连接VPC终端节点。在创建集群之前,请确认子网中已禁用自动分配公有IPv4地址,以确保
pcluster
命令可以访问集群。 -
AdditionalSecurityGroups:支持集群和VPC终端节点之间通信的安全组。
可选:
-
如果在创建VPC终端节点时没有明确指定安全组,则会关联的VPC默认安全组。因此,请将默认安全组提供给
AdditionalSecurityGroups
。 -
如果在创建集群和/或VPC终端节点时使用自定义安全组,
AdditionalSecurityGroups
则只要自定义安全组允许集群和VPC终端节点之间的通信,就没有必要。
-
-
Scheduler:集群调度器。
slurm
是唯一的有效值。只有 Slurm 调度器支持子网中没有互联网访问权限的集群。 -
SlurmSettings: 那个 Slurm 设置。
请参阅上一节禁用 Route53 并使用 Ama EC2 zon 主机名。
限制
-
通过@@ SSH或 Amazon 连接到头节点DCV:连接到集群时,请确保连接的客户端可以通过其私有 IP 地址到达集群的头节点。如果客户端与头节点不在同VPC一个节点中,请在的公有子网中使用代理实例VPC。此要求适用于SSH和DCV连接。如果子网没有互联网访问权限,则无法访问头节点的公有 IP。
pcluster ssh
和dcv-connect
命令使用公有 IP(如果存在)或私有 IP。在创建集群之前,请确认子网中已禁用自动分配公有IPv4地址,以确保pcluster
命令可以访问集群。以下示例显示了如何连接到在集群头节点中运行的DCV会话。您通过 Amazon 代理EC2实例进行连接。该实例可用作 PC 的 Amazon DCV 服务器和私有子网中头节点的客户端。
DCV通过公有子网中的代理实例连接 Connect:
-
在公有子网中创建 Amazon EC2 实例,该子网与集群的子网VPC相同。
-
确保在您的亚马逊EC2实例上安装了亚马逊DCV客户端和服务器。
-
将 AWS ParallelCluster 用户策略附加到代理 Amazon EC2 实例。有关更多信息,请参阅 AWS ParallelCluster pcluster用户策略示例。
-
在 Amazon 代理EC2实例 AWS ParallelCluster 上安装。
-
连接DCV到 Amazon 代理EC2实例。
-
在代理实例上使用
pcluster dcv-connect
命令即可连接到没有互联网访问权限的子网中的集群。
-
-
与其他 AWS 服务互动:上面仅列出了严格要求 AWS ParallelCluster 的服务。如果您的集群必须与其他服务交互,请创建相应的VPC终端节点。