Créer un essaim Docker sur Alpine Linux 3.9.0

introduction

Ce guide vous montrera comment créer et configurer un essaim Docker à l'aide de plusieurs serveurs Alpine Linux 3.9.0 et Portainer. Veuillez noter que Vultr propose une application Docker en un clic qui prend actuellement en charge CentOS 7 x64 et Ubuntu 16.04 x64.

Conditions préalables

Pour commencer, vous aurez besoin d'au moins deux serveurs VC2 exécutant Alpine Linux 3.9.0. Au sein de votre essaim Docker, l'un de ces serveurs fera office d' manager nodeinterface avec les réseaux externes et déléguera les tâches aux nœuds de travail. L'autre serveur agira alors comme worker node- des tâches d'exécution qui lui seront déléguées par le nœud gestionnaire.

Notez que vous pouvez lancer plus de deux serveurs si votre application nécessite une redondance et / ou plus de puissance de calcul, et les étapes fournies dans ce guide s'appliqueront toujours.

Déploiement

Visitez l' interface de déploiement du serveur Vultr .

Assurez-vous que l' Vultr Cloud (VC2)onglet est sélectionné en haut de la page.

Vous pouvez sélectionner n'importe quel emplacement dans la Server Locationsection, mais tous les serveurs doivent être au même emplacement , sinon il ne sera pas possible de leur déployer un essaim Docker.

Sélectionnez l' ISO Libraryonglet de la Server Typesection et choisissez l' Alpine Linux 3.9.0 x86_64image.

Sélectionnez une option appropriée dans la Server Sizesection. Ce guide utilisera la taille du serveur SSD de 25 Go, mais cela peut être insuffisant pour répondre aux besoins en ressources de votre application. Bien que Vultr facilite la mise à niveau de la taille d'un serveur une fois qu'il a déjà été lancé, vous devez toujours examiner attentivement la taille de serveur dont votre application a besoin pour fonctionner de manière optimale.

Dans la Additional Featuressection, vous devez sélectionner l' Enable Private Networkingoption. Bien que les autres options ne soient pas nécessaires pour suivre ce guide, vous devez déterminer si chacune a un sens dans le contexte de votre application.

Si vous avez déjà activé l' Multiple Private Networksoption sur votre compte, vous devrez alors sélectionner un réseau existant ou créer un nouveau réseau privé pour vos serveurs. Si vous ne l'avez pas activé, vous pouvez ignorer cette section. Pour plus d'informations sur la configuration manuelle des réseaux privés, consultez ce guide .

Ignorez la Firewall Groupsection pour l'instant. Seul le serveur agissant en tant que nœud de gestionnaire dans l'essaim Docker aura besoin de ports exposés, et cela devrait être configuré après le déploiement du serveur.

Tout en bas de la page, vous devez saisir Server Qtyau moins deux. Comme mentionné précédemment, vous pouvez avoir besoin de plus de deux serveurs, mais deux suffisent pour suivre ce guide.

Enfin, dans la Server Hostname & Labelsection, entrez des noms d'hôtes et des libellés significatifs et mémorables pour chaque serveur. Aux fins de ce guide, le nom d' hôte et l' étiquette du premier serveur sera docker-manageret Docker Manager, respectivement- et docker-workeret Docker Workerpour la seconde, respectivement.

Après avoir revérifié toutes vos configurations, vous pouvez ensuite cliquer sur le Deploy Nowbouton en bas de la page pour lancer vos serveurs.

Installer Alpine Linux 3.9.0 sur les serveurs

Parce que vous avez choisi un système d'exploitation dans la bibliothèque ISO de Vultr, vous devrez installer et configurer manuellement Alpine Linux 3.9.0 sur chaque serveur.

Après avoir donné à Vultr une minute ou deux pour allouer vos serveurs, cliquez sur l' more optionsicône à trois points du Docker Managerserveur sur l' interface de gestion du serveur , puis choisissez l' View Consoleoption.

Vous devez être redirigé vers une console avec une invite de connexion. Sinon, veuillez attendre une minute pour que Vultr termine le déploiement de vos serveurs.

