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 queroot
ou avec lesudo
pré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_IP
dans cet exemple avec l'adresse IP publique de votre Linode :docker swarm init --advertise-addr PUBLIC_IP
Docker répond avec la commande nécessaire pour que les nœuds rejoignent le Swarm :
-
Utiliser
docker info
pour 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 join
du nœud. ChangerTOKEN
au 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:2377
La 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 ls
pour 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 create
pour 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 -a
depuis n'importe quel nœud :docker ps -a
-
Pour arrêter le
nginxexample
service, utilisez leservice remove
commande :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