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
:
- Communication entre conteneurs sur différents hôtes: assure l'interaction réseau entre les conteneurs exécutés sur différents nœuds.
- Isolation: permet de créer des espaces réseau isolés pour différentes applications.
- 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.
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 :
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 :
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
:
docker network ls
Exemple de sortie :
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
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
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 :
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 :
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 :
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
:
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
:
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 :
- 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.
- 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.
- 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.
GO TO FULL VERSION