python - 连接到现有的Kubernetes Dask集群

标签 python kubernetes dask kubernetes-helm dask-kubernetes

使用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')

但是,如何连接到现有集群?

最佳答案

Dask Helm Chart和dask-kubernetes是两个单独的项目,它们以不同的方式工作。它们不兼容。

如果您使用的Jupyter Notebook是作为Helm Chart的一部分创建的,那么一切都已经为您配置好了,您可以使用默认选项创建一个Dask客户端。

from distributed import Client
client = Client()

如果要使用其他Python环境,例如本地计算机上的环境,则必须指定调度程序的远程地址。这将取决于您如何配置Helm Chart。

例如,如果您通过负载平衡器公开了调度程序,则需要将客户端指向它。

from distributed import Client
client = Client('tcp://<load balancer ip>:8786')

如果您获得Helm Chart部署的状态,它将在打印的注释中显示有关如何连接到调度程序的信息。

helm status <depoyment name>

关于python - 连接到现有的Kubernetes Dask集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60674723/

相关文章:

ssl - 我应该在 Google Cloud 上为 Kubernetes 使用 Ingress 还是 LoadBalancer(带有自定义域和 SSL 证书)?

kubernetes - 在 Kubernetes 中路由内部流量?

dask-distributed:如何取消使用 fire_and_forget 提交的任务?

python-2.7 - 将 HDF 文件加载到 Python Dask DataFrame 列表中

python - Groupby 并移动一个 dask 数据框

Python OSError 设备上没有剩余空间

python - 如何在python中创建使用相同值初始化的特定类型的指定维度数组?

Kubernetes PodAffinity 无法部署 pod

Python:如何创建一个包含图像中每个像素信息的数组?

python - OpenCV 中的 PIL ImageChops.screen