Database
 sql >> Base de données >  >> RDS >> Database

Création d'un cluster Docker Swarm sur Azure Container Service

Service de conteneur Azure (ACS) est une solution d'hébergement de conteneurs optimisée pour les outils d'orchestration de conteneurs open source couramment utilisés. Les outils d'orchestration de conteneurs pris en charge sont DC/OS basés sur Mesos, Kubernetes et Docker Swarm. Ou, le moteur Docker autonome peut être utilisé. Azure Container Service expose les points de terminaison d'API pour un moteur d'orchestration sélectionné, de sorte que les outils open source pour divers cas d'utilisation, notamment la surveillance, l'intégration continue et les outils de ligne de commande, puissent accéder au service de conteneur.

Qu'est-ce qu'un essaim Docker ACS ?

Un essaim Docker est une collection/un cluster de machines virtuelles (VM) exécutant Docker Engine et inclut d'autres ressources telles que des équilibreurs de charge, des ensembles d'échelles de VM ou des ensembles de disponibilité, le stockage et le réseau. Un Docker Swarm sur Azure Container Service se compose de nœuds (VM) Swarm Master et Swarm Agent. Un Swarm Master peut être directement connecté à l'aide d'une clé SSH RSA. Un agent Swarm n'est pas directement connectable à l'aide d'une clé SSH RSA.

Azure Container Service Docker Swarm Cluster n'est pas un cluster en mode Docker Swarm. Le mode Docker Swarm doit être initialisé sur un maître ACS Swarm. Lorsqu'un cluster Docker Swarm est créé sur un portail Azure, toutes les ressources requises (machines virtuelles, groupes identiques, équilibreurs de charge) sont créées automatiquement.

Cet article comporte les sections suivantes :

  • Configuration de l'environnement
  • Démarrer Azure Cloud Shell
  • Création d'une paire de clés SSH RSA
  • Création d'un essaim Docker Azure Container Service
  • Explorer les ressources du cluster Docker Swarm
  • Connexion à un Swarm Master
  • Conclusion

Configuration de l'environnement

Un compte Azure est le seul prérequis. Un compte Azure peut être créé sur https://azure.microsoft.com/.

Démarrer Azure Cloud Shell

Azure fournit une interface client pour se connecter à l'outil Azure appelé Cloud Shell. Cloud Shell est un shell d'administration basé sur un navigateur pour se connecter à Azure. Cloud Shell prend en charge la sélection d'outils clients, notamment les modules PowerShell, les outils Azure, les outils de conteneur, les outils de base de données, les interpréteurs de shell Linux, le contrôle de code source et les outils de génération. Cloud Shell prend également en charge plusieurs langages de programmation parmi lesquels choisir, notamment .NET et Node.js. Pour démarrer Cloud Shell, cliquez sur >_ icône, comme illustré à la figure 1.


Figure 1 : Démarrage de Cloud Shell

Création d'une paire de clés SSH RSA

Pour créer une solution hébergée basée sur Azure Container Service, une clé SSH RSA est requise. Créez une clé SSH RSA à partir de Cloud Shell avec la commande suivante :

ssh-keygen -t rsa -b 2048

Une invite de commande pour spécifier le fichier dans lequel enregistrer la clé s'affiche, comme illustré à la figure 2. Cliquez sur Entrée pour sélectionner le fichier par défaut.


Figure 2 : Génération d'une clé SSH RSA

Une autre invite de commande pour spécifier la phrase de passe s'affiche. Cliquez sur Entrée pour ne pas utiliser de phrase secrète. Qu'une phrase secrète soit sélectionnée ou non, une invite de commande de confirmation s'affiche pour spécifier à nouveau la phrase secrète. Cliquez à nouveau sur Entrée si aucune phrase de passe n'est utilisée. Une paire de clés publique/privée est générée et enregistrée. La sortie complète de la commande ssh-keygen est répertoriée ci-dessous :

