如何为 ipython 集群(ipcluster)设置 ssh 隧道

Posted

技术标签:

【中文标题】如何为 ipython 集群(ipcluster)设置 ssh 隧道【英文标题】:How to setup ssh tunnel for ipython cluster (ipcluster) 【发布时间】:2014-06-02 11:07:03 【问题描述】:

我想在可通过 ssh 访问的服务器和其他可以通过 ssh 相互连接的机器上运行 ipython 集群。网络不受信任。

我尝试使用我从文档中了解的内容设置 ssh 隧道 ipcontroller 和 ipengine。但是,我最终使通信正常工作的唯一方法是手动实现隧道。使用来自Jean-Francis Roy 的指令首先修复所有必要的端口

controller-host ~ $ ipcontroller --ip=0.0.0.0 --location=127.0.0.1 --port=10101 \
             --HubFactory.hb=10102,10112 \
             --HubFactory.control=10203,10103 \
             --HubFactory.mux=10204,10104 \
             --HubFactory.task=10205,10105

然后可以手动为上述固定端口启动 ssh 隧道。

engine-host ~ $ for port in 10101 10102 10112 10103 10104 10105; do\
                    ssh USER@IP_CONTROLLER -f -N -L $port:localhost:$port;\
                done

虽然这可行,但我从文档中感觉到,ipcontroller 或 ipengine 的众多选项之一可以在无需手动安装端口的情况下完成此操作。考虑到我们网络中的所有 IP 都是固定且合理受信任的,对我来说一个非常可行的解决方案是打开防火墙的固定端口。

如何指示引擎通过隧道连接到控制器?

【问题讨论】:

我处于类似情况 - 自动设置 SSH 隧道(在引擎/控制器进程关闭时删除)或指定端口范围的方法(添加一些明确的主机:端口范围组合到防火墙)将是最有用的...... 【参考方案1】:

感谢您复制宝贵的说明,现在博客的链接坏了! 我能够通过编辑配置文件中的相应项目来使其工作。 首先,创建一个配置文件:

ipython profile create --parallel --profile=myCluster

然后,编辑~/.ipython/profile_myCluster/ipcontroller_config.py 以获得:

c.HubFactory.control = 10203,10103
c.HubFactory.task = 10205,10105
c.HubFactory.mux = 10204,10104
c.HubFactory.regport = 10101
c.HubFactory.hb = 10102,10112

现在,如果端口可以访问,你只需要启动

ipcluster start --profile=myCluster

其他选项见http://ipython.org/ipython-doc/1/parallel/parallel_process.html#using-ipcluster-in-ssh-mode

【讨论】:

以上是关于如何为 ipython 集群(ipcluster)设置 ssh 隧道的主要内容,如果未能解决你的问题,请参考以下文章

如何为远程 Service Fabric 集群创建 Actor 代理

如何为私有 GKE 集群启用 Gitlab CI/CD?

如何为大数据处理构建高性能Hadoop集群

如何为大数据处理构建高性能Hadoop集群

如何为 keycloak 配置数据源以与 galera 集群配合使用?

节点集群:如何为每个工作人员分配单独的服务器/端口?