kubernetes - 为什么 Dask 客户端说我的集群具有比实际可用总数更多的内核和内存?
问题描述
在使用 Dask 时,我试图了解 Kubernetes pod 与集群节点的核心和内存之间的关系。
我目前的设置如下:
- 使用 GCP 的 Kubernetes Engine 的 Kubernetes 集群
- Helm 包管理器在集群上安装 Dask
每个节点有 8 个内核和 30 GB 内存。我的集群中有 5 个节点:
然后我通过执行将 pod 的数量扩展到 50
kubectl scale --replicas 50 deployment/nuanced-armadillo-dask-worker
当我使用 Dask 初始化客户端时,dask.distributed
我看到以下内容
令我困惑的是,客户说我的集群中有 400 个内核和 1.58 tb 的内存(见屏幕截图)。我怀疑默认情况下每个 pod 都被分配了 8 个内核和 30 GB 内存,但是考虑到每个节点的实际内核和内存数量的限制,这怎么可能呢?
解决方案
如果您不指定内核或内存的数量,那么每个 Dask 工作人员都会尝试占用它正在运行的整台机器。
对于 helm 包,您可以通过将资源限制添加到工作程序 pod 规范来指定每个工作程序的核心数量和内存量。这些在图表的配置选项中列出。
推荐阅读
- asp.net - 如何通过在母版页上设置公共属性将标签的值从母版页获取到另一个页面
- swift - 播放器放大或缩小时如何缩放视图?
- python - 从 gitPython 返回的 FetchInfo 对象的区别是当有东西要获取/拉取时与没有时?
- python - 该问题要求根据字典检查列表并在列表中未出现在字典中的项目之前添加 *
- ruby-on-rails - 使用 render_async 在 Rails 中渲染新消息
- neovim - 如何强制 neovim 帮助文件为英文而不是中文?
- java - android studio AsyncTask 没有意图和 context.finish 崩溃
- jestjs - Salesforce LWC Jest 测试对 Apex 代码覆盖率的影响
- sql - 雅典娜 sql 查询以查找不包含值的项目
- javascript - 节点和护照身份验证,从客户端到服务器的挂起请求