[email protected]:~$ ssh-keygen -t rsa -b 2048
Generating public/private rsa key pair.
Enter file in which to save the key (/home/deepak/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/deepak/.ssh/id_rsa.
Your public key has been saved in /home/deepak/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:+YArpP5Eri/JENp0b3CKVbOz3qFPveivTHr1vyaHv/o
   [email protected]
The key's randomart image is:
+---[RSA 2048]----+
|                 |
|      o          |
|     . o         |
|. . + +. .       |
|.+ +o=.oS        |
|o o=. +..+.      |
| o..+o.oooo. .   |
| .+o .o=o. .+ o  |
|  o+o .+*oo .OEo |
+----[SHA256]-----+

Les autorisations par défaut définies sur la clé SSH RSA sont trop ouvertes et ne peuvent pas être utilisées avec ACS. Modifiez les autorisations à 400 (lecture seule par le propriétaire) :

[email protected]:~$ chmod 400 /home/deepak/.ssh/id_rsa

Nous utiliserons la clé SSH RSA lorsque nous créerons un Docker Swarm. Ouvrez le fichier de clé publique dans un éditeur vi :

[email protected]:~$ vi /home/deepak/.ssh/id_rsa.pub

Et, sélectionnez tout et copiez le contenu de id_rsa.pub fichier et stockez-le dans un fichier texte pour une utilisation ultérieure.

Création d'un essaim Docker Azure Container Service

Pour créer un Docker Swarm basé sur Azure Container Service, cliquez sur Nouveau dans le portail Azure, comme illustré à la figure 3.


Figure 3 : Portail Azure>Nouveau

Dans le Nouveau Assistant, plusieurs applications de la Place de marché Azure s'affichent parmi lesquelles choisir, comme illustré à la figure 4.


Figure 4 : Nouvel assistant

Sélectionnez Azure Container Service, comme illustré à la figure 5.


Figure 5 : Sélection du service de conteneur Azure

L'assistant Créer un service de conteneur Azure démarre, comme illustré à la figure 6, avec les Bases boîte de dialogue de configuration des paramètres de base affichée.


Figure 6 : Créer un service de conteneur Azure >Bases

Spécifiez un nom de service de conteneur (hello-world-docker), et sélectionnez un abonnement . Pour Groupe de ressources, sélectionnez Utiliser existant et sélectionnez un groupe de ressources, comme illustré à la figure 7. Vous pouvez également sélectionner Créer nouveau option.


Figure 7 : Créer un service de conteneur Azure >Bases

Sélectionnez un emplacement et cliquez sur OK, comme illustré à la figure 8.


Figure 8 : Configuration des paramètres de base pour un service de conteneur Azure

Dans la configuration principale, fournissez les informations principales, comme illustré à la figure 9.


Figure 9 : Configuration principale

Sélectionnez Orchestrateur comme Essaim , comme illustré à la Figure 10.


Figure 10 : Sélection d'Orchestrator comme Docker Swarm

Spécifiez un préfixe de nom DNS ("docker" - un nom arbitraire), et spécifiez un Nom d'utilisateur , qui est également un nom arbitraire. Dans le champ Clé publique SSH, placez la clé publique SSH RSA qui a été stockée précédemment dans un fichier texte, comme indiqué dans la section Création d'une paire de clés SSH RSA . Sélectionnez Compte principal (1, 3 ou 5), comme illustré à la Figure 11. Un nombre impair de nœuds maîtres est provisionné pour les exigences de haute disponibilité.


Figure 11 : Fournir des informations principales

Cliquez sur OK (voir Figure 12).


Figure 12 : Terminer la configuration principale

Dans Configuration de l'agent , spécifiez le nombre d'agents , sélectionnez la taille de la machine virtuelle de l'agent , puis cliquez sur OK, comme illustré à la Figure 13.


Figure 13 : Configuration des agents

Dans Résumé , la configuration Swarm est validée et un message "Validation réussie" doit s'afficher, comme illustré à la Figure 14. Cliquez sur OK.


Figure 14 : Résumé de l'essaim

Le déploiement de Swarm démarre, comme illustré à la Figure 15.


Figure 15 : Déploiement du service de conteneur Azure

Lorsque le déploiement est terminé, le message "Déploiement réussi" s'affiche (voir Figure 16).


Figure 16 : Déploiement réussi

Explorer les ressources du cluster Docker Swarm

Les ressources de Swarm s'affichent, comme illustré à la figure 17. Cliquez sur Voir plus pour afficher la liste complète des ressources générées.


Figure 17 : Ressources

Toutes les ressources Swarm sont affichées, comme illustré à la Figure 18. Le type de ressource Swarm est indiqué dans le TYPE colonne et inclut les machines virtuelles, les ensembles de machines virtuelles identiques, les adresses IP publiques, les ensembles à haute disponibilité, les équilibreurs de charge et les interfaces réseau.


Figure 18 : Ressources d'essaim

Connexion à un Swarm Master

Pour vous connecter à un maître Swarm, cliquez sur une machine virtuelle maître Swarm, comme illustré à la Figure 18. Copiez l'adresse IP publique à partir de la page des détails du maître Swarm (voir Figure 19).


Figure 19 : Adresse IP publique du Swarm Master

Cliquez pour copier l'adresse IP publique du maître Swarm, comme illustré à la Figure 20.


Figure 20 : Copie de l'adresse IP publique de Swarm Master

À l'aide de la clé privée SSH, du port SSH (2200), du nom d'utilisateur et de l'adresse IP publique, connectez-vous à la VM maître Swarm :

[email protected]:~$ ssh -i /home/deepak/.ssh/id_rsa -p 2200
   [email protected]

À l'invite de commande "Êtes-vous sûr de vouloir continuer à vous connecter (oui/non) ?", spécifiez "oui" et une connexion est établie avec le maître Swarm, comme illustré à la figure 21. Le maître Swarm est indiqué pour exécuter Ubuntu OS.


Figure 21 : Connexion à Swarm Master

Une machine virtuelle maître Swarm exécute le moteur Docker par défaut.

Conclusion

Dans cet article, nous avons créé un cluster Docker Swarm sur Azure Container Service (ACS). Un Docker Swarm ACS n'est pas un cluster en mode Docker Swarm, qui doit être initialisé comme sur n'importe quel hôte Docker exécutant la version 1.12 ou ultérieure. Les autres options (autres que Docker Swarm) consistent à créer un DC/OS basé sur Mesos ou un cluster Kubernetes. Un ACS Docker Swarm est un cluster de machines virtuelles exécutant Docker. Azure Container Service provisionne toutes les ressources, y compris les machines virtuelles, les adresses IP publiques, les groupes de machines virtuelles identiques, les équilibreurs de charge et les interfaces réseau. Nous nous sommes connectés à un maître Swarm à l'aide d'une clé privée SSH RSA, d'un nom d'utilisateur et d'une adresse IP publique du maître Swarm.