Cloudcomputing Kurzanleitung - k3s-Cluster (Kubernetes): Unterschied zwischen den Versionen

IMT HilfeWiki - das Wiki
(Die Seite wurde neu angelegt: „{{article |type=Anleitung |service=Service:Cloudcomputing |targetgroup=Angestellte,Studierende,Gäste |hasdisambig=Nein }} {{template caller‏‎ |marker=Stub…“)
 
 
Zeile 8: Zeile 8:
 
|marker=Stub
 
|marker=Stub
 
}}
 
}}
Kurzer Einleitungstext
+
In dieser Anleitung erfahren Sie, wie Sie einen k3s-Cluster auf einer Instanz des Cloudcomputing-Dienstes der Universität erstellen.
 +
<bootstrap_alert color=info>Dieser Artikel erfordert grundlegende Erfahrung im Umgang mit Linux.
 +
</bootstrap_alert>
  
 
== Was ist zu tun? ==
 
== Was ist zu tun? ==
* Stichpunktartige Auflistung
+
* eine Ubuntu Instanz erstellen
* aller Arbeitsschritte
+
* k3s installieren
 +
* HELM installieren
 +
* Agenten hinzufügen
  
== Schritt-für-Schritt Anleitung ==
+
== Erstellen einer Ubuntu Instanz ==
Jeder Arbeitschritt wird hier genau erklärt und ggf. mit Screenshots hinterlegt.
+
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 [https://hilfe.uni-paderborn.de/Cloudcomputing_Quick-Start QuickStartGuide].
  
=== Dabei sollten ===
+
'''Vorraussetzung ist ein vorhandnes Schlüsselpaar!''' Falls Sie noch kein Schlüsselpaar angelegt haben, finden Sie [https://hilfe.uni-paderborn.de/Cloudcomputing_Quick-Start#Schl.C3.BCsselpaare hier] eine Anleitung, wie Sie ein Schlüsselpaar erstellen.
Unterschritte
 
  
=== in sinnvolle Abschnitte ===
+
1. Erstellen Sie einen Datenträger unter ''Datenträger/Datenträger'' mit den folgenden Einstellungen:
unterteilt werden
 
  
=== dazu nutzt man dann ===
+
[[Datei:Screenshot_OpenStack_Datentraeger_k3s.png |mini|200px|none| Datenträger erstellen]]
Überschriften dritter Ordnung
 
  
=== Nebenbei ===
+
2. Legen Sie unter ''Netzwerk/Sicherheitsgruppen'' eine neue Sicherheitsgruppe an mit dem Namen ''kubernetes'' an.
* Hier nochmal der Hinweis auf den Menüpunkt "Mitmachen" links im Hauptmenü, hinter dem sich wertvolle Anleitungen und Hinweise verstecken.
+
Erstellen Sie eine neue Sicherheitsregel für den Port des SSH-Dienstes - hier bietet OpenStack bereits eine Standardregel.
* Erfahrene Redakteure finden unterhalb der "Kategorie:Utility templates" interessantes Handwerkszeug für fortgeschrittene Textmanipulationen.
+
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.
  
== Siehe auch ==
+
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.
Weitere interessante Artikel zum gleichen Themenfeld verlinken
+
 
 +
3. Erstellen Sie eine neue Instanz unter ''Compute/Instanzen'' über den Button ''Instanz starten''. Vergeben Sie den Namen <code>Ubuntu-20.04-k3s-Server</code>.
 +
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 <code>medium</code> 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:
 +
<source>sudo apt update && sudo apt upgrade -y</source>
 +
 
 +
Um k3s auf Ihrer Instanz zu installieren brauchen wir nur folgenden Befehl eingeben:
 +
<source>curl -sfL https://get.k3s.io | sh -</source>
 +
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 <source>mkdir -p ~/.kube/config && sudo cp /etc/rancher/k3s/k3s.yaml ~/.kube/config</source>
 +
und geben den Benutzer Lese- & Schreibrechte auf die Datei. <source>sudo chown ubuntu:ubuntu ~/.kube/config/k3s.yaml</source> Anschließend verbieten wir allen anderen Benutzern und Gruppen den Zugriff auf das Verzeichnis.
 +
<source>sudo chmod go-r ~/.kube/config</source>
 +
 
 +
Erstellen Sie die Umgebungsvariable ''KUBECONFIG'' und geben als Wert den Pfad zur Konfigurationsdatei an.
 +
<source>export KUBECONFIG=~/.kube/config/k3s.yaml</source>
 +
 
 +
Testen Sie anschließend ob die Konfiguration erfolgreich war, indem Sie <code>kubectl get nodes</code> eingeben.
 +
Sie sollten folgende Ausgabe sehen:
 +
<source>
 +
ubuntu@ubuntu-20:~$ kubectl get nodes
 +
NAME        STATUS  ROLES                  AGE  VERSION
 +
ubuntu-20  Ready    control-plane,master  15m  v1.20.7+k3s1
 +
</source>
 +
 
 +
Weitere Information zur Konfiguration und Benutzung des Cluster finden Sie in der [https://rancher.com/docs/k3s/latest/en/ 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 [https://artifacthub.io/packages/search?page=1&kind=0 artifacthub.io].
 +
 
 +
Um Helm zu installieren führen Sie diese drei Befehle nacheinander in der Kommandozeile aus:
 +
<source lang='bash'>
 +
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
 +
</source>
 +
 
 +
Der Helm Packetmanager ist nun erfolgreich installiert. Eine kurze Einführung bietet die [https://helm.sh/docs/intro/using_helm/ 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:
 +
<source>sudo cat /var/lib/rancher/k3s/server/node-token</source>
 +
 
 +
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: <code>sudo bash -c "echo k3s-agent-1 > /etc/hostname"</code>.
 +
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 <code>sudo reboot</code> 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.
 +
<source>curl -sfL https://get.k3s.io | K3S_URL=https://[IP-Adresse-Server]:6443 K3S_TOKEN=[Node-Token] sh -</source>
 +
 
 +
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:
 +
<source>kubectl get nodes</source>
 +
Der Agent sollte nun in der Ausgabe mit aufgelistet werden.
 +
 
 +
 
 +
Weitere Informationen zu k3s und Kubernetes finden Sie unter folgenden Links:<br>
 +
[https://rancher.com/docs/k3s/latest/en/ https://rancher.com/docs/k3s/latest/en/]<br>
 +
[https://rancher.com/docs/k3s/latest/en/quick-start/ https://rancher.com/docs/k3s/latest/en/quick-start/]<br>
 +
[https://kubernetes.io/de/docs/home/ https://kubernetes.io/de/docs/home/]

Aktuelle Version vom 18. Juni 2021, 10:34 Uhr

Allgemeine Informationen
Anleitung
Informationen
BetriebssystemAlle
ServiceCloudcomputing
Interessant fürAngestellte, 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?[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: imt@uni-paderborn.de

Das Notebook-Café ist die Benutzerberatung des IMT

Das IMT:Notebook-Café (Raum I0.401) bietet in der vorlesungsfreien Zeit nur eingeschränkten Support

Mo Di-Do Fr
Vor-Ort-Support - 09-13 Uhr -
Telefonsupport 08:30-13 Uhr & 13:30-15 Uhr 08:30-13 Uhr

Das IMT:Servicecenter Medien auf H1 hat aktuell von Montag bis Freitag von 08:00-13:00 Uhr geöffnet.


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