La gestion de multiples clusters Kubernetes peut rapidement devenir un casse-tête opérationnel. Entre les différents environnements (développement, pré-production, production), les déploiements multi-cloud ou hybrides, et la nécessité d'assurer la cohérence des politiques de sécurité et de monitoring, les équipes DevOps et les administrateurs systèmes ont besoin d'un point de contrôle unifié. C'est précisément le problème que Rancher vient résoudre.
Rancher est une plateforme de gestion de conteneurs open-source qui unifie la gestion de clusters Kubernetes, où qu'ils soient. Pensez-y comme une tour de contrôle pour l'ensemble de votre écosystème Kubernetes.
Dans ce guide détaillé, nous allons déployer un serveur de gestion Rancher en configuration haute disponibilité (HA). Pour cela, nous utiliserons les technologies stables les plus récentes en 2025 : Rancher 2.9.x, sur un cluster Kubernetes léger et performant K3s, lui-même hébergé sur des serveurs Ubuntu 24.04 LTS "Noble Numbat". À la fin de ce tutoriel, vous disposerez d'une plateforme de management robuste, prête à gérer vos clusters de production.
Prérequis Techniques
Avant de commencer, assurez-vous de disposer de l'environnement suivant. Ne pas respecter ces prérequis est la source la plus courante d'échecs d'installation.
- Serveurs :
- 3 Nœuds (VMs ou serveurs physiques) pour la haute disponibilité du plan de contrôle.
- Système d'exploitation : Ubuntu 24.04 LTS fraîchement installé sur chaque nœud.
- Matériel par nœud (minimum recommandé) :
- 4 vCPU
- 16 Go de RAM
- 50 Go de disque SSD
- Réseau :
- Chaque nœud doit avoir une adresse IP statique.
- Les nœuds doivent pouvoir communiquer entre eux sur tous les ports (ou au minimum les ports listés dans la section pare-feu).
- Un nom de domaine pleinement qualifié (FQDN) qui pointe vers les adresses IP des 3 nœuds via un Load Balancer, ou, pour ce guide, qui pointe vers un seul nœud que nous configurerons (ex:
rancher.votre-domaine.com
). La configuration d'un Load Balancer externe (MetalLB, F5, etc.) est recommandée pour la production mais sort du cadre de ce guide initial. - Accès à Internet pour télécharger les images et les paquets.
- Outils Clients :
- Un poste de travail avec
kubectl
ethelm
installés pour interagir avec le cluster.
- Un poste de travail avec
- Accès :
- Un accès
sudo
ouroot
sur chaque nœud.
- Un accès
I. Préparation de l'Environnement
La base de tout déploiement stable est un environnement correctement préparé. Cette étape est cruciale. Nous allons configurer nos trois nœuds pour qu'ils soient prêts à accueillir le cluster.
Pour ce guide, nous utiliserons les noms d'hôtes et IP suivants :
rancher-node1
:192.168.1.101
rancher-node2
:192.168.1.102
rancher-node3
:192.168.1.103
A. Configuration des Nœuds
Exécutez ces commandes sur chacun des trois nœuds.
Désactivation du swap :
Kubernetes ne fonctionne pas de manière optimale avec le swap activé.
sudo swapoff -a
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
Résolution DNS locale :
Pour que les nœuds puissent se trouver par leur nom, nous allons éditer le fichier /etc/hosts
. C'est une solution simple pour ce guide. En production, un serveur DNS interne est préférable.
sudo nano /etc/hosts
Ajoutez les lignes suivantes au fichier sur tous les nœuds :
192.168.1.101 rancher-node1
192.168.1.102 rancher-node2
192.168.1.103 rancher-node3
Configuration du nom d'hôte :
Sur rancher-node1
:
sudo hostnamectl set-hostname rancher-node1
Sur rancher-node2
:
sudo hostnamectl set-hostname rancher-node2
Sur rancher-node3
:
sudo hostnamectl set-hostname rancher-node3
Mise à jour du système :
Assurez-vous que tous les paquets sont à jour.
sudo apt update && sudo apt upgrade -y
B. Installation des Outils Clients
Sur votre machine locale (pas sur les nœuds du cluster), installez kubectl
et helm
.
Installation de Helm :
Helm est le gestionnaire de paquets pour Kubernetes. C'est la méthode recommandée pour installer Rancher.
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
helm version
Installation de kubectl :
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectl
kubectl version --client
C. Configuration du Pare-feu
Pour que les composants de K3s et Rancher communiquent, certains ports doivent être ouverts. Nous utiliserons ufw
, le pare-feu par défaut d'Ubuntu. Exécutez ces commandes sur chacun des trois nœuds.
# Autoriser le trafic SSH
sudo ufw allow ssh
# Ports requis pour le control-plane K3s (entre les serveurs)
sudo ufw allow 6443/tcp # Kubernetes API Server
sudo ufw allow 2379/tcp # etcd client requests
sudo ufw allow 2380/tcp # etcd peer traffic
sudo ufw allow 10250/tcp # Kubelet API
sudo ufw allow 10251/tcp # Kube-scheduler
sudo ufw allow 10252/tcp # Kube-controller-manager
# Ports requis pour le CNI (VXLAN)
sudo ufw allow 8472/udp
# Ports pour l'accès à Rancher UI
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Activer le pare-feu
sudo ufw enable
Avertissement : La configuration du pare-feu est critique. Si les nœuds ne peuvent pas communiquer sur ces ports, le cluster ne pourra pas se former correctement. Assurez-vous également que votre infrastructure cloud (si applicable) autorise ce trafic via les groupes de sécurité.
II. Déploiement du Cluster Kubernetes de Management avec K3s
K3s est une distribution Kubernetes légère et certifiée par la CNCF, développée par SUSE/Rancher. Elle est parfaite pour créer le cluster qui hébergera Rancher. Nous allons créer un cluster HA avec un etcd embarqué.
A. Installation du Premier Nœud (Serveur)
Sur rancher-node1
, exécutez la commande suivante pour initialiser le cluster.
Bash
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--cluster-init --tls-san rancher.votre-domaine.com" sh -
Décortiquons cette commande :
curl ... | sh -
: Télécharge et exécute le script d'installation de K3s.INSTALL_K3S_EXEC="..."
: Passe des arguments au binaire K3s.--cluster-init
: Indique que ce nœud doit initialiser un nouveau cluster etcd.--tls-san rancher.votre-domaine.com
: Ajoute notre FQDN public à la liste des noms alternatifs du sujet (SAN) du certificat TLS de l'API Kubernetes. C'est obligatoire pour que Rancher etkubectl
puissent accéder au cluster de manière sécurisée depuis l'extérieur. Remplacezrancher.votre-domaine.com
par votre vrai FQDN.
B. Récupération du Token de Jonction
Pour que les autres nœuds puissent rejoindre le cluster, ils ont besoin d'un secret partagé (token). Sur rancher-node1
, récupérez ce token.
Bash
sudo cat /var/lib/rancher/k3s/server/node-token
Copiez cette valeur (par exemple : K10abcdef123456...::server:ghijkl7890...
). Vous en aurez besoin à l'étape suivante.
C. Ajout des Nœuds Serveurs Additionnels
Maintenant, sur rancher-node2
et rancher-node3
, exécutez la commande suivante pour qu'ils rejoignent le cluster en tant que nœuds serveurs, assurant ainsi la haute disponibilité du plan de contrôle.
# Remplacez <TOKEN> par la valeur copiée et <IP_PREMIER_NOEUD> par l'IP de rancher-node1
curl -sfL https://get.k3s.io | K3S_URL=https://192.168.1.101:6443 K3S_TOKEN="<TOKEN>" INSTALL_K3S_EXEC="--server --tls-san rancher.votre-domaine.com" sh -
K3S_URL
: Indique à ce nœud où se trouve l'API du cluster à rejoindre.K3S_TOKEN
: Le secret partagé que nous avons récupéré.--server
: Spécifie que ce nœud doit également être un serveur du plan de contrôle.
D. Validation du Cluster K3s
De retour sur votre machine locale, nous allons configurer kubectl
pour qu'il pointe vers notre nouveau cluster.
Vérifiez l'état des nœuds : Utilisez ce fichier de configuration pour interroger le cluster.
export KUBECONFIG=~/.kube/config-rancher-ha
kubectl get nodes -o wide
Vous devriez voir vos trois nœuds avec le statut Ready
.(Capture d'écran mentionnée : une sortie de terminal montrant les 3 nœuds rancher-node1
, rancher-node2
, rancher-node3
avec le statut Ready
)
Adaptez et copiez le fichier : Copiez le contenu de ce fichier dans un nouveau fichier sur votre machine locale, par exemple ~/.kube/config-rancher-ha
. Vous devez changer l'adresse du serveur : remplacez 127.0.0.1
par le FQDN public ou l'adresse IP de rancher-node1
.Exemple de ~/.kube/config-rancher-ha
:
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: ...
server: https://rancher.votre-domaine.com:6443 # <-- MODIFIEZ CECI
name: default
contexts:
- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
user:
client-certificate-data: ...
client-key-data: ...
Récupérez le fichier kubeconfig : Sur rancher-node1
, le fichier de configuration a été créé. Affichez-le.
sudo cat /etc/rancher/k3s/k3s.yaml
III. Installation et Configuration de Rancher
Notre cluster Kubernetes de management est prêt. Il est temps d'y installer Rancher.
A. Ajout du Dépôt Helm de Rancher
Sur votre machine locale, ajoutez le dépôt Helm officiel de Rancher.
helm repo add rancher-latest https://releases.rancher.com/server-charts/latest
helm repo update
B. Installation du Cert-Manager
Rancher dépend de cert-manager
pour émettre et gérer les certificats TLS, y compris ceux pour sa propre interface utilisateur. C'est un prérequis non négociable.
Vérifiez l'installation de cert-manager : Attendez que les pods soient tous en état Running
.
kubectl get pods --namespace cert-manager
Installez cert-manager :
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.15.1
Ajoutez le dépôt Helm de cert-manager :
helm repo add jetstack https://charts.jetstack.io
helm repo update
Installez les CRDs (Custom Resource Definitions) de cert-manager :
kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.15.1/cert-manager.crds.yaml
C. Installation de Rancher via Helm
C'est l'étape finale. Nous allons déployer Rancher en spécifiant notre FQDN et en activant la haute disponibilité.
helm install rancher rancher-latest/rancher \
--namespace cattle-system \
--create-namespace \
--set hostname=rancher.votre-domaine.com \
--set replicas=3 \
--set bootstrapPassword=un-mot-de-passe-tres-solide
Analyse des options :
--namespace cattle-system --create-namespace
: Rancher sera installé dans son propre namespace,cattle-system
.--set hostname=rancher.votre-domaine.com
: Crucial. C'est le FQDN que vous avez configuré. Rancher l'utilisera pour configurer son Ingress et ses certificats.--set replicas=3
: Nous demandons à Helm de déployer 3 instances du pod Rancher, une sur chaque nœud, pour la haute disponibilité.--set bootstrapPassword=...
: Définit le mot de passe initial pour l'utilisateuradmin
de Rancher. Choisissez un mot de passe complexe et notez-le en lieu sûr.
D. Validation de l'Installation Rancher
L'installation peut prendre plusieurs minutes, le temps de télécharger les images et de démarrer les conteneurs.
Suivez la progression des pods :
kubectl -n cattle-system get pods --watch
Attendez que les 3 pods rancher-xxxxxxxx
soient à l'état Running
et que le statut READY
indique 1/1
.
(Capture d'écran mentionnée : une sortie de terminal montrant les 3 pods rancher en cours d'exécution et les pods de fleet et webhook)
E. Première Connexion et Configuration
- Accédez à l'interface web : Ouvrez votre navigateur et allez à l'URL
https://rancher.votre-domaine.com
. Vous devriez être accueilli par la page de connexion de Rancher. Le navigateur devrait indiquer que la connexion est sécurisée, car Rancher aura utilisécert-manager
pour obtenir un certificat TLS valide (par défaut, auto-signé viamkcert
). - Connectez-vous : Le nom d'utilisateur est
admin
et le mot de passe est celui que vous avez défini avecbootstrapPassword
. - Définissez un nouveau mot de passe : Rancher vous forcera immédiatement à changer ce mot de passe de bootstrap.
- Confirmez l'URL du serveur Rancher : Rancher vous demandera de confirmer l'URL du serveur. Elle devrait déjà être pré-remplie avec votre FQDN. Validez.
Félicitations ! Vous êtes maintenant sur le tableau de bord principal de votre instance Rancher en haute disponibilité.

