Cookies helfen uns bei der Bereitstellung des IMT HilfeWikis. Bei der Nutzung vom IMT HilfeWiki werden die in der Datenschutzerklärung beschriebenen Cookies gespeichert.Weitere Informationen

Cloudcomputing Kurzanleitung - k3s-Cluster (Kubernetes)

IMT HilfeWiki - das Wiki
Wechseln zu:Navigation, Suche
Anleitung
Allgemeine Informationen
Informationen
Betriebssystem Alle
Service Cloudcomputing
Interessant für Angestellte, Studierende und Gäste
HilfeWiki des IMT der Uni Paderborn
no displaytitle found: Cloudcomputing Kurzanleitung - k3s-Cluster (Kubernetes)

In dieser Anleitung erfahren Sie, wie Sie einen k3s-Cluster auf einer Instanz des Cloudcomputing-Dienstes der Universität erstellen.

Was ist zu tun?

  • eine Ubuntu Instanz erstellen
  • k3s installieren
  • HELM installieren
  • Agenten hinzufügen

Erstellen einer Ubuntu Instanz

Zunächst benötigen Sie eine Instanz, auf welcher Sie k3a bereitstellen können - für dieses Tutorial verwenden wir Ubuntu 20.04. An dieser Stelle werden wir nur eine sehr kurze Anleitung zur Erstellung einer Instanz geben - eine ausführlichere Anleitung finden Sie im Bereich QuickStartGuide.

Vorraussetzung ist ein vorhandnes Schlüsselpaar! Falls Sie noch kein Schlüsselpaar angelegt haben, finden Sie hier eine Anleitung, wie Sie ein Schlüsselpaar erstellen.

1. Erstellen Sie einen Datenträger unter Datenträger/Datenträger mit den folgenden Einstellungen:

Datenträger erstellen

2. Legen Sie unter Netzwerk/Sicherheitsgruppen eine neue Sicherheitsgruppe an mit dem Namen kubernetes an. Erstellen Sie eine neue Sicherheitsregel für den Port des SSH-Dienstes - hier bietet OpenStack bereits eine Standardregel. Falls Sie den k3s-Server um weitere Agenten erweitern möchten, müssen Sie auch noch den Port 6443 freigeben, da der k3s-Server darüber mit seinen Agenten kommuniziert.

Beachten Sie bitte, falls Sie über den k3s-Cluster einen Dienst bereitstellen wollen, dass Sie auch die Ports für diesen Dienst freigeben, um ihn später zu erreichen.

3. Erstellen Sie eine neue Instanz unter Compute/Instanzen über den Button Instanz starten. Vergeben Sie den Namen Ubuntu-20.04-k3s-Server. Als Quelle wählen Sie den zuvor erstellen Datenträger aus. Die Wahl der Variante hängt von Ihren Anforderungen ab - für dieses Tutorial wählen wir medium aus. Falls Sie bereits ein Netzwerk angelegt haben, können Sie die Instanz diesem zuordnen. Unter Sicherheitsgruppen ordnen Sie die zuvor erstellte Sicherheitsgruppe der Instanz zu. Ihr Schlüsselpaar sollte automatisch zur Instanz hinzugefügt worden sein. Klicken Sie anschließend auf Instanz starten.

4. Im Kontextmenü der Instanz können Sie dieser eine Floating IP zuweisen, damit diese von Aussen erreichbar ist.

k3s Server installieren

Ein k3s-Cluster besteht aus mindestens einem Linuxhost als Server (k3s-Serverprozess) und kann beliebig um weitere Knoten (k3s-Agentenprozesse) erweitert werden.

Loggen Sie sich zunächst per SSH auf der Erstellten Ubuntu Instanz ein und installieren ggf. verfügbare Updates:

sudo apt update && sudo apt upgrade -y

Um k3s auf Ihrer Instanz zu installieren brauchen wir nur folgenden Befehl eingeben:

curl -sfL https://get.k3s.io | sh -

Dieser lädt automatisch die aktuellste Version von k3s herunter und installiert diese.

Anschließend kopieren Sie die, bei der Installation erzeugte Konfigurationsdatei in das Homeverzeichnis des aktiven Benutzers
mkdir -p ~/.kube/config && sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
und geben den Benutzer Lese- & Schreibrechte auf die Datei.
sudo chown ubuntu:ubuntu ~/.kube/config/k3s.yaml
Anschließend verbieten wir allen anderen Benutzern und Gruppen den Zugriff auf das Verzeichnis.
sudo chmod go-r ~/.kube/config

