RKE2 Installation

Die Rancher Kubernetes Engine 2 ermöglicht die Installation und Konfiguration eines Kubernetes Clusters durch wenige Befehle.

Im folgenden wird die Installation unter einer aktuellen Version von Rocky Linux 9 vorgestellt.

Da das System selber Firewall - Regeln setzt sollte eine zusätzliche Firewall Konfiguration deaktiviert sein.

In der Regel läuft auf einem neu installierten Rocky Linux der firewalld.

sudo systemctl disable --now firewalld.service
sudo systemctl mask firewalld.service

Der Hostname der Node sollte korrekt gesetzt sein, oder durch hostnamectl gesetzt werden.

sudo hostnamectl set-hostname node150.train.mylinuxtime.de

Die folgenden Tools werden von RKE2 je nach konfigurierter Umgebung benutzt und sollten installiert sein.

sudo yum install -y epel-release
sudo yum install -y vim tar git libiscsi-utils iscsi-initiator-utils nfs-utils iptables
sudo systemctl enable --now iscsid

Da das RKE2 einige der in einer Standard - Installation vorherrschenden Limit überschreitet müssen für inotify die Limits erhöht werden.

sudo tee /etc/sysctl.d/20-inotify.conf <<HERE
fs.inotify.max_user_instances=8192
fs.inotify.max_user_watches=524288
HERE
sudo sysctl --system

Die Installation der RKE2 Umgebung kann durch ein Script oder die Installation des Binaries von GitHub durchgeführt werden.

Das Script installiert neben dem Binary auch einige nützliche Scripte über die alle Prozesse des RKE2 gestoppt oder eine Installation entfernt werden kann.

Bei unterstützten Plattformen - wie Rocky Linux - wird zusätzlich ein Repository für den Paketmanager installiert über den ein direktes Update per yum update möglich ist.

curl -sfL https://get.rke2.io | sudo sh -

Zusätzlich wird das Kommando kubectl für die Verwaltung des Clusters benötigt. Der folgende Aufruf installiert den Befehl direkt nach /usr/local/bin. Um direkt per bash verfügbar zu sein wird auch die Variable PATH erweitert.

sudo curl -Lo /usr/local/bin/kubectl https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
sudo chmod +x /usr/local/bin/kubectl
echo "PATH=\"/usr/local/bin:\$PATH\"" | sudo tee -a /root/.bashrc | tee -a $HOME/.bashrc
source $HOME/.bashrc

Falls dem RKE2 keine weiteren Parameter angegeben werden sollen, kann der Dienst aktiviert und gestartet werden.

sudo systemctl enable --now rke2-server.service

Die für den kubectl benötigte Konfiguration kann direkt unter .kube/config im Homeverzeichnis des aktuellen Benutzers und dem von root zur Verfügung gestellt werden.

sudo mkdir /root/.kube
sudo ln -s /etc/rancher/rke2/rke2.yaml /root/.kube/config
mkdir $HOME/.kube
sudo cp /etc/rancher/rke2/rke2.yaml $HOME/.kube/config
sudo chown $USER: $HOME/.kube/config
chmod 0600 $HOME/.kube/config

Nach wenigen Minuten sollte die neue RKE2 Node zur Verfügung stehen.

user@linux $ kubectl get nodes
NAME                           STATUS   ROLES                       AGE     VERSION
node150.train.mylinuxtime.de   Ready    control-plane,etcd,master   2m29s   v1.28.11+rke2r1