CodeGym /Cours /Docker SELF /Étude du réseau overlay

Étude du réseau overlay

Docker SELF
Niveau 18 , Leçon 1
Disponible

7.1 Exploration du réseau overlay

Le réseau overlay est un réseau distribué Docker qui permet aux conteneurs fonctionnant sur des hôtes différents d'interagir entre eux. Il est souvent utilisé dans le cadre de l'orchestration des conteneurs, comme Docker Swarm ou Kubernetes, pour assurer la communication entre des conteneurs exécutés sur différents nœuds. Dans cette conférence, on va voir comment créer et utiliser un réseau overlay, ainsi que des exemples de son utilisation.

Le réseau overlay crée un réseau distribué virtuel par-dessus les réseaux existants, reliant plusieurs hôtes dans un seul espace réseau. Ça permet aux conteneurs de communiquer comme s'ils étaient dans un même réseau local, peu importe l'emplacement physique des hôtes.

Avantages d'utiliser un réseau overlay :

  1. Communication entre conteneurs sur différents hôtes: assure l'interaction réseau entre les conteneurs exécutés sur différents nœuds.
  2. Isolation: permet de créer des espaces réseau isolés pour différentes applications.
  3. Scalabilité: prend en charge l'ajout et la suppression dynamique de nœuds sans aucune interruption du service.

7.2 Création d'un réseau overlay

Pour créer un réseau overlay, il faut d'abord initialiser un cluster Docker Swarm. Cela crée un nœud de gestion (manager) et permet de créer des réseaux distribués.

Étape 1 : Initialisation de Docker Swarm

Lance la commande sur l’hôte qui sera le manager du cluster. Cette commande initialise le cluster Swarm et fournit la commande pour ajouter d’autres nœuds au cluster.

Terminal

docker swarm init

Étape 2 : Ajout des nœuds de travail au cluster

Sur d’autres hôtes, exécute la commande fournie par docker swarm init pour les ajouter au cluster. Exemple de commande :

Terminal

docker swarm join --token <SWARM_TOKEN> <MANAGER_IP>:2377

Étape 3 : Création du réseau overlay

Après l’initialisation du cluster, crée un réseau overlay en exécutant la commande suivante :

Terminal

docker network create -d overlay my_overlay_network

Étape 4 : Vérification du réseau

Pour vérifier que le réseau a été créé avec succès, exécute la commande docker network ls, qui affiche la liste de tous les réseaux, y compris le nouveau réseau overlay :

Terminal

docker network ls

Exemple de sortie :

Terminal

NETWORK ID     NAME                DRIVER    SCOPE
a1b2c3d4e5     my_overlay_network overlay  swarm

Maintenant, le réseau my_overlay_network est prêt à être utilisé pour des applications distribuées.

7.3 Utilisation du réseau overlay

Maintenant que le réseau est créé, tu peux lancer des conteneurs et des services connectés à ce réseau.

Exemple d'utilisation d'un réseau overlay pour des services

Avec Docker Swarm, tu peux utiliser des services pour gérer les conteneurs. Créons quelques services qui seront connectés au réseau overlay.

Étape 1 : Création du service serveur web

Terminal

docker service create --name webserver --network my_overlay_network -p 8080:80 nginx

Cette commande crée un service webserver, connecté au réseau my_overlay_network. Le serveur web sera accessible à l'adresse http://localhost:8080.

Étape 2 : Création du service base de données

Terminal

docker service create --name database --network my_overlay_network -e POSTGRES_PASSWORD=mysecretpassword postgres

Ici, un service database est créé, connecté au même réseau, avec la configuration de la variable d'environnement POSTGRES_PASSWORD.

Étape 3 : Vérification de la connexion entre les services

Lance un conteneur temporaire pour vérifier la connexion entre les services :

Terminal

docker run -it --network my_overlay_network busybox

À l'intérieur du conteneur, utilise les commandes ping pour vérifier la connexion avec le serveur web et la base de données :

Terminal

ping webserver
ping database

Si la configuration est correcte, le ping montrera une connexion réussie, confirmant que les conteneurs peuvent interagir via leurs noms d'hôtes.

Étape 4 : Visualiser l'état des services

Utilise la commande docker service ls pour vérifier l'état des services créés :

Terminal

docker service ls

Le résultat attendu montrera des informations sur les services en cours d'exécution, leur état et le nombre de répliques.

Remarque : Le réseau overlay permet aux conteneurs sur différents hôtes d'échanger des données s'ils sont connectés au même cluster Swarm.

7.4 Exemples d'utilisation du réseau overlay avec Docker Compose

Docker Compose simplifie la gestion des applications multi-conteneurs et des réseaux. Tu peux définir un réseau overlay et l'utiliser pour connecter des conteneurs dans un fichier docker-compose.yml.

Exemple de fichier docker-compose.yml:

Yaml

version: '3.8'

services:
  web:
    image: nginx:latest
    ports:
      - "8080:80"
    networks:
      - my_overlay_network
        
  db:
    image: postgres:latest
    environment:
      POSTGRES_PASSWORD: monmotdepasse
    networks:
      - my_overlay_network
        
networks:
  my_overlay_network:
    driver: overlay
    attachable: true

Lancer Docker Compose :

Terminal

docker stack deploy -c docker-compose.yml mystack

Cette commande déploie une pile en utilisant le fichier docker-compose.yml et crée des services connectés au réseau my_overlay_network.

Conseils pratiques :

  1. Surveiller le réseau : Utilise des outils de monitoring de Docker Swarm comme Docker Dashboard ou Prometheus pour vérifier l'état du réseau et les interactions entre les conteneurs.
  2. Gérer l'évolutivité : Le réseau overlay permet l'ajout et la suppression dynamiques de nœuds. Assure-toi de bien configurer les ressources réseau pour l'évolutivité des applications.
  3. Sauvegarde des configurations : Sauvegarde régulièrement les configurations des réseaux et des piles pour une récupération rapide en cas de panne.
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION