Installation RKE2 Lab
TP : Cluster RKE2 sur VMs Vagrant
Ce TP vous guide de zéro jusqu'à un cluster Kubernetes (RKE2) à 2 nœuds : un master et un agent, tournant dans deux VMs Debian gérées par Vagrant/VirtualBox.
Déroulé :
- Installer Vagrant (sur votre poste)
- Installer VirtualBox (sur votre poste)
- Créer et démarrer les 2 VMs
- Installer RKE2 (master puis agent)
- Vérifier le cluster
Convention : les VMs Vagrant utilisent l'identifiantvagrant/ mot de passevagrant.
1. Installation de Vagrant
Choisissez le bloc correspondant à votre système. N'exécutez qu'un seul des deux.
Debian / Ubuntu
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install vagrant
Alma / RHEL
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
sudo yum -y install vagrant
Vérifier :
vagrant --version
2. Installation de VirtualBox
(Exemple pour Debian « bookworm ». Adaptez le nom de la distribution si besoin.)
wget -O- -q https://www.virtualbox.org/download/oracle_vbox_2016.asc | sudo gpg --dearmour -o /usr/share/keyrings/oracle_vbox_2016.gpg
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/oracle_vbox_2016.gpg] http://download.virtualbox.org/virtualbox/debian bookworm contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list
sudo apt update
sudo apt install virtualbox-7.0
3. Création et démarrage des VMs
On crée deux VMs identiques, chacune dans son propre dossier, avec une IP différente sur le même réseau privé (192.168.56.0/24).
| VM | Dossier | IP privée | Rôle prévu |
|---|---|---|---|
| VM 1 | vm1 |
192.168.56.10 |
master |
| VM 2 | vm2 |
192.168.56.11 |
agent |
VM 1 (master)
mkdir vm1 && cd vm1
vagrant init debian/bookworm64
Éditez le Vagrantfile :
nano ./Vagrantfile
Dans le bloc de configuration, ajoutez le réseau privé et augmentez la mémoire :
config.vm.network "private_network", ip: "192.168.56.10"
config.vm.provider "virtualbox" do |vb|
vb.memory = 4096 # 4 Go, ajustez selon votre poste
vb.cpus = 2
end
Démarrez la VM :
vagrant up
VM 2 (agent)
Même procédure, dans un autre dossier, avec l'IP .11 :
cd ..
mkdir vm2 && cd vm2
vagrant init debian/bookworm64
nano ./Vagrantfile
config.vm.network "private_network", ip: "192.168.56.11"
config.vm.provider "virtualbox" do |vb|
vb.memory = 4096
vb.cpus = 2
end
vagrant up
Commandes Vagrant utiles
Toutes ces commandes s'exécutent dans le dossier de la VM concernée :
vagrant ssh # se connecter à la VM
vagrant halt # arrêter la VM
vagrant destroy # détruire la VM (en cas d'erreur, pour repartir de zéro)
vagrant up # (re)démarrer la VM
4. Installation de RKE2
Connectez-vous à chaque VM avec vagrant ssh, puis passez en root (sudo -i) pour exécuter les commandes ci-dessous.
4.0 Prérequis (sur les DEUX machines)
sudo apt update
sudo apt install curl
4.1 Master
# Télécharger et installer RKE2 (rôle serveur)
curl -sfL https://get.rke2.io | sh -
systemctl enable rke2-server.service
# Définir le nom d'hôte
hostnamectl hostname bookwormmaster
# Préparer le fichier de configuration
mkdir -p /etc/rancher/rke2/
nano /etc/rancher/rke2/config.yaml
Contenu de config.yaml (master), remplacez <ip_du_noeud> par 192.168.56.10 :
node-ip: <ip_du_noeud>
node-external-ip: <ip_du_noeud>
cni: calico
Démarrer le service (= lance réellement l'installation du cluster) :
systemctl start rke2-server.service
Récupérer le token (nécessaire pour connecter l'agent, gardez-le de côté) :
cat /var/lib/rancher/rke2/server/node-token
Configurer kubectl sur le master :
mkdir -p ~/.kube/
sudo cp /etc/rancher/rke2/rke2.yaml ~/.kube/config
sudo chmod 644 ~/.kube/config
Le binairekubectlest installé par RKE2 dans/var/lib/rancher/rke2/bin/. Sikubectln'est pas trouvé, ajoutez ce dossier auPATH:export PATH=$PATH:/var/lib/rancher/rke2/bin
4.2 Agent
# Télécharger et installer RKE2 (rôle agent)
curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" sh -
systemctl enable rke2-agent.service
# Définir le nom d'hôte
hostnamectl hostname bookwormagent
# Préparer le fichier de configuration
mkdir -p /etc/rancher/rke2/
nano /etc/rancher/rke2/config.yaml
Contenu de config.yaml (agent), remplacez :
<ip_master>par192.168.56.10<token_donne_par_master>par le token récupéré à l'étape 4.1<ip_du_noeud>par192.168.56.11
server: https://<ip_master>:9345
token: <token_donne_par_master>
node-ip: <ip_du_noeud>
node-external-ip: <ip_du_noeud>
cni: calico
Démarrer le service :
systemctl start rke2-agent.service
5. Vérification du cluster
Depuis le master :
kubectl get nodes
Vous devez voir les deux nœuds (bookwormmaster et bookwormagent) passer à l'état Ready après une minute ou deux, le temps que le CNI (Calico) se déploie.
Annexe : dépannage : module noyau au démarrage de la VM
Si la VM refuse de démarrer avec une erreur de module noyau KVM/VirtualBox, appliquez le correctif suivant uniquement en cas d'erreur :
# Installer un noyau et ses en-têtes compatibles
sudo apt install linux-image-6.12.90+deb13-amd64 linux-headers-6.12.90+deb13-amd64
sudo apt update && sudo apt upgrade
# Recréer les liens symboliques attendus
cd /boot/
sudo ls -al
sudo rm ./initrddebian && sudo rm ./vmlinuzdebian
sudo ln -s ./initrd.img-6.12.90+deb13-amd64 ./initrddebian
sudo ln -s ./vmlinuz-6.12.90+deb13-amd64 ./vmlinuzdebian
sudo ls -al
# Recharger les modules et reconfigurer VirtualBox
sudo rmmod kvm_intel
sudo rmmod kvm
sudo /sbin/vboxconfig
Les numéros de version du noyau (6.12.90+deb13-amd64) sont donnés à titre d'exemple. Adaptez-les à ce qui est réellement disponible sur votre système (apt search linux-image).