Aller au contenu

MetalLB

Introduction

MetalLB est un équilibreur de charge (load balancer) pour les clusters Kubernetes. Il permet d'accéder aux applications de votre environnemt kubernetes avec une adresse IP externe en prenant en compte la tolérance de panne.

Il utilise des protocoles de routage standard pour annoncer des adresses IP externes aux services Kubernetes. MetalLB est une solution simple et efficace pour exposer les services Kubernetes au monde extérieur.

Installation

helm repo add metallb https://metallb.github.io/metallb
helm repo update
helm upgrade --install metallb metallb/metallb --atomic --cleanup-on-fail --namespace=metallb-system --create-namespace

Configuration

cat << EOF > ipaddresspool.yaml
---
apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: ip-pool-address
  namespace: metallb-system
spec:
  addresses:
  - 172.31.10.200-172.31.10.210 #Pool d'adresses IPs externes qui seront utilisés  
  autoAssign: true
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: l2-advertisement
  namespace: metallb-system
spec:
  ipAddressPools:
  - ip-pool-address
EOF
kubectl apply -f ipaddresspool.yaml

Vérification

kubectl get svc,pods --namespace metallb-system
NAME                              TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)   AGE
service/metallb-webhook-service   ClusterIP   10.103.102.7   <none>        443/TCP   4m56s

NAME                                      READY   STATUS    RESTARTS   AGE
pod/metallb-controller-5f9bb77dcd-b8wkp   1/1     Running   0          4m56s
pod/metallb-speaker-8s29r                 4/4     Running   0          4m56s
pod/metallb-speaker-kpd4n                 4/4     Running   0          4m56s
pod/metallb-speaker-q4jvl                 4/4     Running   0          4m56s

Désinstallation de metalLB

helm uninstall metallb -n metallb-system
kubectl delete ns metallb-system

Version Date Change Auteur
1.0 12.11.2023 Création GMo