Pour aller plus loin
Votre plateforme de management Rancher est maintenant opérationnelle. Voici les prochaines étapes logiques pour en tirer pleinement parti :
- Importer un cluster existant : Allez dans la section "Cluster Management" et utilisez l'option "Import Existing" pour placer un de vos clusters GKE, EKS, AKS ou on-premise sous la gestion de Rancher.
- Créer un cluster RKE2/K3s : Utilisez l'interface de Rancher pour provisionner de nouveaux clusters Kubernetes directement sur des VMs (via les node drivers) ou sur des serveurs existants.
- Explorer le catalogue d'applications : Le catalogue d'applications intégré (basé sur Helm) vous permet de déployer des centaines d'applications (bases de données, outils de CI/CD, monitoring) en quelques clics sur n'importe quel cluster géré.
- Configurer l'Authentification : Intégrez Rancher avec votre fournisseur d'identité d'entreprise comme Active Directory, LDAP, Okta, ou Keycloak pour une gestion centralisée des accès utilisateurs.
- Mettre en place un Load Balancer : Pour une véritable production, mettez en place un Load Balancer externe (comme MetalLB pour le on-premise, ou un ELB/ALB sur le cloud) qui répartira le trafic sur les ports 80/443 de vos trois nœuds.
Conclusion
Nous avons parcouru un chemin complet, depuis la préparation de serveurs Ubuntu 24.04 LTS jusqu'au déploiement d'une instance Rancher 2.9.x entièrement fonctionnelle et en haute disponibilité. En nous appuyant sur K3s pour le cluster de management, nous avons créé une base à la fois légère, robuste et conforme aux meilleures pratiques de l'industrie.
Vous disposez désormais d'un outil puissant pour standardiser et simplifier la gestion de votre parc Kubernetes. L'investissement initial dans une installation propre et en haute disponibilité vous fera gagner un temps précieux et réduira considérablement la complexité opérationnelle à long terme. La centralisation offerte par Rancher est la clé pour scaler vos opérations de conteneurs de manière sécurisée et efficace.