Мы используем движок gcloud kubernetes для разработки алгоритмов машинного обучения. Мы настраиваем кластер с одним модулем для разработки кода, затем запускаем временный пул узлов с 256 вытесняемыми миньонами для тестирования алгоритма на нашем наборе данных. Разработчик ssh'es в модуль разработки, редактирует код, затем запускает задание kuberenetes в пуле миньонов.
Проблема в том, что когда мы создаем пул узлов миньонов, модули разработки в пуле по умолчанию часто (не всегда) уничтожаются и перезапускаются. Зачем? Обычно пул узлов миньонов запускается примерно за 3-5 минут. Похоже, что gcloud должен обновить пул узлов по умолчанию, чтобы разместить пул узлов миньонов. Есть ли способ предварительно выделить кластер, чтобы избежать перезапуска, или уменьшить время запуска миньонов?
Вот какие команды я использую:
создать начальный кластер:
gcloud beta container clusters create $CLUSTER_NAME \
--machine-type=n1-highmem-4 \
--min-cpu-platform="Intel Sandy Bridge" \
--num-nodes=1 \
--enable-autoscaling \
--min-nodes=1 \
--max-nodes=4 \
--disk-size=50 \
--node-labels=algoalpha=control \
--scopes=cloud-platform,cloud-source-repos-ro
создать сценарий кластера: https://gist.github.com/4590040f27f3cf17562baae5ae245b60
создать миньонов
gcloud beta container node-pools create algoalpha-minions \
--cluster $CLUSTER_NAME \
--enable-autoscaling \
--num-nodes=$NUM_NODES \
--min-nodes=0 \
--max-nodes=$((NUM_NODES * 2)) \
--preemptible \
--machine-type=n1-highmem-16 \
--disk-size=20 \
--min-cpu-platform="Intel Sandy Bridge" \
--node-labels=algoalpha=minion \
--node-taints=cloud.google.com/gke-preemptible="true":NoSchedule
создать скрипт миньонов: https://gist.github.com/1391658975d3a28444ac823233c334da
Есть лучший способ сделать это?