From 5ce1bb8d9466805d523a5528a14252560713fde9 Mon Sep 17 00:00:00 2001 From: CLEMENTE Damien <damien.clemente@etu.univ-amu.fr> Date: Wed, 12 Mar 2025 00:01:04 +0000 Subject: [PATCH] Update 2 files - /5. installation_load-balancer - /5. installation_load-balancer.md --- 5. installation_load-balancer | 0 5. installation_load-balancer.md | 100 +++++++++++++++++++++++++++++++ 2 files changed, 100 insertions(+) delete mode 100644 5. installation_load-balancer create mode 100644 5. installation_load-balancer.md diff --git a/5. installation_load-balancer b/5. installation_load-balancer deleted file mode 100644 index e69de29..0000000 diff --git a/5. installation_load-balancer.md b/5. installation_load-balancer.md new file mode 100644 index 0000000..1b4c446 --- /dev/null +++ b/5. installation_load-balancer.md @@ -0,0 +1,100 @@ +# Mise en Place d'un Load Balancer avec MetalLB + +## 1. Qu'est-ce que MetalLB ? +MetalLB est un **Load Balancer** pour les clusters Kubernetes fonctionnant sur des infrastructures sans balancer natif, comme les clusters bare-metal ou les VMs. + +Il permet d'attribuer des **adresses IP externes** aux services Kubernetes de type `LoadBalancer`, ce qui facilite l'accès aux applications depuis l'extérieur du cluster. + +## 2. Installation de MetalLB + +MetalLB peut être installé en appliquant son manifeste officiel : + +```bash +kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/main/config/manifests/metallb-native.yaml +``` + +Vérification de l'installation : + +```bash +kubectl get pods -n metallb-system +``` + +Si tout est bien installé, les pods `controller` et `speaker` doivent être en état `Running`. + +Exemple : + +```bash +root@kube01:~# kubectl get pods -n metallb-system +NAME READY STATUS RESTARTS AGE +controller-5b5b575d55-8q9mr 1/1 Running 0 8m12s +speaker-24jdj 1/1 Running 0 8m12s +speaker-7q769 1/1 Running 0 8m11s +speaker-lmjm9 1/1 Running 0 8m11s +``` + +## 3. Configuration de MetalLB + +MetalLB doit être configuré pour attribuer des adresses IP aux services. + +Créer un fichier `metallb-config.yaml` : + +```yaml +apiVersion: metallb.io/v1beta1 +kind: IPAddressPool +metadata: + name: my-pool + namespace: metallb-system +spec: + addresses: + - 192.168.10.100-192.168.10.110 # Plage d'IP LoadBalancer + +--- +apiVersion: metallb.io/v1beta1 +kind: L2Advertisement +metadata: + name: my-advert + namespace: metallb-system +``` + +Appliquer la configuration : + +```bash +kubectl apply -f metallb-config.yaml +``` + +Vérification : + +```bash +kubectl get svc -A +``` + +Exemple de sortie : + +```bash +root@kube01:~# kubectl get svc -A +NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +wordpress wordpress LoadBalancer 10.107.47.4 192.168.10.100 80:31731/TCP 112m +openldap phpldapadmin-service LoadBalancer 10.106.142.213 192.168.10.101 9943:32590/TCP 21h +``` + +## 4. Résolution des Problèmes + +Si le Load Balancer ne fonctionne pas, les étapes suivantes peuvent aider : + +1. **Vérifier que les pods de MetalLB sont en cours d'exécution** : + ```bash + kubectl get pods -n metallb-system + ``` +2. **Regarder les logs des composants** : + ```bash + kubectl logs -n metallb-system -l component=controller + kubectl logs -n metallb-system -l component=speaker + ``` +3. **Supprimer la configuration Webhook si nécessaire** : + ```bash + kubectl delete validatingwebhookconfiguration metallb-webhook-configuration + ``` + +## Conclusion + +MetalLB est un outil essentiel pour exposer des services Kubernetes sur des clusters sans Load Balancer natif. Il permet d’attribuer des adresses IP aux services de type `LoadBalancer`, facilitant ainsi leur accessibilité depuis l'extérieur du cluster. -- GitLab