In diesem Beispiel nutze ich ein RKE Cluster, mehr Informationen und zu den Unterschieden der einzelnen Rancher Produkte findest Du hier. So wie ich es verstanden habe, ist es aber von Vorteil, wenn man auf ein RKE2 Cluster setzt, welche die Funktionen von RKE und K3S vereint. Ich möchte Dir zeigen, wie Du auf Basis von Ubuntu Dein eigenes Kubernetes Cluster aufbauen kannst.
Inhaltsverzeichnis
1. Download Ubuntu Server 22.04
Lade Dir zunächst einmal die Ubuntu Server 22.04 ISO-Datei herunter. Den Link dazu findest Du hier.
Nach dem Download lädst Du die ISO-Datei auf Deinen Proxmox Host hoch.
2. Erstelle mehrere VM in Proxmox
Lege mehrere, mindestens aber drei virtuelle Maschinen (VM) in Proxmox, mit der so eben heruntergeladenen ISO-Datei, an.
2.1 Erstelle eine neue VM
Lege zunächst eine neue VM an.
Vergebe eine ID und einen Namen Deiner VM.
Wähle die ISO-Datei zur Installation aus.
An dem System nimmst Du keine Änderungen vor.
Füge eine Speichergröße hinzu, für die nachfolgenden Daten.
Wähle die Anzahl der CPU-Kerne aus. Ich vergebe hier nur zwei, da ich maximal acht zur Verfügung stehen habe.
Hier legst Du die Größe des Arbeitsspeichers fest. Für den Anfang vergebe ich 4 GB.
Die Netzwerkeinstellungen belasse ich, wie sie sind.
Jetzt ist es auch schon so weit, dass die VM-Einstellungen bestätigt und die VM gestartet werden kann.
2.2 Ubuntu Server Installation
Öffne nach dem Start Deiner VM die Konsole. Hier sollst Du zu Beginn Deine Sprache auswählen.
Danach wirst Du das Tastaturlayout angeben müssen, mit welchem Du den Server bedienen möchtest. Am einfachsten ist dies über den Button ‘Tastatur erkennen’. Hier wirst Du aufgefordert, die entsprechenden Buchstaben zu betätigen.
Bei der Auswahl, welcher Typ von Installation durchgeführt werden soll, wählst Du Ubuntu Server aus.
Hier kannst Du die Netzwerkverbindungen, IP-Adresse und weiteres ändern, wenn Du möchtest. Ansonsten kannst Du auch dies einfach bestätigen. Ich persönlich habe diese Einstellung gelassen, da ich im Anschluss in meiner Fritz!Box der VM eine feste IP-Adresse vergeben habe.
Falls Du über einen Proxy verfügst, dann trage diesen bitte jetzt ein. Wenn nicht, lasse das Feld einfach frei.
Die Konfiguration des Ubuntu-Archiv-Mirrors belasse ich bei dem vorgeschlagenem Server. Hier drüber empfängt Dein Ubuntu Server alle Pakete, welche für die Installation von Programmen und Updates erforderlich sind.
Die Speicherplatzkonfiguration kannst Du lassen wie sie ist, da es sich um eine VM handelt und Du keine weiteren Partitionen benötigst.
Im Anschluss bekommst Du diese nochmal genauer dargestellt und bestätigst sie einfach.
Vergebe nun Deiner VM einen Namen als auch Nutzer mit Passwort. Hierbei kann ‘Ihr Name:’ Node1, ‘Name Ihres Servers:’ node1 und der Benutzername node1 lauten. Dies kannst Du dann mit den anderen VM auch machen. Node2, Node3 und Node4.
Um Dich später auch per SSH mit Deiner VM verbinden zu können, soll ebenfalls der OpenSSH-Server mit installiert werden.
Die weiteren Server-Snaps ignorierst Du, da Du später selbst die benötigten Programme wie Docker installieren wirst.
Jetzt heißt es warten, bis die Installation vollständig abgeschlossen ist und die VM neu gestartet werden kann.
Wenn Du ‘Jetzt neustarten’ sagst, musst Du ebenfalls die ISO-Datei unter Hardware entfernen.
3. Initial Setup
3.1 Update und Upgrade durchführen
Zurück in der Konsole einmal Enter drücken und Du bekommst die Möglichkeit, nach einem Neustart, Dich anzumelden. Im Anschluss führst Du die folgenden zwei Befehle aus und bestätigst die Durchführungen mit einem J oder Y für Ja / Yes.
sudo apt-get update
sudo apt-get upgrade
Nach dem Upgrade wird Dir Folgendes oder ein ähnlich aus sehendes Fenster angezeigt. Hier wähle einmal alle Dienste aus und bestätige dies mit OK. Somit werden alle Dienste einmal neu gestartet und das System ist auf dem neusten Stand.
3.2 IP-Adressen festlegen / vergeben
Jetzt ist der Zeitpunkt, an dem Du alle Deine VM herunterfahren und in Deinem Router feste IP-Adressen vergeben kannst. Dies dient am Ende einer leichteren Administration der Instanzen und der Kommunikation untereinander.
4. Docker installieren von Rancher
Installiere Docker für Rancher wie folgt auf Deinen Instanzen. Falls es hier ein neueres Skript gibt, schaue dafür bitte hier vorbei.
curl https://releases.rancher.com/install-docker/20.10.sh | sh
sudo docker --version
5. Rancher installieren
Installiere Rancher selbst nur auf einem Deiner Knoten, der Dein Hauptknoten / Master werden soll.
sudo docker run --privileged -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/rancher
Nach der erfolgreichen Installation kannst Du Rancher unter der IP-Adresse von Deinem Knoten in Deinem Browser erreichen.
http://<IP-Adresse>
Wie Du der Ableitung entnehmen kannst, sollst Du zunächst ein docker ps ausführen, damit alle Deine aktuell laufenden Container mit angezeigt werden.
Im Anschluss daran sollst Du in den Logs des jeweiligen Containers nach dem Bootstrap Password suchen, welches bei der Installation des Containers generiert wurde. Kopiere dies mit einem einfachen rechts-Klick heraus und füge es im Feld Password ein. Klicke dann auf ‘Log in with Local User’.
sudo docker ps
sudo docker logs container-id 2>&1 | grep "Bootstrap Password:"
Nach dem Login wurde dem Nutzer admin ein Passwort generiert. Dieses kannst Du Dir merken / speichern oder vergibst ein eigenes sicheres Passwort. Die Server URL entspricht der IP-Adresse Deiner aktuellen Instanz. Diese solltest Du nun auch nicht mehr ändern, da hier rüber die Kommunikation laufen wird. Zum Schluss musst Du noch die Bedingungen und Konditionen akzeptieren und kannst bei der anonymen Datenerhebung teilnehmen.
6. Kubernetes Cluster erstellen
Um Dein Cluster betreiben zu können, musst Du erst einmal eins erstellen. Dies machst Du mit einem Klick auf Create.
In Deiner Cluster-Auswahl wählst Du bitte Custom aus, um später Deine weiteren Knoten mit einbinden zu können.
Gebe im ersten Schritt Deinem Cluster einen Namen.
In den Kubernetes Optionen änderst Du nichts.
Auch den Reiter Private Registry lässt auf Disabled stehen.
In den Advanced Optionen deaktivierst Du die Nutzung von Nginx Ingress. Darum, weil in diesem Falle traefik genutzt werden soll. Traefik ist auch ein Proxy, welche allerdings leichter zu bedienen ist. Wobei das Ansichtssache ist.
Am Authorized Endpoint änderst Du nichts.
Nach dem alle Einstellungen vorgenommen wurden, klickst Du auf Next.
6.1 Master und Worker hinzufügen
Füge nun Master und Worker zu Deinem Cluster hinzu. Hier zu wählst Du für den Master folgende Einstellungen aus und kopierst den Code per SSH auf Deinen Master. Wie in der Meldung zu sehen, wird ein Knoten benötigt, welcher alle Rollen erfüllt, hierfür nutze ich den Master. Somit sind hier bei auch alle Checkboxen angehakt.
Der Command lädt den rancher-agent Container herunter und startet diesen mit den entsprechenden Flags. Somit sollte auf Deinem Master-Knoten sowohl der rancher- als auch der rancher-agent-Container laufen. Das hinzufügen des Agenten wird Dir auch, wie im Screenshot zu sehen, mit einer grünen Meldung bestätigt.
Dasselbe führst Du mit nur dem Worker angehakt für Deine Worker aus. Auch hier sollte inzwischen die Zahl neu registrierter Knoten in der grünen Benachrichtigung steigen.
Hast Du alle Master und Arbeiter Knoten registriert, dann kannst Du das alles mit einem Klick auf Done bestätigen.
7. Cluster einsehen
Wenn Du auf den Namen Deines so eben angelegtem Clusters klickst, gelangst Du in die Übersicht dessen.
Du wirst sehen, dass Deine einzelnen Maschinen / Instanzen / Knoten sich noch in der Registrierung befinden werden. Hierbei ist viel Zeit und Geduld mitzubringen, da dies sehr viel Zeit in Anspruch nehmen kann. Falls es dann doch mal länger als ca. 15 Minuten dauert, kann es auch helfen mal alle Instanzen herunter- und wieder hochzufahren.
Danach sollten aber mit der Zeit auch alle Knoten als Active angezeigt werden.
Fazit
Nun solltest Du in recht einfachen Schritten Dein eigenes Kubernetes Cluster auf Basis von Rancher und z. B. RKE aufgesetzt haben. Vielen Dank an Joe ‘JMcglock’ McLaughlin für den Beitrag, schaut auch gerne hier vorbei. Und für seinen entsprechenden Beitrag hier.
Quellen:
- https://jmcglock.substack.com/p/running-a-kubernetes-cluster-using (05.09.2022 17:26)
- https://ubuntu.com/download/server (05.09.2022 17:39)
- https://docs.ranchermanager.rancher.io/v2.5/getting-started/installation-and-upgrade/installation-requirements/install-docker (04.11.2022 17:48)
Titelbild von Proxmox, Rancher und Kubernetes