GKE 上的 dask-kubernetes 零工人
dask-kubernetes zero workers on GKE
这里是菜鸟。我想安装一个带有工作池的 Dask,它可以根据当前需求增长和收缩。我按照零中的说明将 jupyterhub 安装在 GKE 上,然后完成了 dask-kubernetes 的安装说明:https://kubernetes.dask.org/en/latest/。
我最初 运行 遇到了一些权限问题,所以我创建了一个具有所有权限的服务帐户并将我的 config.yaml 更改为使用该服务帐户。这解决了权限问题,但是现在当我 运行 这个脚本,使用默认的 worker-spec.yml,我没有得到任何 worker:
cluster = KubeCluster.from_yaml('worker-spec.yml')
cluster.scale_up(4) # specify number of nodes explicitly
client = distributed.Client(cluster)
client
Cluster
Workers: 0
Cores: 0
Memory: 0 B
当我列出我的 pods 时,我看到很多工作人员处于待处理状态:
patrick_mineault@cloudshell:~ (neuron-264716)$ kubectl get pod --namespace jhub
NAME READY STATUS RESTARTS AGE
dask-jovyan-24034fcc-22qw7w 0/1 Pending 0 45m
dask-jovyan-24034fcc-25h89q 0/1 Pending 0 45m
dask-jovyan-24034fcc-2bpt25 0/1 Pending 0 45m
dask-jovyan-24034fcc-2dthg6 0/1 Pending 0 45m
dask-jovyan-25b11132-52rn6k 0/1 Pending 0 26m
...
当我描述每个 pod 时,我发现内存不足,cpu 错误:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 69s (x22 over 30m) default-scheduler 0/1 nodes are available: 1 Insufficient cpu, 1 Insufficient memory.
我需要在 GKE 中手动创建一个新的自动缩放池吗?我现在只有一个池,运行s jupyterlab,那个池已经完全投入使用。我无法弄清楚是什么配置导致 dask 弄清楚将工人放在哪个池中。
我确实需要创建一个灵活、可扩展的工作池来托管工作人员 - Pangeo 设置指南中有一个这样的示例:https://github.com/pangeo-data/pangeo/blob/master/gce/setup-guide/1_create_cluster.sh。这是相关行:
gcloud container node-pools create worker-pool --zone=$ZONE --cluster=$CLUSTER_NAME \
--machine-type=$WORKER_MACHINE_TYPE --preemptible --num-nodes=$MIN_WORKER_NODES
这里是菜鸟。我想安装一个带有工作池的 Dask,它可以根据当前需求增长和收缩。我按照零中的说明将 jupyterhub 安装在 GKE 上,然后完成了 dask-kubernetes 的安装说明:https://kubernetes.dask.org/en/latest/。
我最初 运行 遇到了一些权限问题,所以我创建了一个具有所有权限的服务帐户并将我的 config.yaml 更改为使用该服务帐户。这解决了权限问题,但是现在当我 运行 这个脚本,使用默认的 worker-spec.yml,我没有得到任何 worker:
cluster = KubeCluster.from_yaml('worker-spec.yml')
cluster.scale_up(4) # specify number of nodes explicitly
client = distributed.Client(cluster)
client
Cluster
Workers: 0
Cores: 0
Memory: 0 B
当我列出我的 pods 时,我看到很多工作人员处于待处理状态:
patrick_mineault@cloudshell:~ (neuron-264716)$ kubectl get pod --namespace jhub
NAME READY STATUS RESTARTS AGE
dask-jovyan-24034fcc-22qw7w 0/1 Pending 0 45m
dask-jovyan-24034fcc-25h89q 0/1 Pending 0 45m
dask-jovyan-24034fcc-2bpt25 0/1 Pending 0 45m
dask-jovyan-24034fcc-2dthg6 0/1 Pending 0 45m
dask-jovyan-25b11132-52rn6k 0/1 Pending 0 26m
...
当我描述每个 pod 时,我发现内存不足,cpu 错误:
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedScheduling 69s (x22 over 30m) default-scheduler 0/1 nodes are available: 1 Insufficient cpu, 1 Insufficient memory.
我需要在 GKE 中手动创建一个新的自动缩放池吗?我现在只有一个池,运行s jupyterlab,那个池已经完全投入使用。我无法弄清楚是什么配置导致 dask 弄清楚将工人放在哪个池中。
我确实需要创建一个灵活、可扩展的工作池来托管工作人员 - Pangeo 设置指南中有一个这样的示例:https://github.com/pangeo-data/pangeo/blob/master/gce/setup-guide/1_create_cluster.sh。这是相关行:
gcloud container node-pools create worker-pool --zone=$ZONE --cluster=$CLUSTER_NAME \
--machine-type=$WORKER_MACHINE_TYPE --preemptible --num-nodes=$MIN_WORKER_NODES