Comment exécuter Consul Server à l'aide de Docker

Comment exécuter Consul Server à l'aide de Docker
Consul est un outil de découverte de services open source qui est basé et construit sur Golang. Il vous aide à découvrir des exigences d'application des services comme la base de données, les files d'attente et les e-mails. Il est livré avec des fonctionnalités impressionnantes telles que la découverte de services, l'état de vérification de la santé, le magasin de clés / valeur, le déploiement multi-datacenter et l'interface utilisateur Web. Docker est un outil conçu pour faciliter la création, le déploiement et l'exécution d'applications en utilisant des conteneurs. Nous pouvons conclure l'application et ses dépendances et bibliothèques requises dans le conteneur, puis déployer l'application facilement à l'aide du conteneur. Dans ce guide, nous verrons comment exécuter Consul à l'aide de Docker.

Mettre à jour le système

Nous vous recommandons de mettre à niveau tous les packages et référentiels avant d'installer un nouveau package sur le système. Exécutez la commande suivante et il fera le travail pour vous.

Mise à jour Sudo apt-get

Installer Docker

Nous exécuterons Consul Server à l'aide de Docker, nous devrons donc installer Docker avant d'installer Consul. Tout d'abord, supprimez l'ancienne version de Docker en cas d'installation. Exécutez la commande suivante pour le faire.

sudo apt-get supprimer docker docker-mo dans docker.Io

Ensuite, exécutez la commande suivante pour installer les packages requis.

sudo apt-get install \ apt-transport-https \ ca-certificats \
curl \ logiciel-properties-commun

Ensuite, vous devrez ajouter la clé GPG officielle du Docker. Exécutez la commande suivante et il fera le travail pour vous.

curl -fssl https: // télécharger.docker.com / linux / ubuntu / gpg | sudo apt-key ajouter -

Maintenant, nous sommes prêts à installer le docker donc, exécutez la commande suivante pour le faire.

sudo apt-get install docker-ge

Vous pouvez vérifier cette installation en utilisant la commande suivante. Sudo Systemctl Status Docker Vous devriez voir la sortie suivante.

Sudo Systemctl Status Docker
● Docker.Service - moteur de conteneur d'application Docker
Chargé: chargé (/ lib / systemd / système / docker.service; activé; Vendor Preset: Activé)
Actif: actif (fonctionnement) depuis le mercredi 2019-07-10 12:04:28 UTC; Il y a 57
Docs: https: // docs.docker.com
PID principal: 4310 (Dockerd)
Cgroup: / système.tranche / docker.service
└fique.chaussette
10 juillet 12:04:26 TestConsul1 Dockerd [4310]: Time = "2019-07-10T12: 04: 26.296629644Z "
niveau = avertissement msg = "Votre biche de noyau
10 juillet 12:04:26 TestConsul1 Dockerd [4310]: Time = "2019-07-10T12: 04: 26.296913361Z "
niveau = avertissement msg = "Votre biche de noyau
10 juillet 12:04:26 TestConsul1 Dockerd [4310]: Time = "2019-07-10T12: 04: 26.297249324Z "
niveau = avertissement msg = "Votre biche de noyau
10 juillet 12:04:26 TestConsul1 Dockerd [4310]: Time = "2019-07-10T12: 04: 26.299409872Z "
niveau = info msg = "Chargement des conteneurs
10 juillet 12:04:26 TestConsul1 Dockerd [4310]: Time = "2019-07-10T12: 04: 26.437281588Z "
niveau = info msg = "pont par défaut (faire
10 juillet 12:04:26 TestConsul1 Dockerd [4310]: Time = "2019-07-10T12: 04: 26.501563121Z "
niveau = info msg = "Chargement des conteneurs
10 juillet 12:04:28 TestConsul1 Dockerd [4310]: Time = "2019-07-10T12: 04: 28.798610779Z "
niveau = info msg = "docker daemon" com
10 juillet 12:04:28 TestConsul1 Dockerd [4310]: Time = "2019-07-10T12: 04: 28.799513575Z "
niveau = info msg = "Daemon a terminé
10 juillet 12:04:28 TestConsul1 Systemd [1]: Moteur de conteneur d'application Docker démarré.
10 juillet 12:04:28 TestConsul1 Dockerd [4310]: Time = "2019-07-10T12: 04: 28.821957315Z "
niveau = info msg = "API écouter sur / var
lignes 1-18 / 18 (fin)

Installer le consul

Nous avons réussi à installer Docker sur votre système. Nous allons maintenant installer le consul à l'aide de l'image docker. Tout d'abord, vous devrez obtenir l'image docker du consul. Si vous avez la station de travail locale d'image, alors bon mais ici, nous téléchargerons l'image à partir de Docker Hub. Exécutez la commande suivante pour télécharger l'image. consul de traction sud docker, vous devriez voir la sortie suivante:

