Мы используем gcloud kubernetes engine для разработки алгоритмов машинного обучения. Мы настраиваем кластер с одним pod для разработки кода, затем запускаем временный node-pool с 256 вытесняемыми minion-ами для тестирования алгоритма на нашем наборе данных. Разработчик подключается по ssh к pod разработки, редактирует код, затем запускает задание kuberenetes на пуле minion-ов.
Проблема в том, что когда мы создаем пул узлов minions, модули разработки в пуле по умолчанию часто (не всегда) убиваются и перезапускаются. Почему? Обычно запуск пула узлов minion занимает около 3-5 минут. Похоже, что gcloud должен обновить пул узлов по умолчанию, чтобы разместить пул узлов minions. Есть ли способ предварительно выделить кластер, чтобы избежать перезапуска или сократить время запуска minions?
Вот команды, которые я использую:
создайте начальный кластер:
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
Есть лучший способ сделать это?