Нуб здесь. Я хочу установить Dask с рабочим пулом, который может увеличиваться и уменьшаться в зависимости от текущих требований. Я следовал инструкциям на нуле jupyterhub для установки на GKE, а затем прошел инструкции по установке для dask-kubernetes: https://kubernetes.dask.org/en/latest/.
У меня изначально возникли некоторые проблемы с разрешениями, поэтому я создал учетную запись службы со всеми разрешениями и изменил свой config.yaml для использования этой учетной записи службы. Это избавило от проблем с разрешениями, но теперь, когда я запускаю этот сценарий с заданной по умолчанию worker-spe c .yml, я не получаю рабочих:
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
Когда я перечисляю свои модули Я вижу много рабочих в состоянии ожидания:
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
...
И когда я описываю каждый модуль, я вижу, что недостаточно памяти, ошибка процессора:
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 или что-то? У меня сейчас только один пул, тот, который запускает jupyterlab, и этот пул уже полностью зафиксирован. Я не могу понять, какая часть конфигурации заставляет dask выяснить, в какой пул помещать рабочих.