Ein hostPath-Volume ist in Kubernetes ein Volume-Typ, der einen Datei- oder Verzeichnispfad direkt vom Dateisystem des Knotens in einen Pod einhängt. Damit kann ein Container Daten lesen oder schreiben, die auf dem Node liegen – etwa System-Logs oder Konfigurationsdateien.

Der pathType entscheidet

volumes:
- name: log-host
  hostPath:
    path: /var/log
    type: Directory
  • DirectoryOrCreate – Verzeichnis anlegen, falls es fehlt (Standardwert mit Prüfung).
  • Directory – Verzeichnis muss bereits existieren.
  • FileOrCreate – Datei anlegen, falls sie fehlt; der übergeordnete Ordner wird dabei nicht erzeugt.
  • File – Datei muss bereits existieren.
  • Socket, CharDevice, BlockDevice – für spezielle Gerätedateien.

Der leere Typ "" (keine Angabe) führt keine Prüfung durch und gilt als unsicher – Kubernetes empfiehlt, immer einen expliziten type zu setzen.

Wofür hostPath geeignet ist

Der typische Einsatz sind DaemonSets, die auf jedem Knoten genau einen Pod betreiben, etwa für Log-Sammler (/var/log), Node-Monitoring oder Agenten, die den Container-Namespace überwachen. Auch ein DaemonSet für die Knoten-Abfallentsorgung kann ein hostPath auf /var/lib/docker/containers nutzen.

Sicherheitsrisiken

hostPath durchbricht die Container-Isolation: Ein kompromittierter Container erhält direkten Zugriff auf das Dateisystem des Nodes. Werden sensible Pfade wie /etc, /var/lib/kubelet oder Root-Zertifikate gemountet, kann ein Angreifer den gesamten Knoten übernehmen. Deshalb gilt:

  • hostPath nur bei klarem Bedarf einsetzen, nie für normale Anwendungsdaten.
  • Die strengen Pod-Security-Profile (baseline/restricted) verbieten hostPath – restricted erlaubt nur eingeschränkte Volume-Typen ohne hostPath.
  • Wer längerlebige Daten auf einem bestimmten Knoten braucht, nutzt besser einen Local PersistentVolume – der Speicher wird dann von Kubernetes verwaltet.

Zum Vergleich: Ein emptyDir ist flüchtig und verschwindet mit dem Pod, während ein PersistentVolumeClaim unabhängig vom Pod lebt und dauerhaften Speicher bereitstellt.