如何为Kubernetes上的Dask集群添加Persistent Volume Claim配置
前置修正说明
首先你现有配置里存在几处语法错误,需要先修正否则部署会报错:
- PVC配置的
apiVersion应为v1,不是1 - PVC配置中
ressources是拼写错误,正确为resources - 访问模式
ReadWriteOne是错误值,正确为ReadWriteOnce - 你贴的第一份Dask配置顶部的
apiVersion: v1和kind: Pod是无效字段,这是Dask Helm Chart的自定义values配置,不需要这两行,可直接删除。
配置修改方案
要挂载PVC的话,需要在worker和jupyter配置块下分别添加extraVolumes(声明要使用的PVC)和extraVolumeMounts(指定容器内的挂载路径),如果你只需要某一端挂载就仅在对应块下添加即可。修改后的完整配置如下:
worker: replicas: 2 #number of workers resources: limits: cpu: 2 memory: 2G requests: cpu: 2 memory: 2G env: - name: EXTRA_PIP_PACKAGES value: s3fs --upgrade # 新增:worker端挂载PVC配置 extraVolumes: - name: dask-persistent-storage persistentVolumeClaim: claimName: dask-cluster-persistent-volume-claim extraVolumeMounts: - name: dask-persistent-storage mountPath: /data # 可自定义容器内的挂载路径 readOnly: false # 按需设置是否只读 # We want to keep the same packages on the workers and jupyter environments jupyter: enabled: true env: - name: EXTRA_PIP_PACKAGES value: s3fs --upgrade resources: limits: cpu: 1 memory: 2G requests: cpu: 1 memory: 2G # 新增:Jupyter端挂载PVC配置 extraVolumes: - name: dask-persistent-storage persistentVolumeClaim: claimName: dask-cluster-persistent-volume-claim extraVolumeMounts: - name: dask-persistent-storage mountPath: /data # 可和worker端路径保持一致,也可自定义 readOnly: false
注意事项
- 如果你使用的PVC访问模式为
ReadWriteOnce,该模式下PVC只能被同一个节点上的Pod挂载,若worker和Jupyter被调度到不同节点会出现挂载失败,需要多节点同时挂载请将PVC的访问模式改为你集群支持的ReadWriteMany。
内容的提问来源于stack exchange,提问作者Reda E.
相关产品推荐
相关产品推荐