À cette invite de connexion, entrez rootcomme nom d'utilisateur. La version live d'Alpine Linux 3.9.0 (qui est ce que vos serveurs exécutent actuellement) ne nécessite pas que le superutilisateur saisisse un mot de passe lors de la connexion.

Une fois que vous vous êtes connecté avec succès au compte root, vous verrez un message de bienvenue suivi d'une invite de shell qui ressemble à ceci:

localhost:~# 

Pour démarrer le programme d'installation d'Alpine Linux, entrez la commande suivante:

# setup-alpine

Tout d'abord, choisissez une disposition de clavier appropriée. Ce guide utilisera la usdisposition et la variante.

Lors de la définition du nom d'hôte, choisissez le même nom d'hôte que vous avez défini pour ce serveur lors du déploiement. Si vous suivez exactement ce guide, le nom d'hôte devrait être docker-manager.

Deux interfaces réseau doivent être disponibles: eth0et eth1. Si vous voyez seulement eth0, cela signifie que vous n'avez pas configuré correctement le réseau privé de vos serveurs. Initialiser à l' eth0aide dhcpet initialiser eth1à l'aide de l'adresse IP privée, du masque de réseau et de la passerelle auxquels ce serveur a été affecté lors du déploiement. Vous pouvez accéder à ces détails depuis l'interface des paramètres de votre serveur. Lorsque vous y êtes invité, n'effectuez aucune configuration réseau manuelle.

Entrez un nouveau mot de passe pour le compte root, puis sélectionnez un fuseau horaire approprié pour l'emplacement dans lequel vous avez choisi de déployer ces serveurs.

Si vous avez l'intention d'utiliser un proxy HTTP / FTP, entrez son URL, sinon ne définissez pas d'URL de proxy.

Choisissez un client NTP pour gérer la synchronisation de l'horloge système. Ce guide utilisera busybox.

Lorsqu'on lui a demandé un miroir de référentiel de packages à utiliser, choisissez-en un explicitement en entrant son numéro; détecter et sélectionner automatiquement le plus rapide en entrant f; ou modifiez manuellement le fichier de configuration du référentiel en entrant e, ce qui n'est pas recommandé à moins que vous ne soyez familier avec Alpine Linux. Ce guide utilisera le premier miroir.

Si vous prévoyez d'utiliser SSH pour accéder à vos serveurs ou pour héberger un système de fichiers SSH, sélectionnez un serveur SSH à utiliser. Ce guide utilisera openssh.

Lorsque vous êtes invité à indiquer un disque à utiliser, choisissez le disque vdacomme systype.

Alpine Linux 3.9.0 devrait maintenant être installé sur votre serveur. Répétez ce processus pour tous les autres serveurs que vous avez déployés précédemment, en vous assurant de substituer les valeurs correctes pour le nom d'hôte et l' eth1interface réseau.

Configuration du serveur après l'installation

À ce stade, vos serveurs exécutent toujours la version ISO en direct d'Alpine Linux 3.9.0. Pour démarrer à partir de l'installation SSD, visitez l'interface des paramètres de votre serveur, accédez à l' Custom ISOentrée du menu latéral et cliquez sur le Remove ISObouton. Cela devrait redémarrer le serveur. Si ce n'est pas le cas, redémarrez manuellement.

Une fois le redémarrage du serveur terminé, revenez à la console Web du serveur Docker Manager.

Connectez-vous au compte root en utilisant le mot de passe que vous avez défini plus tôt pendant le processus d'installation.

Activez le référentiel de packages de la communauté en supprimant la mise en commentaire de la troisième ligne d' /etc/apk/repositoriesutilisation vi. Vous pouvez activer Edge et tester les référentiels de la même manière, mais ils ne sont pas tenus de suivre ce guide.

Synchronisez l'index de package local du serveur avec le référentiel distant que vous avez sélectionné précédemment en entrant la commande shell suivante:

# apk update

Ensuite, mettez à niveau les packages obsolètes:

# apk upgrade

Comme précédemment, répétez ce processus de configuration pour chaque serveur que vous avez déployé précédemment.

