Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

k3s Konfiguration

··291 Wörter· ·
Inhaltsverzeichnis

k3s Konfiguration
#

Quelle
#

Ausschließlich einfache Kubernetes-Manifeste, kein Helm-Chart. kustomization.yaml enthält derzeit nur kubernetes-vip.yaml.

Dokumentation
#

Die offizielle Dokumentation von k3s ist unter docs.k3s.io zu finden.

Funktion
#

Dieser Chart und die zugehörigen Manifeste definieren Kernkomponenten der k3s-Installation, die über den Standard hinausgehen.

Lokale Anpassungen
#

Die Konfiguration erfolgt über die in diesem Verzeichnis enthaltenen YAML-Dateien.

Wichtige Komponenten
#

  • Kubernetes VIP: Die Datei kubernetes-vip.yaml definiert einen Service vom Typ LoadBalancer für den Kubernetes API-Server (kubernetes.default.svc). Dies weist dem API-Server eine stabile virtuelle IP-Adresse (VIP) aus dem Metallb-Adresspool zu. Dies vereinfacht den Zugriff auf die API von außerhalb des Clusters.

Kein Local Path Provisioner
#

Bis September 2026 lag hier local-path.yaml mit ConfigMap und StorageClass des Local Path Provisioners. Den Provisioner selbst brachte k3s als mitgeliefertes Addon local-storage mit, und zwar mit einer anderen ConfigMap und local-path als Standard-StorageClass. Bei jedem Start eines k3s-Servers schrieb k3s seine Fassung zurück, ArgoCD (selfHeal) danach wieder die aus dem Repository, und Reloader startete den Provisioner bei jedem Wechsel neu. Das Deployment kam so auf über 1.300 (zyria) bzw. 4.500 (cdp) Generationen, und nach jedem Server-Start gab es minutenlang zwei Standard-StorageClasses neben longhorn.

Genutzt wurde local-path von keinem Volume. Das Addon ist deshalb in ansible/inventory.yaml unter disable: abgeschaltet, und die Manifeste sind entfernt. Standard-StorageClass ist longhorn.

Wer node-lokalen Speicher braucht, sollte den Provisioner vollständig hier verwalten (Deployment, RBAC, ConfigMap, StorageClass mit is-default-class: "false") und das Addon abgeschaltet lassen, nie beides.

Installation
#

Die Komponenten werden durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/k3s-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:

1kubectl kustomize --enable-helm apps/k3s | kubectl apply -n kube-system -f -

Abhängigkeiten
#

  • k3s: Eine laufende k3s-Installation ist die Grundvoraussetzung.
  • Metallb: Wird benötigt, um dem kubernetes-vip-Service eine externe IP-Adresse zuzuweisen.
Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin