43 votes

Comment configurer la mise à l'échelle automatique sur l'essaim de docker?

Je voudrais savoir comment configurer cet outil pour commencer avec un nombre minimum de nœuds et atteindre un nombre maximal de nœuds lorsque cela est nécessaire.

Dois-je utiliser un autre outil ou docker swarm peut-il résoudre ce problème pour moi?

46voto

abronan Points 520

Réponse courte: Il n'y a pas de moyen facile de le faire avec Docker Essaim pour l'instant.

Docker Essaim (ou Essaim mode) ne prend pas en charge l'auto-scaling des machines hors de la boîte. Vous auriez besoin d'utiliser une autre solution pour que, comme docker-machine pour créer des machines (avec menu fixe) sur votre infrastructure et de les relier à l'existant Essaim de cluster (avec docker swarm join).

Cela impliquera beaucoup de scripts, mais l'idée est de surveiller le cluster pour les CPU / Mémoire d'utilisation du Réseau (avec top ou monit) et une fois qu'il va au-delà d'un seuil (disons 70% du total des ressources de cluster), de déclencher un script appelant docker-machine à l'échelle du cluster. En utilisant la même idée, vous pouvez également mettre à l'échelle par le drainage et suppression de nœuds (de préférence Agent nœuds) à partir de l'existant essaim cluster une fois que vous êtes en dessous de la limite inférieure.

Vous devez vous assurer que vous êtes suivi pour la poursuite de l'utilisation des ressources si vous souhaitez utiliser ce critère ou vous aurez votre Infrastructure de frai et de détruire les nœuds de l'fréquents et brusques changements dans l'utilisation des ressources.

Vous pouvez définir une limite inférieure et une limite supérieure pour les machines du cluster afin de garder les choses sous contrôle.

Notez que l'Essaim nécessite au moins 3 Manager des nœuds (recommandé 5) pour maintenir le quorum pour la distribution d'un Consensus algorithme. Donc le minimum recommandé limite inférieure est de 5 nœuds (que vous pouvez étendre avec Agent des nœuds comme les ressources sont progressivement utilisés par les services).

Dans une certaine mesure, vous pouvez également jeter un oeil à Docker InfraKit ou transformer le terrain pour l'automatisation des Infrastructures et de surveillance de la Santé.

Mise à jour: Il y a maintenant un prometteur de la croix-plate-forme autoscaler qui prend en charge Essaim Mode tâche de l'auto-scaling: Orbiter. Bien que toujours rien de dehors-de-le-boîte encore pour le service/machine de mise à l'échelle automatique.

3voto

user2658308 Points 403

La mise à l'échelle est assez facile. Vous pouvez simplement continuer à planifier des conteneurs en cas de besoin. Ensuite, vous créez simplement un script qui recherche le conteneur en attente et met à l'échelle le cluster. Par exemple, si vous utilisez le modèle CloudFormation officiel sur aws for swarm, vous pouvez simplement modifier le nombre souhaité sur le groupe de mise à l'échelle automatique. Un exemple de script d'itération pourrait ressembler à ceci:

 services=$(docker service ls --format '{{.ID}}')
for service in $services; do
  tasks=$(docker service ps $service --format '{{.ID}}')
  for task in $tasks; do
    if docker inspect $task --format '{{.Status}}' | grep 'insufficient resources' 1>/dev/null; then
      scale-up-cmd
    fi
  done
done
 

0voto

utrecht Points 456

Conformément à cette question sur GitHub, mise à l'échelle automatique n'est pas supporté pour le moment. L'un des participants à la discussion ont indiqué que:

Pas disponible aujourd'hui. Essaim utilise Docker-Composer à l'échelle de manière statique. CPU/QPS un suivi est nécessaire pour faire de mise à l'échelle automatique. Essaim n'a pas que encore.

Une question a été posée si il y a un courant de billets qui pourraient être liés à cette question si cette fonctionnalité pourrait être mis en œuvre.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X