Une fois l'image du consul, vous êtes maintenant prêt à démarrer le serveur Consul à l'aide de la commande suivante.

sudo docker run -p 8500: 8500 -p 8600: 8600 / udp --name = consul consul: v0.6.4 agent
-serveur -bootstrap -ui -client = 0.0.0.0

Vous verrez la sortie suivante:

sajid @ testconsul: ~ $ sudo docker run -p 8500: 8500 -p 8600: 8600 / udp --name = consul
Consul: V0.6.4 agent -server -bootstrap -ui -client = 0.0.0.0
==> AVERTISSEMENT: Mode bootstrap activé! Ne le permettez pas sauf nécessaire
==> Démarrer l'agent de consul…
==> Démarrer le Consul Agent RPC…
==> Consul Agent en cours d'exécution!
Nom du nœud: '14aafc4bdaee'
Datacenter: «DC1»
Serveur: true (bootstrap: true)
Client addr: 0.0.0.0 (HTTP: 8500, HTTPS: -1, DNS: 8600, RPC: 8400)
Cluster addr: 172.17.0.2 (LAN: 8301, WAN: 8302)
Gossip Encrypt: False, RPC-TLS: FAUX, TLS-INCOMING: FALSE
Atlas:

Ensuite, vous pouvez vérifier les journaux des conteneurs à l'aide de la commande suivante.

journaux sud-docker

Remplacez l'ID de conteneur par votre conteneur réel dans notre cas, c'est:

SUDO DOCKER LOGS 14AAFC4BDAEE

Maintenant, nous savons que Consul est une application distribuée, il n'y a donc aucun intérêt à exécuter le serveur Consul seul. Ensuite, vous devrez à nouveau exécuter le consul en mode client. Exécutez la commande suivante pour démarrer l'agent Consul en mode client.

Agent de consul de Sudo Docker Run -d

Vous pouvez vérifier tous les conteneurs disponibles en utilisant la commande suivante. sudo docker ps La commande ci-dessus répertorie tous les conteneurs en cours d'exécution. Ici, dans notre cas, il devrait y avoir deux conteneurs en marche. Vous pouvez déployer de nombreux agents de consul en mode client et sur de nombreux autres nœuds également si vous le souhaitez.

Ensuite, vous devrez connecter le client au serveur. Exécutez la commande suivante pour rejoindre le nœud du serveur.

sudo docker run -d consul agent --retry-join = 172.17.0.2

Nous pouvons maintenant vérifier les journaux du client et du conteneur du serveur et confirmer la connexion entre le serveur Consul et le client Consul à l'aide de la commande suivante.

SUDO DOCKER LOGS 14AAFC4BDAEE

Maintenant, si vous voyez les membres du consul sur le client du Consul et le nœud serveur, ils devraient nous montrer les deux conteneurs. Vous pouvez le faire en utilisant les commandes suivantes.

Sur le nœud client: sudo docker exec -it Consuls
Sur le nœud du serveur: sudo docker exec -it Consuls

Modifier l'interface de liaison du serveur Consul

Maintenant, nous allons démarrer le consul en mode hôte. Lorsque nous commencerons Consul en mode hôte, il y aura plus d'interfaces sur la machine hôte. Pour résoudre ce problème, vous devrez modifier l'interface de liaison. Démarrez le consul en mode hôte en utilisant la commande suivante.

sudo docker run --net = host -e consul_bind_interface = eth1 -d consul agent -server
-bootstrap-expect = 1

Ensuite, démarrez un consul en mode client mais sur une autre machine et rejoignez le serveur de consul ci-dessus. Exécutez la commande suivante et il fera le travail pour vous.

sudo docker run -d consul agent --retry-join =

Nous pouvons maintenant le vérifier en vérifiant les membres du consul sur le serveur de consul.

Sudo Docker Exec -it 3e9f69fc7e1f Consul Membres

Ensuite, démarrez l'agent Consul avec l'adresse IP de l'interface de liaison à l'aide de la commande suivante.

sudo docker run -d --name = consulagent1 --net = agent de consul hôte
--réessayer-join = 192.168.99.100 -Bind = 192.168.99.101

Nous avons changé l'interface de liaison avec succès mais l'interface utilisateur du consul n'est toujours pas disponible pour nous. Vous devrez faire le port 8500 Écouter sur l'interface ETH1 pour obtenir l'interface utilisateur. Exécutez la commande suivante et il fera le travail pour vous.

sudo docker run --net = host -e consul_bind_interface = eth1 -e consul_client_interface = eth1
-d consul agent -ui -server -bootstrap-expect = 1

Conclusion

Dans ce guide, vous avez appris à installer Docker et Consul sur votre système. Vous avez également appris à configurer le serveur Consul à l'aide de conteneurs Docker.