Skip to content
Snippets Groups Projects
Commit 5ce1bb8d authored by CLEMENTE Damien's avatar CLEMENTE Damien
Browse files

Update 2 files

- /5. installation_load-balancer
- /5. installation_load-balancer.md
parent c12b5223
Branches
No related tags found
No related merge requests found
# 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.
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment