Allgemeine Informationen
Anleitung | |
---|---|
Informationen | |
Betriebssystem | Alle |
Service | Cloudcomputing |
Interessant für | Angestellte, Studierende und Gäste |
HilfeWiki des ZIM der Uni Paderborn |
This article is a stub. You can help us by expanding it. |
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:
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/