Ein Projected Volume ist ein Kubernetes-Volume, das mehrere vorhandene Volume-Quellen in ein einziges Verzeichnis zusammenführt. Statt für jede Quelle einen eigenen Mount zu konfigurieren, liegt die gesamte Konfiguration des Pods an einem Ort.
Welche Quellen lassen sich projizieren?
Eine sources-Liste definiert, welche Quellen in das Zielverzeichnis gemappt werden. Unterstützt werden unter anderem:
- ConfigMap — Konfigurationsdaten als Schlüssel-Wert-Paare,
- Secret — vertrauliche Daten wie Zertifikate oder Passwörter,
downwardAPI— Pod-Metadaten wie Name, Namespace, Labels oder Pod-IP,serviceAccountToken— das Token des ServiceAccounts für API-Zugriffe,clusterTrustBundle— gebündelte CA-Zertifikate des Clusters.
Alle Quellen müssen sich im selben Namespace wie der Pod befinden. Jede Quelle bekommt über path einen Dateinamen im Zielverzeichnis; kollidieren zwei Quellen auf denselben Pfad, lehnt Kubernetes den Pod ab. Mit defaultMode lassen sich die Dateirechte festlegen.
Warum projected volumes nutzen?
Eine Anwendung braucht oft mehrere Datenquellen gleichzeitig: TLS-Zertifikate aus einem Secret, Einstellungen aus einer ConfigMap und die eigene Pod-IP aus der DownwardAPI. Ohne projected volume wären das drei getrennte Volumes und Mounts; mit projected volume wird daraus ein einziger Mount, etwa /etc/pod-config. Das vereinfacht das Dateisystem im Container und hält zusammengehörige Konfiguration an einer Stelle.
Gerade Init-Container, die vor dem App-Start Konfigurationen laden, profitieren von einem einzigen Mount. Auch Sidecar-Container wie Log-Agenten lesen ihre Konfiguration oft aus einem projected volume.
Abgrenzung zu anderen Volume-Typen
emptyDir ist ein flüchtiger, leerer Speicher für den Pod-Lebenszyklus; hostPath bindet ein Verzeichnis des Nodes ein; Persistent Volumes speichern Daten dauerhaft im Cluster. Projected volumes dagegen sind keine Datenablage, sondern eine Zusammenführung vorhandener Quellen in ein Verzeichnis — vergleichbar mit dem Bündeln, das auch bei CSI-Volumes oder Volume-Snapshots eine Rolle spielt.
Grundlagen: Pod, Pod-Spezifikation, Kubernetes.