Cloudcomputing Kurzanleitung - k3s-Cluster (Kubernetes)

ZIM HilfeWiki - das Wiki

Allgemeine Informationen
Anleitung
Informationen
BetriebssystemAlle
ServiceCloudcomputing
Interessant fürAngestellte, Studierende und Gäste
HilfeWiki des ZIM 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?[Bearbeiten | Quelltext bearbeiten]

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

Erstellen einer Ubuntu Instanz[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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[Bearbeiten | Quelltext bearbeiten]

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: zim@uni-paderborn.de

Das Notebook-Café ist die Benutzerberatung des ZIM - Sie finden uns in Raum I0.401

Wir sind zu folgenden Zeiten erreichbar:


Mo-Do Fr
Vor-Ort-Support 08:30 - 16:00 08:30 - 14:00
Telefonsupport 08:30 - 16:00 08:30 - 14:00


Das ZIM:Servicecenter Medien auf H1 hat aktuell zu folgenden Zeiten geöffnet:

Mo-Do Fr
08:00 - 16:00 08:00 - 14:30
Cookies helfen uns bei der Bereitstellung des ZIM HilfeWikis. Bei der Nutzung vom ZIM HilfeWiki werden die in der Datenschutzerklärung beschriebenen Cookies gespeichert.