Installation et Configuration d'un Cluster Rancher

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 et helm installés pour interagir avec le cluster.
  • Accès :
    • Un accès sudo ou root sur chaque nœud.

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 et kubectl puissent accéder au cluster de manière sécurisée depuis l'extérieur. Remplacez rancher.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'utilisateur admin 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

  1. 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é via mkcert).
  2. Connectez-vous : Le nom d'utilisateur est admin et le mot de passe est celui que vous avez défini avec bootstrapPassword.
  3. Définissez un nouveau mot de passe : Rancher vous forcera immédiatement à changer ce mot de passe de bootstrap.
  4. 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.

Vous vous êtes abonné avec succès à CodeClan
Parfait ! Ensuite, complétez le paiement pour obtenir un accès complet à tout le contenu premium.
Erreur ! Impossible de s'inscrire. Lien invalide.
Bienvenue ! Vous vous êtes connecté avec succès.
Erreur ! Impossible de se connecter. Veuillez réessayer.
Succès ! Votre compte est entièrement activé, vous avez maintenant accès à tout le contenu.
Erreur ! Le paiement Stripe a échoué.
Succès ! Vos informations de facturation sont mises à jour.
Erreur ! La mise à jour des informations de facturation a échoué.