Kubernetes Workshop Teil 1: Vorüberlegungen

Ich möchte mir einen kleinen Kubernetescluster aufbauen, um dort verschiedenste Applikationen zu deployen, die ich mehr oder weniger im Alltag nutzen möchte. Weiterhin möchte ich diverse Anwendungen aus dem Bereich der Softwareentwicklung installieren, um verschiedene Aspekte insbesondere aus dem Bereich CI/CD ausprobieren zu können. Anfangs denke ich hierbei an folgende Applikationen:

Weiterhin möchte ich CI/CD-Buildstrecken mit eben dieser Infrastruktur aufsetzen. Das werde ich mit kleinen Java-Beispielen ausprobieren.

Ziel soll sein, dass alle Applikationen mit Kubernetes-Mitteln bzw. Helm installiert werden können. Ich hoffe, dabei viel zu lernen.

Um den Kubernetes-Cluster aufzusetzen, möchte ich Rancher einsetzen. Ich möchte ebenfalls einen zentrales Logging (ElasticStack) und ein Monitoring installieren, vor allem um zu lernen, wie das geht.

Es gibt ja die Möglichkeit, sich mit Tools wie minikube einen eigenen kleinen Cluster für Experimente zu erzeugen. Ich wollte mir das Ganze aber auf „richigen“ Servern im Internet installieren. Dabei muss ich dann auch einige Sachen wie Firewall-Einstellungen berücksichtigen. Ebenso soll die Kommunikation zwischen den Servern und von meinem PC aus verschlüsselt erfolgen. Dazu habe ich mich etwas mit Wireguard beschäftigt.

In meinem Heimnetz steht eine Synology Diskstation. Diese hat die wunderbare Eigenschaft, dass man darauf auch Docker-Container starten kann. Das möchte ich nutzen, um dort u.a. einen kleinen Git-Server (gitea) und ein S3-Storage (minio) zu betreiben. In dieses S3-Storage soll mein Kubernetes Cluster z.B. Backups ablegen. Weiterhin habe ich einen Raspberry PI, den ich dazu nutzen möchte, eine VPN-Verbindung zwischen meinem lokalen Netz und den Servern herzustellen.

Das Ganze soll dann schematisch so aussehen:

Für mein Experiment nutze ich virtuelle Server von contabo (VPS), da diese relativ günstig sind. Experimente in der Cloud mit AWS EKS oder GKE werde ich später machen. Ich habe mir insgesamt 4 Maschinen bestellt:

  1. VPS S – Rancher Installation
  2. VPS L – Kubernetes Node 1 (Worker, etcd, controllpane)
  3. VPS M – Kubernetes Node 2 (Worker)
  4. VPS M – Kubernetes Node 3 (Worker)

Warum ausgerechnet 4 Server? Auf dem ersten kleinen Server soll die Rancher-Installation laufen. In Rancher wiederum soll ein Kubernetes-Cluster auf den anderen 3 Nodes angelegt werden. Damit habe ich auf dem Cluster genug RAM (ca. 60GB) und auch etwas CPU-Power (20 Cores) um einige Applikationen laufen lassen zu können. Das Ganze kostet mich im Monat ca. 38€. Das bin ich aktuell bereit auszugeben. 🙂

Wie das geübte Auge sieht, ist das kein Hochverfügbarkeits-Setup. Dafür bräuchte man einige Nodes mehr. Rancher selbst soll auch „nur“ als Single-Node installiert werden. Für meine Experimente reicht das soweit aber aus.

Im nächsten Teil wollen wir die 4 Server einrichten.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.