

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

# 由配置的登录节点 AWS ParallelCluster
<a name="login-nodes-v3"></a>

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

 登录节点被指定为池，池定义了一组具有相同资源配置的登录节点。池中的所有登录节点都配置为[网络负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html)的一部分，后者会以循环方式在各个登录节点之间分配会话。现有实施使用户能够指定多个登录节点池。

# 登录节点的安全性
<a name="login-nodes-security"></a>

除非为登录节点[池指定了`AllowedIPs`设置 [`AllowedIps`](HeadNode-v3.md#yaml-HeadNode-Ssh-AllowedIps)，否则 AllowedIps 登录节点将继承头节点](LoginNodes-v3.md#LoginNodes-v3-Pools)的设置。通过这种方式，集群管理员可以通过指定源 CIDR 或允许在头节点或登录节点池上进行 SSH 连接的前缀列表来限制集群的安全状态。

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

# 登录节点联网
<a name="login-nodes-networking"></a>

登录节点使用为登录节点池配置的网络负载均衡器的单个连接地址进行预置。该地址的连接设置基于登录节点池配置中指定的子网类型。
+ 如果子网是私有子网，则该地址将是私有地址，为了向登录节点授予访问权限，集群管理员必须预置堡垒主机。
+ 如果子网是公有子网，则该地址将是公有地址 

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

# 登录节点存储
<a name="login-nodes-storage"></a>

在集群上配置的所有共享存储（ ParallelCluster 包括托管存储）都将安装在所有登录节点上。

 **检索登录节点信息** 

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

登录节点是一种支持的新节点类型 ParallelCluster ，在查询特定节点类型的状态时，可以使用[`describe-cluster-instances`](pcluster.describe-cluster-instances-v3.md)命令指定登录节点。

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

# 登录节点的 Imds 属性
<a name="login-nodes-imds"></a>

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

要限制 IMDS 的访问权限，请 AWS ParallelCluster 管理一连串的。`iptables`

**注意**  
对 `iptables` 或 `ip6tables` 规则进行任何自定义都可能干扰登录节点上用于限制 IMDS 访问权限的机制。另请参阅 [`Imds property setting`](HeadNode-v3.md#HeadNode-v3-Imds)。

# 登录节点生命周期
<a name="login-nodes-lifecycle"></a>

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

**注意**  
已登录用户会收到有关特定实例终止以及相关宽限期的通知。在宽限期内，除了来自[集群默认用户](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/managing-users.html)的连接外，不允许任何新连接。集群管理员可以从头节点或登录节点上通过编辑 `/opt/parallelcluster/shared_login_nodes/loginmgtd_config.json` 文件来自定义显示的消息。当您使用[AWS Systems Manager Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)会话管理器进行连接时，此终止消息不可见。

 为了启动登录节点池，集群管理员必须在集群配置中还原先前的 `Count` 值，然后运行 [`update-cluster`](pcluster.update-cluster-v3.md) 命令。

# 运行登录节点池所需的权限
<a name="login-nodes-permissions"></a>

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

```
            - Action:
              - iam:CreateServiceLinkedRole
              - 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
              - autoscaling:DeleteTags
              - autoscaling:CreateOrUpdateTags
              - elasticloadbalancing:AddTags
              - elasticloadbalancing:CreateLoadBalancer
              - elasticloadbalancing:RemoveTags
              - elasticloadbalancing:ModifyTargetGroup
            Resource: '*'
            Effect: Allow
```