52 Infrastruktur-Container

Der Infrastruktur-Container ist das unscheinbarste, aber entscheidendste Element eines Pods. Er führt selbst keinen Anwendungscode aus, bietet keine APIs an und erzeugt keine Logs. Dennoch hängt die Stabilität eines gesamten Pods von ihm ab. Er ist der Träger der Namespaces, der Haltepunkt für das Netzwerk, das logische Fundament, auf dem alle weiteren Container aufbauen. Technisch ist er die kleinste denkbare Ausführungsumgebung, konzeptionell eine Art „steady-state Prozess“, der die Lebensdauer des Pods definiert.

52.1 Die Idee hinter dem Infrastruktur-Container

Ein Pod fasst mehrere Container zu einer gemeinsamen Ausführungseinheit zusammen. Damit diese Container miteinander kommunizieren können, benötigen sie gemeinsame Namespaces – insbesondere Netzwerk, IPC und optional PID. Da Namespaces an existierende Prozesse gebunden sind, benötigt der Pod genau einen solchen Prozess, der diese Namespaces erzeugt und hält: den Infrastruktur-Container.

Er dient als:

Er ist damit gleichzeitig Startpunkt und Stabilitätsgarant.

52.2 Minimalismus als Prinzip

Der Infrastruktur-Container ist extrem schlank. Sein File-System, Prozessliste und Speicherverbrauch bewegen sich nahe des absoluten Minimums. Podman verwendet standardmäßig ein minimalistisch gehaltenes „pause“-Abbild, das im Grunde einen einzigen Prozess startet, der nichts weiter tut als:

Ein schematischer Überblick:

Dieser Minimalismus ist kein zufälliges Detail, sondern ein Architekturprinzip: der Infrastruktur-Container ist so klein wie möglich, um so stabil wie möglich zu sein.

52.3 Der Netzwerkstack hängt am Infrastruktur-Container

Während normale Container ihren eigenen Netzwerknamespace besitzen, teilen alle Container eines Pods den Netzwerknamespace des Infrastruktur-Containers. Dadurch ergibt sich eine klare Zuordnung:

Beispiel:

podman pod create -p 8080:80 mypod
podman run --pod mypod nginx
podman run --pod mypod app

Baumstruktur:

Der Infrastruktur-Container ist damit das verbindende Element zwischen Host-Networking und interner Pod-Kommunikation.

52.4 Lebenszykluslogik: der Pod steht und fällt mit dem Infrastruktur-Container

Der Pod existiert, solange der Infrastruktur-Container existiert. Wird er gestoppt, pausiert oder gelöscht, gilt dasselbe für alle Container im Pod.

Podman integriert diese Semantik direkt in die Steuerung:

Ein abgestürzter Infrastruktur-Container führt unweigerlich zum Ende des Pods. Ein solcher Fall ist selten – und genau das ist der Punkt. Der Infrastruktur-Container ist bewusst extrem resistent gegen Fehlverhalten, genau weil er keine komplexe Funktionalität besitzt.

52.5 Der Infrastruktur-Container als gemeinsame Zeit- und Signalquelle

Weil sämtliche Pod-Container Prozesse des gleichen Prozessbaums sind, ist der Infrastruktur-Container auch:

Das bedeutet praktisch:

Das Verhalten ähnelt dem eines Supervisors in klassischen Unix-Diensten – jedoch ohne Logik, ohne Politik, ohne eigene Restart-Strategien. Der Pod selbst ist das Steuerungsobjekt.

52.6 Isolation und Kopplung: die richtige Balance

Der Infrastruktur-Container definiert die Grenze zwischen dem Pod und der Außenwelt. Er hält die gemeinsamen Namespaces, aber er verwaltet nicht das Dateisystem oder die Volumes der Container. Diese Isolation ist gewollt:

Ein Pod ist daher weder ein „Mini-VM“ noch ein „Shared Filesystem“, sondern eine kooperative Prozessgruppe mit gemeinsamer Netzwerkidentität.

Das hat Auswirkungen:

Der Infrastruktur-Container bildet die strukturelle Mitte dieser Architektur.

52.7 Unterschiede zwischen Rootless und Root

Im Rootless-Modus unterscheiden sich Netzwerk- und Storagepfade, aber die Logik des Infrastruktur-Containers bleibt gleich. Unterschiede:

52.7.1 Root:

52.7.2 Rootless:

Der Infrastruktur-Container abstrahiert diese Unterschiede – Container im Pod bemerken sie nicht.

52.8 Den Infrastruktur-Container sichtbar machen

Viele Anwender bemerken den Infrastruktur-Container nie – bis sie ihn plötzlich brauchen. Ein Blick:

podman ps --filter label=io.podman.infra

Oder:

podman inspect mypod

Dort findet man:

Er ist damit kein „hidden process“, sondern ein bewusst verwaltbares Element.

52.9 Wozu der Infrastruktur-Container nicht dient

Missverständnisse entstehen besonders dann, wenn man erwartet, dass der Infrastruktur-Container Funktionen bereitstellt, die nicht zu seiner Aufgabenbeschreibung gehören. Er ist:

Er ist nur das Fundament. Alles Weitere übernehmen die Applikationscontainer selbst.