Estamos usando o mecanismo gcloud kubernetes para desenvolvimento de algoritmos de aprendizado de máquina. Configuramos um cluster com um pod para desenvolvimento de código e, em seguida, iniciamos um pool de nós temporário com 256 minions preemptivos para testar o algoritmo em nosso conjunto de dados. Um desenvolvedor entra no pod de desenvolvimento, edita o código e, em seguida, executa um trabalho kuberenetes no pool de minions.
O problema é que, quando criamos o pool de nós minions, os pods de desenvolvimento no pool padrão muitas vezes (nem sempre) são eliminados e reiniciados. Por que? Geralmente leva cerca de 3 a 5 minutos para o pool de nós minion começar. Parece que o gcloud precisa atualizar o pool de nós padrão para acomodar o pool de nós dos minions. Existe uma maneira de pré-alocar o cluster para evitar a reinicialização ou reduzir o tempo de inicialização dos minions?
Aqui estão os comandos que estou usando:
crie o cluster inicial:
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
criar script de cluster:https://gist.github.com/4590040f27f3cf17562baae5ae245b60
crie os minions
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
criar script de minions:https://gist.github.com/1391658975d3a28444ac823233c334da
Existe uma maneira melhor de fazer isso?