Installez Docker sur vos serveurs

Avant d'installer le package Docker lui-même, vous souhaiterez peut-être créer un dockerutilisateur distinct . Vous pouvez le faire en utilisant la commande suivante:

# adduser docker

Remarque: Ce nouvel utilisateur et tous les utilisateurs ajoutés au nouveau dockergroupe auront des privilèges root une fois le package Docker installé. Consultez le problème suivant dans le référentiel Moby Github:

En raison de l' --privilegedin docker, toute personne ajoutée au groupe 'docker' est l'équivalent root. Tous les membres du groupe Docker ont une porte dérobée autour de toutes les politiques d'augmentation de privilèges et d'audit sur le système.

C'est différent de quelqu'un capable d'exécuter sudo sur root, où ils ont une stratégie et un audit qui leur est appliqué.

Si vous souhaitez autoriser sudo à l' dockerutilisateur, installez d'abord le sudopackage:

# apk add sudo

Créez ensuite un sudogroupe:

# addgroup sudo

Enfin, ajoutez l' dockerutilisateur au sudogroupe:

# adduser docker sudo

Vous pouvez maintenant suivre l'étape 4 de ce guide pour terminer la configuration de sudo.

À ce stade, vous êtes prêt à installer le package Docker. Notez qu'il n'est pas strictement nécessaire d'avoir un utilisateur séparé, capable de sudo dockerpour installer et configurer Docker, mais ce guide suit cette convention.

Installez le package Docker avec la commande suivante:

# apk add docker

Activez ensuite le script d'init Docker:

# rc-update add docker

Enfin, démarrez le démon Docker:

# rc-service docker start

Vous pouvez vérifier que Docker fonctionne avec cette commande:

# docker info

Comme la dernière fois, répétez ce processus d'installation Docker pour chaque serveur que vous avez déployé au démarrage.

Initialiser un essaim Docker avec un nœud gestionnaire et un nœud travailleur

Avec toute cette configuration traitée, vous êtes enfin prêt à créer l'essaim Docker.

Créer un essaim et ajouter un nœud de gestionnaire

Revenez à la console Web de votre Docker Managerserveur. Vous allez configurer ce serveur en tant que nœud de gestionnaire dans votre essaim. Si vous avez choisi de créer l' dockerutilisateur plus tôt, connectez-vous en utilisant ce compte plutôt que le superutilisateur.

Entrez la commande suivante, mais remplacez-la 192.0.2.1par l'adresse IP privée (et non publique) attribuée à votre Docker Managerserveur:

$ docker swarm init --advertise-addr 192.0.2.1

Docker affichera une commande que vous pouvez exécuter sur d'autres serveurs du réseau privé pour les ajouter en tant que nœuds de travail à ce nouvel essaim. Enregistrez cette commande.

Ajouter un nœud de travail

Accédez maintenant à la console Web de votre Docker Workerserveur, connectez-vous avec l' dockerutilisateur si vous l'avez créé.

Pour ajouter ce serveur en tant que nœud de travail à l'essaim que vous venez de créer, exécutez la commande que vous avez enregistrée à partir de la sortie de la commande de création d'essaim. Il ressemblera à ceci:

$ docker swarm join --token SWMTKN-1-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXX 192.0.2.1:2377

Docker affichera si le nœud a pu rejoindre l'essaim. Si vous rencontrez des problèmes lors de l'ajout de nœuds de travail à l'essaim, revérifiez la configuration de votre réseau privé et consultez ce guide pour le dépannage.

Si vous avez déployé plus de deux serveurs au début, vous pouvez ajouter le reste en tant que nœuds de travail à votre essaim à l'aide de la commande ci-dessus, augmentant ainsi la quantité de ressources disponibles pour votre application. Vous pouvez également ajouter des nœuds de gestionnaire supplémentaires, mais cela dépasse le cadre de ce guide.

Déployez Portainer avec SSL pour gérer votre essaim Docker

