2 votes

Comment distribuer des conteneurs esclaves Jenkins dans Docker Swarm ?

J'aimerais que mon maître Jenkins (non conteneurisé) puisse créer des esclaves dans un conteneur. J'ai donc installé le plugin docker dans Jenkins, créé un serveur docker, configuré et Jenkins fait effectivement tourner un conteneur esclave après la création du travail. enter image description here

Cependant, après avoir créé un autre serveur Docker et créé un essaim à partir de deux d'entre eux, j'ai essayé d'exécuter à nouveau des tâches Jenkins et j'ai continué à déployer des conteneurs uniquement sur le serveur d'origine (qui est maintenant aussi un gestionnaire). Je m'attendais à ce que l'essaim équilibre la charge et distribue les conteneurs nouvellement créés de manière égale dans l'essaim. Qu'est-ce que j'ai manqué ?

Dois-je utiliser un service peut-être ?

1voto

Dockstar Points 446

Les images Docker en elles-mêmes ne sont pas équilibrées en termes de charge, même si elles sont déployées dans un essaim. Ce que vous recherchez serait en effet une définition de service. Faites simplement attention à l'allocation des ports. Si vous déployez vos esclaves Jenkins pour écouter sur le port 80, etc, tous les hôtes de l'essaim écoutera sur le port 80 et maillera la route vers les conteneurs.

En gros, cela signifie que vous ne pouviez rien déployer d'autre sur le port 80 de ces hôtes. Une fois que c'est fait, cependant, toutes les requêtes adressées aux hôtes seront réparties sur les conteneurs.

L'autre point positif est que vous pouvez changer dynamiquement le nombre de répliques avec le service update.

docker service update JenkinsService --replicas 42

Même si 42 est un chiffre extrême, vous pouvez évidemment le modifier :)

0voto

user3081519 Points 932

À ce moment-là, je n'ai rien pu trouver dans l'essaim qui m'aurait aidé à manipuler la distribution des conteneurs sur les nœuds de l'essaim.

J'ai fini par utiliser un kubernetes plus flexible à cette fin. Je pense que Marathon est également capable de le faire.

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