dask - 我应该如何从外部服务连接到部署在 Kubernetes 中的 Dask 网关?

标签 dask kubernetes-helm dask-distributed dask-kubernetes

我对如何准确地连接到通过 Dask-helm 图表从外部服务创建的已部署 Dask 集群感到有点困惑。我按照说明部署了 Dask 集群 here

成功部署后,它会向我显示我的 Pod 和服务,如下所示:

hub-574f85779c-sk7ct                                 1/1     Running   0          60m
jupyter-dask                                         1/1     Running   0          32m
proxy-68bcf94bd5-22kj5                               1/1     Running   0          60m
traefik-dhub-dask-gateway-6468d9cbff-9bclk           1/1     Running   0          60m
user-scheduler-c787cdb9f-924r2                       1/1     Running   0          60m
user-scheduler-c787cdb9f-l4jwv                       1/1     Running   0          60m

但请注意,我的服务将我的 traefic 显示为 ClusterIP,没有与之关联的公共(public) IP。

proxy-public                            LoadBalancer   10.3.245.29    104.zzz.yyy.xxx   80:30447/TCP                 66m
traefik-dhub-dask-gateway               ClusterIP      10.3.241.129   <none>            80/TCP                       66m

我能够使用类似于下面的代码连接到作为 Helm Chart 的一部分创建的提供的 Jupyter Notebook,并毫无问题地使用我的集群。

from dask_gateway import GatewayCluster
cluster = GatewayCluster()
client = cluster.get_client()
cluster.scale(2)
# then I can use this client to submit to the cluster
f = client.submit(inc, 7.2)

现在我想从 k8s 集群外部运行的另一个应用程序进行连接。基于此documentation我应该将 addressauth 传递到 Gateway,我一直在尝试以下操作:

import os
os.environ["JUPYTERHUB_API_TOKEN"] = "f206000844a60da8b48e40f6c91c3f2axxxxxxxxx"
from dask_gateway import Gateway
gateway = Gateway(
     "http://104.zzz.yyy.xxx/services/dask-gateway", 
    auth="jupyterhub"
)
gateway.list_clusters()

但总是返回 401,从外部连接到该集群的正确方法是什么?

此外,这些服务完全向公共(public)互联网开放。保护这些安全的最佳实践是什么? (请不要告诉我使用 Kerberos :( )

ClientResponseError: 401, message='Unauthorized', url=URL('http://104.zzz.yyy.xxx/services/dask-gateway/api/v1/clusters/')

最佳答案

我在 dask-gateway GitHub 上发布了同样的问题作为问题,并得到了以下响应来解决我的问题

https://github.com/dask/dask-gateway/issues/356#issuecomment-737504145

总而言之,使用this安装过程。

关于dask - 我应该如何从外部服务连接到部署在 Kubernetes 中的 Dask 网关?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65098875/

相关文章:

dask - 如何查找 Dask 分布式函数调用的并发.future 输入参数

python-3.x - 首先通过 ID 聚合 Dask 数据,然后在几分钟内聚合 Dask 数据时杀死了工作人员

dask - 触发 Dask worker 释放内存

kubernetes-helm - 如何在三元语句中连接变量?

group-by - dask dataframe groupby 导致一个分区内存问题

python - 向 Dask 分布式集群提交任务时本地 python 文件导入问题

scikit-learn - 可以 Dask -ify 增量 PCA 或随机梯度下降或其他 scikit 学习部分拟合算法

python - 如何更新具有 nan 维度的 dask 数组的形状、 block 和 block 大小元数据

kubernetes - 在Minikube服务器(1.6.2)上安装helm 2.13.0找不到tiller

templates - Golang 模板 (helm) 遍历 map 列表