RKE (Rancher Kubernetes Engine) est un outil CLI développé par Rancher (SUSE) pour installer et gérer des clusters Kubernetes on-premises. Il configure les nœuds via SSH et utilise Docker comme runtime de conteneurs. RKE v1 est aujourd'hui en maintenance active : il reçoit les correctifs de sécurité mais plus de nouvelles fonctionnalités. Les nouveaux déploiements doivent utiliser RKE2.
Idéal pour : maintenir des clusters RKE1 existants, environnements Rancher legacy, migrations progressives vers RKE2.
Informations essentielles
Origine : Rancher / SUSE (États-Unis) · Licence : Apache 2.0 · Architectures : x86_64, ARM64
Liens : Documentation · GitHub · Releases
Support : RKE1 est en maintenance active - correctifs de sécurité uniquement. Migration vers RKE2 recommandée. Consulter la matrice de support Rancher.
Stack par défaut
| Composant | Valeur |
|---|---|
| Runtime | Docker (requis sur chaque nœud) |
| CNI | Canal (Flannel + Calico network policies) |
| Ingress controller | nginx-ingress |
| DNS | CoreDNS |
| Monitoring | Optionnel via Rancher |
Docker est requis sur tous les nœuds. Depuis Kubernetes 1.24, le dockershim a été retiré de l'upstream - RKE intègre son propre shim.
Prérequis
Sur chaque nœud
- Linux 64-bit (Ubuntu 20.04/22.04, RHEL 7/8, CentOS 7/8)
- Docker installé et actif
- Accès SSH depuis la machine exécutant RKE
- Utilisateur avec droits sudo ou root
Ports à ouvrir
| Port | Protocole | Rôle |
|---|---|---|
| 6443 | TCP | API server |
| 2379-2380 | TCP | etcd |
| 10250 | TCP | kubelet |
| 10254 | TCP | ingress-nginx health |
| 8472 | UDP | Canal/Flannel VXLAN |
Installer Docker sur les nœuds
# Ubuntu
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
sudo systemctl enable --now docker
Installation de RKE
# Télécharger le binaire RKE
curl -LO https://github.com/rancher/rke/releases/latest/download/rke_linux-amd64
chmod +x rke_linux-amd64
sudo mv rke_linux-amd64 /usr/local/bin/rke
rke --version
Déployer un cluster
1. Générer le fichier de configuration
rke config --name cluster.yml
# Répond aux questions interactives (IPs, rôles, SSH key…)
2. Fichier cluster.yml (exemple)
# cluster.yml
nodes:
- address: 192.168.1.10
user: ubuntu
role:
- controlplane
- etcd
ssh_key_path: ~/.ssh/id_rsa
- address: 192.168.1.11
user: ubuntu
role:
- worker
ssh_key_path: ~/.ssh/id_rsa
- address: 192.168.1.12
user: ubuntu
role:
- worker
ssh_key_path: ~/.ssh/id_rsa
kubernetes_version: v1.27.16-rancher1-1
network:
plugin: canal
services:
etcd:
backup_config:
enabled: true
interval_hours: 12
retention: 6
3. Déployer
rke up --config cluster.yml
RKE génère kube_config_cluster.yml - le kubeconfig du cluster.
export KUBECONFIG=$(pwd)/kube_config_cluster.yml
kubectl get nodes
Sauvegarde et restauration etcd
# Snapshot manuel
rke etcd snapshot-save --config cluster.yml --name backup-$(date +%Y%m%d)
# Lister les snapshots
rke etcd snapshot-list --config cluster.yml
# Restaurer depuis un snapshot
rke etcd snapshot-restore --config cluster.yml --name backup-20240115
Mise à jour
# 1. Mettre à jour la version dans cluster.yml
# kubernetes_version: v1.28.x-rancher1-x
# 2. Appliquer
rke up --config cluster.yml
# 3. Vérifier
kubectl get nodes
Ne jamais sauter de version mineure. Consulter les notes de release RKE pour la compatibilité.
Troubleshooting
Connexion SSH échouée
# Tester la connexion SSH manuellement
ssh -i ~/.ssh/id_rsa ubuntu@<ip-nœud>
# Vérifier les droits Docker sur le nœud
docker ps
Nœud NotReady
kubectl describe node <nom>
# Sur le nœud : vérifier Docker
sudo systemctl status docker
sudo journalctl -u docker -n 50
Logs des composants
# API server (tourne dans Docker sur le control plane)
docker logs kube-apiserver
docker logs etcd
docker logs kube-controller-manager
Recréer un nœud
# Retirer le nœud du cluster.yml, puis :
rke up --config cluster.yml
Commandes utiles
# Déployer / mettre à jour le cluster
rke up --config cluster.yml
# Vérifier l'état du cluster
rke up --check
# Retirer un cluster
rke remove --config cluster.yml
# Snapshot etcd
rke etcd snapshot-save --config cluster.yml --name <nom>
# Certificats
rke cert rotate --config cluster.yml
# Version
rke --version
Ressources
- Documentation : https://rke.docs.rancher.com
- GitHub : https://github.com/rancher/rke
- Releases : https://github.com/rancher/rke/releases
- Migration vers RKE2 : https://docs.rke2.io/install/upgrade