我一直在尝试dask.distributed
使用kubernetes
. 设置kube
集群本身非常简单,我目前正在努力解决的问题是我无法让本地调度程序连接到工作人员。Worker 可以连接到调度程序,但它们会在网络内部通告一个地址,而在kube
网络外部运行的调度程序无法访问该地址kube
。
按照dask-kubernetes
文档中的示例,我得到了一个kube
在 AWS 上运行的集群,并且(在单独的 AWS 机器上)notebook
使用本地dask.distributed
调度程序启动了一个。调度程序在集群上启动了许多工作人员kube
,但它无法连接到这些工作人员,因为工作人员位于不同的网络上:内部kube
网络。
网络设置如下所示:
- 在 192.168.0.0/24 上运行的笔记本服务器
kube
集群 EC2 实例也在 192.168.0.0/24kube
100.64.0.0/16 上的豆荚
dask
调度程序运行192.168.0.0/24
但dask
工作人员正在运行-100.64.0.0/16
我如何连接两者?我是否也应该在kube
pod 中运行调度程序、编辑路由表、尝试找出主机在工作人员上的 IP 地址?
工作人员能够连接到调度程序,但在调度程序中我得到了一个错误的形式
Distributed.scheduler - 错误 - 无法连接到工作人员 'tcp://100.96.2.4:40992':在 3.0 秒后尝试连接到 'tcp://100.96.2.4:40992' 时超时:connect() 没有及时完成
我不是在寻找我可以做的事情的列表,而是在寻找推荐的设置方式,特别是与dask.distributed
.
我kube
使用kops
.