GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment créer un Docker Swarm Manager et des nœuds sur Linode

Avant de commencer

  1. 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.

  2. 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.

  3. 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 que root ou avec le sudo 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.

  1. 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 :

  2. 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

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
  1. Pour joindre le nœud au Swarm, exécutez docker swarm join du nœud. Changer TOKEN au jeton de l'étape 1 de la section précédente, et PUIBLIC_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 :

  2. Répétez l'étape 1 pour joindre autant de nœuds au Swarm que nécessaire.

  3. 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.

  1. Depuis le Swarm Manager, utilisez service create pour déployer un service sur un nœud. Modifier nginxexample à ce que vous voulez :

    docker service create -p 80:80 --name nginxexample nginx
    
  2. Adaptez le service NGINX à trois nœuds :

    docker service scale nginxexample=3
    
  3. Vérifiez que le service a été déployé avec docker ps -a depuis n'importe quel nœud :

    docker ps -a
    
  4. Pour arrêter le nginxexample service, utilisez le service 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

Docker
  1. Comment exporter et importer des conteneurs Docker

  2. Comment déployer un conteneur nginx avec Docker sur Linode

  3. Comment et pourquoi utiliser un hôte Docker distant

  4. Comment installer et utiliser Docker Compose sur CentOS

  5. Comment créer une image Docker à partir d'un conteneur et d'un Dockerfile

Comment installer Docker et Docker Compose sous Linux

Comment nettoyer et supprimer des images Docker

Comment créer une image Docker à partir d'un conteneur en cours d'exécution

Comment créer un registre Docker privé sur Ubuntu Linux

Comment créer un conteneur d'application Django Docker

Comment déployer et gérer un conteneur Docker MongoDB