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

Consensus Raft en mode swarm


Lorsque Docker Engine fonctionne en mode Swarm, les nœuds gestionnaires implémentent l' Algorithme de Consensus Raft pour gérer l'état global du cluster.

La raison pour laquelle le mode Swarm utilise un algorithme de consensus est de s'assurer que tous les nœuds gestionnaires qui sont en charge de gérer et planifier les tâches dans le cluster stockent le même état cohérent.

Avoir le même état cohérent à travers le cluster signifie qu'en cas de panne, n'importe quel nœud Gestionnaire peut reprendre les tâches et restaurer les services à un état stable. Par exemple, si le Gestionnaire Leader qui est responsable de la planification des tâches dans le cluster meurt de façon inattendue, n'importe quel autre Gestionnaire peut reprendre la tâche de planification et rééquilibrer les tâches pour correspondre à l'état désiré.

Les systèmes utilisant des algorithmes de consensus pour répliquer les logs dans des systèmes distribués nécessitent des soins particuliers. Ils assurent que l'état du cluster reste cohérent en présence de pannes en exigeant qu'une majorité de nœuds soient d'accord sur les valeurs.

Raft tolère jusqu'à (N-1)/2 pannes et nécessite une majorité ou quorum de (N/2)+1 membres pour être d'accord sur les valeurs proposées au cluster. Cela signifie que dans un cluster de 5 Gestionnaires exécutant Raft, si 3 nœuds sont indisponibles, le système ne peut plus traiter de demandes pour planifier des tâches supplémentaires. Les tâches existantes continuent à s'exécuter mais le planificateur ne peut pas rééquilibrer les tâches pour faire face aux pannes si l'ensemble des gestionnaires n'est pas sain.

L'implémentation de l'algorithme de consensus en mode Swarm signifie qu'il présente les propriétés inhérentes aux systèmes distribués :