首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dask网关-由于PermissionError而死亡的Dask工人

Dask网关-由于PermissionError而死亡的Dask工人
EN

Stack Overflow用户
提问于 2020-11-10 04:57:33
回答 1查看 288关注 0票数 0

我正试图在引擎上部署deploy。部署没有问题。但是,当我使用自定义的dask-网关dockerfile时,我遇到了一些问题,该文件继承自默认的docker映像,然后将容器提交给(GCR)。它似乎导致了下面的PermissionError。

代码语言:javascript
复制
PermissionError: [Errno 13] Permission denied: '/home/dask/dask-worker-space

(完整的堆栈跟踪见下面的屏幕截图)

有趣的是,黑暗的工人启动时,没有任何问题时,达克工人直接使用码头形象,从码头枢纽,而不是GCR。我需要使用一个定制的dockerfile来向黑暗工作者添加更多的python包,但除此之外,没有其他配置更改。就好像把码头容器发送到GCR会对权限做一些奇怪的事情。

下面是错误的完整堆栈跟踪:

下面是我为dask工人使用的dockerfile:

代码语言:javascript
复制
FROM daskgateway/dask-gateway:0.9.0

RUN pip --no-cache-dir install --upgrade cloudpickle dask-ml scikit-learn \
nltk gensim spacy keras asyncio google-cloud-storage SQLAlchemy snowflake-sqlalchemy google-api-core gcsfs pyarrow mlflow \
tensorflow prefect hvac aiofile google-cloud-logging

任何帮助都会非常感谢,因为我不知道如何调试。

EN

回答 1

Stack Overflow用户

发布于 2020-11-26 14:43:30

在使用GKE群集时,请确保为群集设置的服务帐户在容器注册表上具有正确的权限。

您正在创建一个映像,并将其提交到Container,因此您需要编写器的权限。如果使用默认服务帐户或自定义服务帐户,则进程不同。

  1. 如果使用默认服务帐户,则至少需要存储读取器和写入器作用域来执行此操作。(默认情况下,只在读取器范围内创建GKE集群)。
  • 如果有正在运行的群集,则需要更改每个节点池上的作用域。 gcloud容器节点-池创建新的池名\--集群集群名称\--机器类型--您所需的计算机类型\-num-节点数量与您拥有\-作用域你的新的范围的节点数量相同 完成此操作后,您将需要释放节点kubectl drain [node],并删除旧节点池。 gcloud容器节点-池删除POOL_NAME \-群集CLUSTER_NAME
  • 如果没有集群,则可以在创建时编辑控制台上的作用域,或者,如果要使用gcloud创建它,则可以使用所需的作用域(全表)。
  1. 如果您使用的是自定义服务帐户,请确保它的角色"roles/storage.admin“已被授予。(来源)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64763125

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档