Konfiguration und Persistenz in Kubernetes

Nach Pods, Deployments und Services widmen wir uns nun den Konzepten für Konfiguration, Sicherheit und Datenpersistenz in Kubernetes. Mit ConfigMaps, Secrets und Storage-Ressourcen lassen sich Anwendungen flexibel, sicher und dauerhaft betreiben.


ConfigMaps – Konfigurationsdaten verwalten

ConfigMaps ermöglichen es, Konfigurationsdaten außerhalb des Anwendungscodes zu speichern.

  • Trennung von Code und Konfiguration
  • Einfache Aktualisierung, ohne Container neu zu bauen
  • Nutzung in Umgebungsvariablen oder als Konfigurationsdateien

Beispiel:

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  APP_MODE: production
  APP_PORT: "8080"

Pods können diese Werte dann über Umgebungsvariablen oder Volumes nutzen.


Secrets – Sensible Daten schützen

Secrets speichern sensible Informationen wie Passwörter, Tokens oder Zertifikate.

  • Daten werden Base64-codiert in etcd abgelegt
  • Mit aktiviertem etcd-Encryption werden sie verschlüsselt gespeichert
  • Zugriff über RBAC (Role-Based Access Control) steuerbar

Beispiel:

apiVersion: v1
kind: Secret
metadata:
  name: db-secret
type: Opaque
data:
  username: YWRtaW4=
  password: c2VjdXJlUGFzcw==

Pods können diese Secrets sicher als Umgebungsvariablen oder Dateien einbinden.


Storage in Kubernetes

Container sind grundsätzlich zustandslos. Für persistente Daten gibt es in Kubernetes:

  • Persistent Volumes (PV): Stellt Speicher bereit, z. B. NFS, iSCSI oder Cloud-Volumes.
  • Persistent Volume Claims (PVC): Von Pods angeforderter Speicherplatz.
  • Storage Classes: Ermöglichen dynamische Bereitstellung von Speicher durch den Administrator oder Cloud-Provider.

Beispiel für eine PVC:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: app-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 1Gi

StatefulSets für zustandsbehaftete Anwendungen

  • StatefulSets sorgen für stabile Netzwerknamen und persistente Speicherzuordnung.
  • Ideal für Datenbanken oder andere zustandsbehaftete Dienste.
  • Unterstützen Rolling Updates und Skalierung mit Datenpersistenz.

Zusammenspiel in der Praxis

  • ConfigMaps: Konfigurationsdaten zentral verwalten.
  • Secrets: Sensible Daten sicher integrieren.
  • Storage: Daten dauerhaft speichern und verfügbar halten.

Damit können auch komplexe Anwendungen in Kubernetes konfigurierbar, sicher und persistent betrieben werden.


Kommentare

Schreibe einen Kommentar

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