⚠️ Traduction non officielle - Cette documentation est une traduction communautaire non officielle de Docker.

Comment fonctionnent les nœuds

Le mode Swarm vous permet de créer un cluster d'un ou plusieurs Docker Engines appelé un swarm. Un swarm consiste en un ou plusieurs nœuds : des machines physiques ou virtuelles exécutant Docker Engine.

Il y a deux types de nœuds : gestionnaires et travailleurs.

Cluster en mode Swarm

Si vous ne l'avez pas déjà fait, lisez la vue d'ensemble du mode Swarm et les concepts clés.

Nœuds gestionnaires

Les nœuds gestionnaires gèrent les tâches de gestion de cluster :

En utilisant une implémentation Raft, les gestionnaires maintiennent un état interne cohérent de l'ensemble du swarm et de tous les services qui s'exécutent dessus. À des fins de test, il est acceptable d'exécuter un swarm avec un seul gestionnaire. Si le gestionnaire dans un swarm à gestionnaire unique échoue, vos services continuent de s'exécuter, mais vous devez créer un nouveau cluster pour récupérer.

Pour tirer parti des fonctionnalités de tolérance aux pannes du mode Swarm, nous recommandons d'implémenter un nombre impair de nœuds selon les exigences de haute disponibilité de votre organisation. Lorsque vous avez plusieurs gestionnaires, vous pouvez récupérer de la défaillance d'un nœud gestionnaire sans temps d'arrêt.

  • Un swarm à trois gestionnaires tolère une perte maximale d'un gestionnaire.

  • Un swarm à cinq gestionnaires tolère une perte simultanée maximale de deux nœuds gestionnaires.

  • Un nombre impair N de nœuds gestionnaires dans le cluster tolère la perte d'au plus (N-1)/2 gestionnaires. Docker recommande un maximum de sept nœuds gestionnaires pour un swarm.

    Important

    Ajouter plus de gestionnaires ne signifie PAS une évolutivité accrue ou de meilleures performances. En général, c'est l'inverse qui est vrai.

Nœuds travailleurs

Les nœuds travailleurs sont également des instances de Docker Engine dont le seul but est d' exécuter des conteneurs. Les nœuds travailleurs ne participent pas à l'état distribué Raft, ne prennent pas de décisions de planification, et ne servent pas l'API HTTP du mode swarm.

Vous pouvez créer un swarm d'un nœud gestionnaire, mais vous ne pouvez pas avoir un nœud travailleur sans au moins un nœud gestionnaire. Par défaut, tous les gestionnaires sont également des travailleurs. Dans un cluster à nœud gestionnaire unique, vous pouvez exécuter des commandes comme docker service create et le planificateur place toutes les tâches sur le moteur local.

Pour empêcher le planificateur de placer des tâches sur un nœud gestionnaire dans un swarm multi-nœuds, définissez la disponibilité pour le nœud gestionnaire sur Drain. Le planificateur arrête gracieusement les tâches sur les nœuds en mode Drain et planifie les tâches sur un nœud Active. Le planificateur n'assigne pas de nouvelles tâches aux nœuds avec une disponibilité Drain.

Référez-vous à la référence de la ligne de commande docker node update pour voir comment changer la disponibilité d'un nœud.

Changer les rôles

Vous pouvez promouvoir un nœud travailleur pour qu'il soit un gestionnaire en exécutant docker node promote. Par exemple, vous pourriez vouloir promouvoir un nœud travailleur lorsque vous mettez un nœud gestionnaire hors ligne pour maintenance. Voir node promote.

Vous pouvez également rétrograder un nœud gestionnaire en nœud travailleur. Voir node demote.

En savoir plus

  • Lisez comment les services du mode Swarm fonctionnent.
  • Apprenez comment PKI fonctionne en mode Swarm.