Aller au contenu principal

Lab 4.4 - LoadBalancer et Intégration Cloud

Objectifs du Lab

À la fin de ce lab, vous serez capable de:

  • Comprendre le type de Service LoadBalancer.
  • Configurer un Service LoadBalancer.
  • Comprendre l'intégration avec les load balancers cloud.
  • Tester l'accès externe via LoadBalancer.

Durée Estimée

30-45 minutes

Prérequis

  • kubectl installé et configuré.
  • Cluster Kubernetes local fonctionnel (minikube ou kind).
  • Connaissances sur les Services (Chapitres 4.1 et 4.2).

Partie 1: Comprendre LoadBalancer

Un Service de type LoadBalancer expose le Service à l'extérieur du cluster en utilisant un load balancer fourni par le fournisseur cloud (AWS ELB, Azure Load Balancer, GCP Load Balancer).

Sur un cluster local (minikube/kind), le LoadBalancer se comporte comme un NodePort, mais en production cloud, il provisionne automatiquement un load balancer externe.


Partie 2: Création d'un Service LoadBalancer

Étape 2.1: Déployer une Application

Créez un Deployment simple:

apiVersion: apps/v1
kind: Deployment
metadata:
name: web-app
spec:
replicas: 3
selector:
matchLabels:
app: web-app
template:
metadata:
labels:
app: web-app
spec:
containers:
- name: nginx
image: nginx:1.20
ports:
- containerPort: 80

Appliquez:

kubectl apply -f deployment.yaml

Étape 2.2: Créer un Service LoadBalancer

Créez service-loadbalancer.yaml:

apiVersion: v1
kind: Service
metadata:
name: web-app-lb
spec:
type: LoadBalancer
selector:
app: web-app
ports:
- port: 80
targetPort: 80
protocol: TCP

Appliquez:

kubectl apply -f service-loadbalancer.yaml

Partie 3: Vérification

Étape 3.1: Vérifier le Service

kubectl get svc web-app-lb

Sur minikube, vous verrez <pending> pour l'EXTERNAL-IP. Activez le tunnel:

minikube tunnel

Dans un autre terminal, vérifiez à nouveau:

kubectl get svc web-app-lb

Vous devriez voir une EXTERNAL-IP.

Étape 3.2: Tester l'Accès

Testez l'accès:

curl http://<EXTERNAL-IP>

Partie 4: Intégration Cloud (Conceptuel)

Sur un cluster cloud (AWS, Azure, GCP), le LoadBalancer provisionne automatiquement:

  • AWS: Elastic Load Balancer (ELB)
  • Azure: Azure Load Balancer
  • GCP: Google Cloud Load Balancer

Le fournisseur cloud gère automatiquement la création et la configuration du load balancer.


Partie 5: Nettoyage

kubectl delete svc web-app-lb
kubectl delete deployment web-app

Résumé du Lab

Dans ce lab, vous avez créé un Service LoadBalancer et compris son fonctionnement. Sur un cluster cloud, ce type de Service provisionne automatiquement un load balancer externe pour exposer votre application.


Prochaines Étapes

Ce module sur les Services et Networking est maintenant complet. Vous pouvez passer au Module 5 sur la Configuration et les Secrets.

Module 5: Configuration et Secrets


Lab créé le: Décembre 2024