Azure Kubernetes 中的 Dask 自适应部署

问题描述 投票:0回答:1

我正在尝试部署一个包含 0 个工作人员和 1 个调度程序的 dask 集群,根据工作负载需要将工作人员扩展到所需的数量,我发现自适应部署是正确的方法,我正在使用基于 helm 的部署,但是我找不到任何有关通过 helm 进行 dask 自适应部署部署的正确文档,或者是否有任何其他功能可以满足我的要求

azure kubernetes kubernetes-helm dask dask-distributed
1个回答
0
投票

为了使用 Helm 在 AKS 上部署具有自适应扩展功能的 Dask 集群,以根据工作负载动态扩展工作线程。

安装dask

helm repo add dask https://helm.dask.org/
helm repo update
helm install dask-cluster dask/dask

enter image description here

通过修改 Helm 图表使用的

values.yaml
文件来启用自适应缩放。

scheduler:
  replicas: 1
  env:
    - name: DASK_SCHEDULER__ADAPTIVE__ENABLED
      value: "true"  # Enable adaptive scaling
    - name: DASK_SCHEDULER__ADAPTIVE__INTERVAL
      value: "1s"  # Check scaling every second

worker:
  replicas: 0  
  autoScaler:
    enabled: true
    minReplicas: 0  
    maxReplicas: 10  
  resources:
    limits:
      cpu: "1"
      memory: "2Gi"
    requests:
      cpu: "0.5"
      memory: "1Gi"

cluster:
  adaptive:
    enabled: true
    minimum: 0  
    maximum: 10  
helm upgrade --install dask-cluster dask/dask -f values.yaml

enter image description here

验证部署并访问 dask 仪表板

kubectl get pods
kubectl port-forward svc/dask-cluster-scheduler 8787:80

enter image description here

enter image description here

连接到 Dask 调度程序并提交工作负载和测试

from dask.distributed import Client
import dask.array as da


client = Client("tcp://localhost:8786")

# Submit a workload
x = da.random.random((10000, 10000), chunks=(1000, 1000))
result = (x ** 2).sum().compute()
print("Result:", result)

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.