Avant de commencer
-
La réalisation de ce guide nécessitera au moins deux Linodes situés dans le même centre de données. Les instructions de ce guide ont été écrites pour Ubuntu 16.04, mais d'autres distributions peuvent être utilisées; les Linodes n'ont pas besoin d'utiliser la même distribution.
-
Suivez notre guide Configuration et sécurisation d'une instance de calcul pour mettre à jour votre système. Vous pouvez également définir le fuseau horaire, configurer votre nom d'hôte, créer un compte utilisateur limité et renforcer l'accès SSH.
-
Installez Docker sur chaque Linode. Consultez notre guide Installation de Docker et déploiement d'une pile LAMP ou la documentation d'installation de Docker pour plus d'informations.
Remarque Les étapes de ce guide nécessitent des privilèges root. Assurez-vous d'exécuter les étapes ci-dessous en tant querootou avec lesudopréfixe. Pour plus d'informations sur les privilèges, consultez notre guide Utilisateurs et groupes.
Augmentez la puissance de Docker en créant un cluster d'hôtes Docker, appelé Docker Swarm. Vous avez besoin d'un Linode pour servir de Docker Swarm Manager et de quelques hôtes Docker pour rejoindre le Swarm en tant que nœuds.
Dans ce guide, vous allez configurer un Docker Swarm Manager et connecter des nœuds pour un déploiement de conteneur évolutif. Cela nécessite plusieurs Linodes avec Docker installé et exécuté dans le même centre de données. Ils n'ont pas besoin d'exécuter la même distribution.
Créer le Docker Swarm Manager
Le but du Docker Swarm Manager est de recevoir des commandes au nom du cluster et d'attribuer des conteneurs aux nœuds. Le Swarm Manager utilise l'algorithme Raft Consensus pour gérer les états Swarm. L'algorithme Raft Consensus garantit que tous les nœuds de gestion chargés de la gestion et de la planification des tâches dans un cluster stockent le même état cohérent. En cas de panne, un seul nœud assume les tâches et restaure l'état stable.
Dans ce guide, nous créons un seul Swarm Manager. Si votre objectif est la haute disponibilité, vous pouvez créer plusieurs gestionnaires.
-
Connectez-vous au Linode que vous avez choisi pour le gestionnaire Swarm et initialisez le gestionnaire. Remplacer
PUBLIC_IPdans cet exemple avec l'adresse IP publique de votre Linode :docker swarm init --advertise-addr PUBLIC_IPDocker répond avec la commande nécessaire pour que les nœuds rejoignent le Swarm :
-
Utiliser
docker infopour vérifier que votre Swarm est en cours d'exécution et actif :docker info
Joindre des nœuds au gestionnaire
À l'étape 1 de la section précédente, le docker swarm init la commande affiche des instructions sur la façon de rejoindre le gestionnaire.
docker swarm join --token TOKEN PUBLIC_IP:2377
Où TOKEN est la longue chaîne de caractères qui vous est présentée lorsque vous avez initialisé le Swarm, et PUBLIC_IP est l'adresse IP publique de votre Linode Swarm Manager. Si vous ne vous souvenez pas du jeton, exécutez join-token sur le manager pour visualiser les informations du swarm init commande :
docker swarm join-token worker
-
Pour joindre le nœud au Swarm, exécutez
docker swarm joindu nœud. ChangerTOKENau jeton de l'étape 1 de la section précédente, etPUIBLIC_IPà l'adresse IP publique du gestionnaire :docker swarm join --token TOKEN PUBLIC_IP:2377La sortie montre que le nœud a rejoint l'essaim en tant que travailleur. Vous avez maintenant un petit cluster Docker Swarm, avec un gestionnaire et un nœud :
-
Répétez l'étape 1 pour joindre autant de nœuds au Swarm que nécessaire.
-
Sur le gestionnaire, utilisez
docker node lspour afficher des informations sur le gestionnaire et une liste de tous les nœuds :docker node ls
Déployer un service avec Docker Swarm
Pour déployer un service avec Docker Swarm, utilisez le gestionnaire pour préparer un seul nœud, puis mettez à l'échelle la configuration correspondant à vos besoins. Dans cet exemple, vous allez installer NGINX sur un nœud, puis le mettre à l'échelle en un cluster (essaim) de trois nœuds.
-
Depuis le Swarm Manager, utilisez
service createpour déployer un service sur un nœud. Modifiernginxexampleà ce que vous voulez :docker service create -p 80:80 --name nginxexample nginx -
Adaptez le service NGINX à trois nœuds :
docker service scale nginxexample=3 -
Vérifiez que le service a été déployé avec
docker ps -adepuis n'importe quel nœud :docker ps -a -
Pour arrêter le
nginxexampleservice, utilisez leservice removecommande :docker service remove nginxexample
Plus d'informations
Vous pouvez consulter les ressources suivantes pour plus d'informations sur ce sujet. Bien que ceux-ci soient fournis dans l'espoir qu'ils seront utiles, veuillez noter que nous ne pouvons pas garantir l'exactitude ou l'actualité des documents hébergés en externe.
- Documents Docker
- Didacticiel d'essai de Docker
- Docker Hub