À ce stade, votre essaim Docker est prêt à l'emploi. Cependant, vous pouvez éventuellement lancer une pile Portainer sur le nœud gestionnaire de votre essaim. Portainer offre une interface Web pratique pour gérer votre essaim et les nœuds qui s'y trouvent.

Il est maintenant temps de créer un groupe de pare-feu pour votre essaim. À moins que votre application ne l'exige spécifiquement, exposez uniquement les ports sur les nœuds de votre gestionnaire . L'exposition de ports sur vos noeuds de travail sans considération particulière peut introduire des vulnérabilités.

Accédez à l' interface de gestion du pare - feu et créez un nouveau groupe de pare-feu. Votre application doit dicter les ports à exposer, mais vous devez, à tout le moins, exposer le port 9000pour Portainer. Appliquez ce groupe de pare-feu au Docker Managerserveur.

Bien que cela ne soit pas nécessaire, la sécurisation de Portainer avec SSL est fortement recommandée. Pour les besoins de ce guide, vous n'utiliserez qu'un certificat OpenSSL auto-signé, mais vous devriez envisager d' utiliser Let's Encrypt en production.

Accédez à la console Web du Docker Managerserveur, connectez-vous à l'aide de l' dockerutilisateur et utilisez les commandes suivantes pour générer un certificat OpenSSL auto-signé:

$ mkdir ~/certs
$ openssl genrsa -out ~/certs/portainer.key 2048
$ openssl req -new -x509 -sha256 -key ~/certs/portainer.key -out ~/certs/portainer.pem -days 3650

Créez un nouveau fichier ~/portainer-agent-stack.yml, avec le contenu suivant:

version: '3.2'

services:
  agent:
    image: portainer/agent
    environment:
      AGENT_CLUSTER_ADDR: tasks.agent
      CAP_HOST_MANAGEMENT: 1
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
      - /:/host
    networks:
      - agent_network
    deploy:
      mode: global

  portainer:
    image: portainer/portainer
    command: -H tcp://tasks.agent:9001 --tlsskipverify --ssl --sslcert /certs/portainer.pem --sslkey /certs/portainer.key
    ports:
      - target: 9000
        published: 9000
        protocol: tcp
        mode: host
    volumes:
      - portainer_data:/data
      - /home/docker/certs:/certs
    networks:
      - agent_network
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]

networks:
  agent_network:
    driver: overlay
    attachable: true

volumes:
  portainer_data:

Après avoir modifié ce fichier de configuration de la pile Docker pour qu'il soit conforme à vos besoins, vous pouvez le déployer:

$ docker stack deploy --compose-file ~/portainer-agent-stack.yml portainer

Pour vérifier que Portainer fonctionne, exécutez la commande suivante après avoir donné à Docker une minute ou deux pour déployer la pile:

$ docker ps

Vous verrez deux conteneurs avec les images portainer/portainer:latestet portainer/agent:latest, vérifiant que Portainer a démarré correctement.

Vous pouvez désormais configurer et gérer votre essaim Docker en visitant l'adresse IP publique de votre Docker Managerserveur sur le port à l' 9000aide de HTTPS.



Installer Docker sur Ubuntu 14.04

Installer Docker sur Ubuntu 14.04

Vous utilisez un système différent? Docker est une application qui permet de déployer des programmes exécutés en tant que conteneurs. Il a été écrit dans le populaire programme Go

Configuration de Sentry via Docker sur Ubuntu 16.04

Configuration de Sentry via Docker sur Ubuntu 16.04

Vous utilisez un système différent? Introduction Sentry est une solution open source pour le suivi des erreurs. Sentry suit les exceptions et autres messages utiles

Déployer une application PHP à laide de Docker-compose

Déployer une application PHP à laide de Docker-compose

Les applications PHP sont généralement composées dun serveur Web, dun système de base de données relationnelle et de linterpréteur de langage lui-même. Dans ce tutoriel, nous serons leveragin

Installer Rancher Server sur RancherOS

Installer Rancher Server sur RancherOS

Présentation RancherOS est un système dexploitation incroyablement léger (seulement environ 60 Mo) qui exécute un démon Docker système en tant que PID 0 pour exécuter les services système

