使用Helm,我创建了一个Dask群集。
NAME READY STATUS RESTARTS AGE
dask01-jupyter-aaa-aaaa 1/1 Running 0 3d19h
dask01-scheduler-bbb-bbbb 1/1 Running 0 3d19h
dask01-worker-ccc-cccc 1/1 Running 0 3d19h
dask01-worker-ddd-dddd 1/1 Running 0 3d19h
dask01-worker-eee-eeee 1/1 Running 0 3d19h
我可以运行基本的Dask工作负载。
import dask.array as da
array = da.ones((1000, 1000, 1000), chunks=(100, 100, 10))
现在,我想以某种方式将其连接到客户端:
from dask import distributed
cluster = None # TODO: configure KubeCluster somehow https://kubernetes.dask.org/en/latest/
client = distributed.Client(cluster)
如果我想launch a cluster,此方法有效:
from dask_kubernetes import KubeCluster
cluster = KubeCluster.from_yaml('worker-spec.yml')
但是如何连接到现有群集?
The Dask Helm Chart和dask-kubernetes
是两个单独的项目,它们以不同的方式工作。它们不兼容。
如果已经安装了Dask Helm软件包,则可以使用kubectl
检索TCP连接地址以传递给Client
。例如,如果选择在dask-abc
中使用Helm发行版名称helm install
-请参阅here-设置集群时,可以遵循Dask Helm and Kubernetes docs并将kubectl get services
与jsonpath
一起使用过滤此命令的输出并仅检索Dask调度程序服务的IP地址(将其命名为jsonpath
)。