Erstellen Sie die Umgebungsvariable KUBECONFIG und geben als Wert den Pfad zur Konfigurationsdatei an.

export KUBECONFIG=~/.kube/config/k3s.yaml

Testen Sie anschließend ob die Konfiguration erfolgreich war, indem Sie kubectl get nodes eingeben. Sie sollten folgende Ausgabe sehen:

ubuntu@ubuntu-20:~$ kubectl get nodes
NAME        STATUS   ROLES                  AGE   VERSION
ubuntu-20   Ready    control-plane,master   15m   v1.20.7+k3s1

Weitere Information zur Konfiguration und Benutzung des Cluster finden Sie in der k3s Dokumentaion.

Installation des Kubernetes Packetmanagers HELM

Helm ist einer der populärsten Packetmanager in der Kubernetes Umgebung. Mithilfe von Helm können Bauanleitungen, sogenannte Helmcharts heruntergeladen und ausgeführt werden. Eine Auswahl verfügbarer Helmcharts finden Sie auf der Plattform artifacthub.io.

Um Helm zu installieren führen Sie diese drei Befehle nacheinander in der Kommandozeile aus:

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

Der Helm Packetmanager ist nun erfolgreich installiert. Eine kurze Einführung bietet die Helm Dokumentation selbst.

Einen k3s-CLuster um weitere Agenten erweitern

Damit Sie einen neuen Agenten am k3s-Server anmelden können, benötige Sie zunächst den Note-Token des Servers. Diesen geben Sie mit folgendem Befehl aus:

sudo cat /var/lib/rancher/k3s/server/node-token

Erzeugen Sie eine neue Instanz mit Ihren gewünschten Einstellungen und verbinden Sie sich mit dieser per SSH. Achten Sie bitte darauf, dass der Port 6443 des Server und des neuen Agenten freigegeben ist, damit diese kommunizieren können.

Da alle durch ein Abbild erzeugten Instanzen den selben Hostnamen besitzen muss dieser zuerst abgeändert werden, damit der k3s-Server diese unterscheiden kann. Geben Sie dazu folgenden Befehl ein: sudo bash -c "echo k3s-agent-1 > /etc/hostname". Der Hostname der Instanz wird nun auf k3s-agent-1 geändert - hier können Sie einen beliebigen Namen eintragen. Starten Sie die Instanz mit sudo reboot neu und verbinden Sie sich wieder per SSH.

Um den Agenten nun auf dem System zu installieren geben Sie folgenden Befehl ein - ersetzten Sie IP-Adresse-Server und Node-Token mit den Daten Ihres k3s-Servers.

curl -sfL https://get.k3s.io | K3S_URL=https://[IP-Adresse-Server]:6443 K3S_TOKEN=[Node-Token] sh -

Der k3s Dienst wird nun auf der Instanz installiert und automatisch als Agent an den Server gemeldet. Um zu Überprüfen, ob die Anmeldung geklappt hat geben Sie auf dem k3s-Server ein:

kubectl get nodes

Der Agent sollte nun in der Ausgabe mit aufgelistet werden.


Weitere Informationen zu k3s und Kubernetes finden Sie unter folgenden Links:
https://rancher.com/docs/k3s/latest/en/
https://rancher.com/docs/k3s/latest/en/quick-start/
https://kubernetes.io/de/docs/home/


Bei Fragen oder Problemen wenden Sie sich bitte telefonisch oder per E-Mail an uns:

Tel. IT: +49 (5251) 60-5544 Tel. Medien: +49 (5251) 60-2821 E-Mail: imt@uni-paderborn.de

Der Servicepoint auf N5 bleibt geschlossen.

Das IMT:Notebook-Café (Raum I0.401) bietet derzeit eingeschränkten Support und hat Montags bis Donnerstags von 10:00 - 14:00 geöffnet. Bitte beachten Sie die derzeit geltenden Hygienebestimmungen.

Das IMT:Servicecenter Medien auf H1 hat aktuell Montags bis Donnerstags von 9:00 - 13:00 Uhr und Freitags von 9:00 - 12:00 Uhr geöffnet.