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

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

登录节点

从版本 3.7.0 开始,Amazon ParallelCluster 集群管理员可以预置登录节点,这些节点可用于向用户提供运行作业所需的访问权限,而不是直接访问集群头节点。  具有适当权限的集群用户可以使用 Active Directory 或其 ssh 凭证登录、提交和管理其作业。这可以改善集群管理,并最大限度地减小耗尽 Slurm 管理集群所需的头节点资源的几率。已登录用户还可以访问登录节点上挂载的集群的所有共享存储。如果需要停止登录节点,则已登录用户将会通过正在使用的活动 Shell 会话提前收到通知。

登录节点被指定为池,池定义了一组具有相同资源配置的登录节点。池中的所有登录节点都配置为网络负载均衡器的一部分,后者会以循环方式在各个登录节点之间分配会话。本实现允许指定一个包含多个登录节点的登录节点池。

安全性

登录节点继承头节点的 AllowedIPs 设置 AllowedIps。通过这种方式,集群管理员可以通过指定允许 SSH 连接的源 CIDR 或前缀列表来限制集群的安全状况。

在本实现中,启用登录节点时,不会自动限制对头节点的访问。如果需要,集群管理员可以通过使用标准 Linux 命令来更新头节点 ssh 配置,从而限制此访问权限。通过使用 ParallelCluster YAML 文件头节点部分中的 AdditionalSecurityGroups 设置在头节点上指定自定义安全组,拒绝来自未授权用户的连接,也可以实现这一目标。

联网

登录节点使用为登录节点池配置的网络负载均衡器的单个连接地址进行预置。该地址的连接设置基于登录节点池配置中指定的子网类型。

  • 如果子网是私有子网,则该地址将是私有地址,为了向登录节点授予访问权限,集群管理员必须预置堡垒主机。

  • 如果子网是公有子网,则该地址将是公有地址

所有连接请求均由网络负载均衡器使用循环路由进行管理。

存储

使用 ParallelCluster 在集群上配置的所有共享存储(包括托管存储)都将挂载到所有登录节点上。

检索登录节点信息

要检索为访问登录节点而预置的单个连接的地址,集群管理员可以运行 describe-cluster 命令。该命令还将提供有关登录节点状态的更多信息。

登录节点是 ParallelCluster 支持的一种新节点类型,在查询特定节点类型的状态时,可以使用 describe-cluster-instances 命令进行指定。

登录节点池的单个连接地址的可用性并不能阻止对特定登录节点的直接访问。但为了避免 ssh 客户端发出警告,不建议使用直接连接。ssh 客户端在本地存储每个目标地址的主机标识符。由于每个池的主机标识符是特定的,因此使用不同的 IP 和/或单个连接地址可能会将相同的主机标识符与不同的目标地址相关联:由于相同的主机标识符与多个目标相关联,这可能会导致 ssh 客户端发出警告。

Imds 属性

登录节点的 IMDS(以及实例配置文件凭证)的访问权限仅限于根用户、集群管理用户(默认为 pc-cluster-admin)和操作系统特定的默认用户(Amazon Linux 2 和 RedHat 上为 ec2-user,Ubuntu 18.04 上为 ubuntu、CentOS 7 上为 centos)。

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

注意

iptablesip6tables 规则进行任何自定义都可能干扰登录节点上用于限制 IMDS 访问权限的机制。另请参阅 Imds property setting

登录节点生命周期

目前没有用于停止和启动池中登录节点的专用命令。为了停止池中的登录节点,集群管理员必须更新集群配置,将登录节点数指定为零 (Count: 0),然后运行 pcluster.update-cluster-v3 命令。

注意

已登录用户会收到有关特定实例终止以及相关宽限期的通知。在宽限期内,除了来自集群默认用户的连接外,不允许任何新连接。集群管理员可以从头节点或登录节点上通过编辑 /opt/parallelcluster/shared_login_nodes/loginmgtd_config.json 文件来自定义显示的消息。

为了启动登录节点池,集群管理员必须在集群配置中还原先前的 Count 值,然后运行 update-cluster 命令。

运行登录节点池所需的权限

要管理登录节点池,集群管理员必须具有以下额外权限:

            - Action:              - autoscaling:DeleteAutoScalingGroup               - autoscaling:DeleteLifecycleHook               - autoscaling:Describe*               - autoscaling:PutLifecycleHook               - autoscaling:UpdateAutoScalingGroup               - elasticloadbalancing:CreateListener               - elasticloadbalancing:CreateTargetGroup               - elasticloadbalancing:DeleteListener               - elasticloadbalancing:DeleteLoadBalancer               - elasticloadbalancing:DeleteTargetGroup               - elasticloadbalancing:Describe*               - elasticloadbalancing:ModifyLoadBalancerAttributes             Resource: '*'             Condition:               ForAllValues:StringEquals:                 aws:TagKeys: [ "parallelcluster:cluster-name" ]             - Action:               - autoscaling:CreateAutoScalingGroup               - elasticloadbalancing:AddTags               - elasticloadbalancing:CreateLoadBalancer             Resource: '*'             Effect: Allow