从集群的不同节点附加到同一个 tmux 会话

ele*_*kil 8 networking linux ssh cluster tmux

我正在研究一个具有数百个节点的计算集群。当通过 ssh 进入集群时,负载平衡方案会选择一个空闲节点来登录。因此,在随后调用 ssh 时重新登录到以前的机器的可能性很小。

但是,我想tmux在遥控器上使用来设置在不同登录之间持续存在的会话。

我正在寻找可用于实现所需行为的不同选项。我想出了以下选项,但是,这并不是一个真正的“好”解决方案:

  • 选择一个节点并坚持下去。
    即在node-XXXX负载平衡器登录机器后打开一个新的 ssh 连接node-0042并在tmux那里运行。

    使用ssh's ProxyCommandthis 甚至可以以无缝方式实现,即用户键入ssh node-0042打开集群登录的连接并使用该连接作为连接的代理node-0042

    这有一个明显的缺点,即用户无法从负载平衡机制中获得任何好处。

您对如何处理这种情况有什么建议吗?任何解决它的不同方法的想法(是否可以将正在运行的tmux服务器“移动”到另一台机器[这是当前机器的副本]?)。

小智 0

您可以为您的 shell 机器设置一个服务地址,这样 DNS 条目就可以指向它所在的位置。通过某种动态 DNS 服务或高可用性软件,您可以每次使用相同的主机名。

如果您能够在这些资源之上运行虚拟机,您可以交替启动您最喜欢的操作系统来运行 shell 并附加到 tmux(运行 ssh 会话或其他)。静态地址将指向此 shell VM。如果您具有实时迁移功能,甚至在必须关闭某些节点进行维护时它甚至可以继续运行。