Session collante avec Docker Swarm (CE) sur Debian 9

Session collante avec Docker Swarm (CE) sur Debian 9

Vous utilisez un système différent? Introduction Docker Swarm transforme vos serveurs individuels en un cluster dordinateurs; faciliter la mise à léchelle, la haute disponibilité et

Comment utiliser Docker: création de votre premier conteneur Docker

Comment utiliser Docker: création de votre premier conteneur Docker

Ce didacticiel explique les bases de la prise en main de Docker. Je suppose que Docker est déjà installé. Les étapes de ce didacticiel fonctionnent sur un

Équilibrage de charge avec Docker

Équilibrage de charge avec Docker

Lorsque vous exécutez une application Web, vous souhaitez normalement tirer le meilleur parti de vos ressources sans avoir à convertir votre logiciel pour utiliser le multithreading o

Sur CoreOS, configurez votre propre registre Docker

Sur CoreOS, configurez votre propre registre Docker

Nous connaissons et aimons tous Docker, une plateforme pour créer, gérer et distribuer des conteneurs dapplications sur plusieurs machines. Docker Inc. fournit un service t

Déployer une application Node.js à laide de Docker

Déployer une application Node.js à laide de Docker

Cet article vous montrera comment déployer votre application Node dans un conteneur Docker. Remarque: ce didacticiel suppose que Docker est installé et lu

Installer Rancher OS via iPXE

Installer Rancher OS via iPXE

Rancher OS est une distribution Linux très légère construite autour de Docker. LOS lui-même pèse environ 20 Mo. Ce tutoriel vous permettra de devenir opérationnel avec

Déployer Kubernetes avec Kubeadm sur CentOS 7

Déployer Kubernetes avec Kubeadm sur CentOS 7

Présentation Cet article est destiné à vous aider à obtenir un cluster Kubernetes opérationnel avec kubeadm en un rien de temps. Ce guide déploiera deux serveurs, sur

Installation de docker-compose sur CoreOS

Installation de docker-compose sur CoreOS

Cet article explique comment installer docker-compose sur CoreOS. Dans CoreOS, le dossier / usr / est immuable, donc le chemin standard / usr / local / bin nest pas disponible pour

Comment installer Harbor sur CentOS 7

Comment installer Harbor sur CentOS 7

Harbor est un serveur de registre de classe entreprise open source qui stocke et distribue des images Docker. Harbor étend la distribution open source Docker b

Installer Docker CE sur Ubuntu 18.04

Installer Docker CE sur Ubuntu 18.04

Introduction Docker est une application qui nous permet de déployer des programmes exécutés en tant que conteneurs. Il a été écrit dans le langage de programmation Go populaire

Premiers pas avec SQL Server 2017 (MS-SQL) sur CentOS 7 avec Docker

Premiers pas avec SQL Server 2017 (MS-SQL) sur CentOS 7 avec Docker

Prérequis Docker engine 1.8+. Minimum de 4 Go despace disque. Minimum de 4 Go de RAM. Étape 1. Installer Docker Pour installer SQL-Server, Docker mus

Premiers pas avec Kubernetes sur CentOS 7

Premiers pas avec Kubernetes sur CentOS 7

Kubernetes est une plate-forme open source développée par Google pour gérer les applications conteneurisées sur un cluster de serveurs. Il s’appuie sur une décennie et

Installer Rancher sur Ubuntu 16.04

Installer Rancher sur Ubuntu 16.04

Vous utilisez un système différent? Introduction Rancher est une plate-forme open source pour exécuter des conteneurs et créer un service de conteneurs privé. Léleveur est la base

Installation de Docker CE sur CentOS 7

Installation de Docker CE sur CentOS 7

La technologie de conteneur Docker vous permet dexécuter des applications dans un environnement spécifique et isolé. Docker Community Edition (CE) est le nouveau nom du fre

Installer Docker CE sur Debian 9

Installer Docker CE sur Debian 9

Vous utilisez un système différent? Introduction Docker est une application qui permet le déploiement de logiciels dans des conteneurs virtuels. Il a été écrit dans le G

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.