Prendre rendez-vous
  1. Accueil
  2. /
  3. Blog
  4. /
  5. Déployer un cluster Kubernetes hautement disponible avec kubeadm et MetalLB

Infrastructure
Cloud
Kubernetes

Déployer un cluster Kubernetes hautement disponible avec kubeadm et MetalLB

24 juin 2025

3 min de lecture

Sommaire
Prérequis
Gestion du quorum
1. Installation des prérequis
2. Initialiser le premier master
3. Ajouter d'autres masters
4. Ajouter les workers
5. Installer le réseau (Calico)
6. Déployer MetalLB
7. Stockage persistant
Vérification
Compléments essentiels
Conclusion

Kubernetes est la référence pour l'orchestration de conteneurs. Ce guide vous montre comment déployer un cluster Kubernetes hautement disponible avec kubeadm, intégrer MetalLB pour la gestion des IP flottantes, configurer un stockage persistant, et surtout garantir un quorum etcd résilient.

Prérequis

  • Minimum 3 nœuds masters pour le control-plane (impair recommandé pour le quorum) et 2 nœuds workers
  • Distribution Linux (Debian, Ubuntu, Rocky, AlmaLinux)
  • Accès root ou sudo
  • Un réseau local stable
  • Ports etcd (2379, 2380) ouverts entre les masters

Gestion du quorum

Un quorum survient quand la majorité des membres sont disponibles :

  • Avec 3 nœuds, quorum = 2 nœuds actifs
  • Avec 5 nœuds, quorum = 3 nœuds actifs
  • Perdre plus de la moitié des nœuds etcd entraîne l'indisponibilité du cluster
  • Vérifiez l'état du quorum :
    kubectl exec -n kube-system etcd-<node> -- etcdctl endpoint status --write-out=table
    

1. Installation des prérequis

Sur tous les nœuds :

sudo apt update
sudo apt install -y apt-transport-https ca-certificates curl gpg

# Ajouter la clé GPG Kubernetes (méthode moderne)
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo gpg --dearmor -o /usr/share/keyrings/kubernetes-apt-keyring.gpg

# Ajouter le dépôt Kubernetes
echo "deb [signed-by=/usr/share/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.29/deb/ /" | sudo tee /etc/apt/sources.list.d/kubernetes.list

sudo apt update
sudo apt install -y kubelet kubeadm kubectl
sudo apt-mark hold kubelet kubeadm kubectl

Désactivez le swap :

sudo swapoff -a
sudo sed -i '/ swap / s/^/#/' /etc/fstab

2. Initialiser le premier master

kubeadm init --control-plane-endpoint "lb.k8s.local:6443" --upload-certs

Configurez kubectl :

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

3. Ajouter d'autres masters

Utilisez la commande join générée avec l'option --control-plane :

kubeadm join lb.k8s.local:6443 --token <token>   --discovery-token-ca-cert-hash sha256:<hash>   --control-plane --certificate-key <key>

4. Ajouter les workers

kubeadm join lb.k8s.local:6443 --token <token> --discovery-token-ca-cert-hash sha256:<hash>

5. Installer le réseau (Calico)

kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

6. Déployer MetalLB

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.13.10/config/manifests/metallb-native.yaml

Configurez un pool IP :

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: first-pool
  namespace: metallb-system
spec:
  addresses:
    - 192.168.1.240-192.168.1.250
---
apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: l2adv
  namespace: metallb-system
kubectl apply -f metallb-config.yaml

7. Stockage persistant

Exemple NFS :

apiVersion: v1
kind: PersistentVolume
metadata:
  name: nfs-pv
spec:
  capacity:
    storage: 100Gi
  accessModes:
    - ReadWriteMany
  nfs:
    path: /srv/nfs/kubedata
    server: 192.168.1.100

Vérification

kubectl get nodes
kubectl get pods -A

# Vérifier l'état du cluster etcd
sudo ETCDCTL_API=3 etcdctl --endpoints=https://127.0.0.1:2379 \
  --cacert=/etc/kubernetes/pki/etcd/ca.crt \
  --cert=/etc/kubernetes/pki/etcd/healthcheck-client.crt \
  --key=/etc/kubernetes/pki/etcd/healthcheck-client.key \
  member list --write-out=table

Compléments essentiels

  • Supervision : Déployez une stack de monitoring complète pour surveiller vos nœuds et pods Kubernetes
  • Ingress & Routage : Utilisez Traefik v2 comme ingress controller pour le routage avancé
  • Gestion des secrets : Intégrez HashiCorp Vault pour sécuriser vos données sensibles en cluster
  • Alternatives HA : Explorez Pacemaker + Corosync pour des architectures génériques non-containerisées
  • Connectivité sécurisée : Déployez WireGuard VPN pour l'accès sécurisé à votre cluster

Conclusion

Vous avez déployé un cluster Kubernetes hautement disponible, avec un quorum etcd résilient, MetalLB pour le load balancing et un stockage persistant. Parfait pour la production on-premise.

Besoin d'aide sur ce sujet ?

Notre équipe d'experts est là pour vous accompagner dans vos projets d'infrastructure et d'infogérance.

Contactez-nous

Articles similaires

Automatiser la montée de version de clusters Kubernetes avec kubeadm et Ansible
Infrastructure
Cloud
Kubernetes

Automatiser la montée de version de clusters Kubernetes avec kubeadm et Ansible

Guide avancé pour automatiser la mise à jour de vos clusters Kubernetes en utilisant kubeadm et Ansible pour des déploiements sans interruption.

11 juil. 2025

Lire plus

Harvester HCI : alternative VMware open source par SUSE/Rancher
Infrastructure
Kubernetes
Haute Disponibilité

Harvester HCI : alternative VMware open source par SUSE/Rancher

HCI cloud-native bâtie sur Kubernetes, KubeVirt et Longhorn. Architecture, prérequis, intégration Rancher, comparaison Proxmox et VMware, retour ops.

21 mai 2026

Lire plus

KubeVirt en 2026 : faire tourner des VMs dans Kubernetes en prod
Kubernetes
Infrastructure
Conteneurs

KubeVirt en 2026 : faire tourner des VMs dans Kubernetes en prod

Architecture, cas d'usage, migration depuis VMware, pièges opérationnels. KubeVirt v1.8, live migration, CBT, Hypervisor Abstraction Layer côté ops.

20 mai 2026

Lire plus


SHPV, votre partenaire de confiance en infrastructure et infogérance informatique en France.

SHPV
Prendre rendez-vousNous contacter
Expertise
InfrastructureDatacenterInfogéranceCloudHébergementTransit IP
Légales
Conditions Générales de VenteCPS - Contrat de ServicesCPS - Hébergement CloudCPS - Microsoft 365Accord sous-traitance RGPDTarifs interventions

SHPV © 2026 - Tous droits réservés

Mentions légalesPolitiques de confidentialité
SHPV FRANCE - SAS au capital de 16 000 € - 52 Rue Romain Rolland, 71230 Saint-Vallier - SIRET n°80886287400035 - R.C.S. Chalon-sur-Saône. Par téléphone 09 72 310 818 - Email: support@shpv.fr