Multi-Container-Pods (Sidecars)
Entdecken Sie Muster zum Ausführen mehrerer gemeinsam in einem Pod angeordneter Container, beispielsweise Sidecar-Container.
Multi-Container-Pods (Sidecars) ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Mehr als ein einzelner Container
Bisher haben wir uns Pods als Einheiten vorgestellt, die einen einzelnen Container ausführen. Doch was ist, wenn Ihre Anwendung einen Hilfsprozess benötigt?
Kubernetes ermöglicht es, in einem Pod mehrere Container auszuführen. Diese Container befinden sich immer am selben Ort und teilen sich Ressourcen.
Warum Pods mit mehreren Containern?
Die Ausführung mehrerer Container in einem Pod eignet sich ideal für Anwendungen, die eng gekoppelt sind und Folgendes gemeinsam nutzen müssen:
- Netzwerk-Namespace (dieselbe IP-Adresse; Kommunikation über
localhostmöglich) - Speichervolumes
- Lebenszyklus (sie werden gemeinsam gestartet, beendet und neu gestartet)
Dadurch können zusammengehörige Prozesse als eine einzige Einheit verwaltet werden.
Das Sidecar-Muster erklärt
Ein häufig verwendetes Entwurfsmuster ist das Sidecar-Muster. Dabei wird ein „Sidecar“-Container zusammen mit Ihrem Hauptanwendungscontainer ausgeführt.
Er erweitert oder verbessert die Funktionalität der Hauptanwendung, ohne die Hauptanwendung selbst zu verändern. Stellen Sie ihn sich wie einen hilfreichen Begleiter vor.
Einsatzmöglichkeiten von Sidecars
Sidecars sind äußerst vielseitig. Häufige Einsatzmöglichkeiten sind:
- Protokollerfassung: Ein Sidecar sammelt die Logs der Hauptanwendung und sendet sie an einen zentralen Logging-Dienst.
- Proxy: Ein Sidecar stellt eine Netzwerk-Proxy-Funktion bereit, beispielsweise für Sicherheit (mTLS) oder Verkehrsverwaltung.
- Synchronisierung von Dateien: Ein Sidecar hält ein gemeinsam genutztes Volume mit Konfigurationsdaten oder anderen Daten aktuell.
Pod mit zwei Containern (YAML)
Sehen wir uns an, wie Sie mehrere Container im YAML-Manifest eines Pods definieren. Jeder Container ist ein Element im Array containers.
Beachten Sie die Container nginx-proxy und main-app, die unter spec.containers definiert sind.
apiVersion: v1
kind: Pod
metadata:
name: multi-container-pod
spec:
containers:
- name: nginx-proxy
image: nginx:latest
ports:
- containerPort: 80
- name: main-app
image: busybox:latest
command: ["sh", "-c", "echo 'Hello from main app!' && sleep 3600"]Gemeinsam genutzter Speicher: emptyDir
Container innerhalb desselben Pods können Daten mithilfe von Kubernetes-Volumes gemeinsam nutzen. Eine einfache Möglichkeit dafür ist ein Volume vom Typ emptyDir.
Ein emptyDir-Volume wird erstellt, wenn ein Pod einem Node zugewiesen wird, und bleibt bestehen, solange dieser Pod auf dem Node ausgeführt wird. Es handelt sich um temporären Speicher.
Beispiel: Sidecar zur Protokollerfassung
Stellen Sie sich eine Hauptanwendung vor, die Logs in eine Datei schreibt. Ein Sidecar kann diese Logdatei anschließend lesen und an einen Logging-Dienst übertragen.
Dadurch wird die Logging-Logik von Ihrer Hauptanwendung entkoppelt, sodass diese übersichtlich bleibt und sich auf ihre eigentliche Aufgabe konzentrieren kann.
YAML für die Protokollerfassung (Teil 1)
Hier sehen Sie das YAML für unser Beispiel zur Protokollerfassung. Wir definieren ein emptyDir-Volume mit dem Namen log-volume. Beide Container binden dieses Volume ein.
Der Container main-app schreibt eine Lognachricht in /var/log/app.log innerhalb des gemeinsam genutzten Volumes.
apiVersion: v1
kind: Pod
metadata:
name: log-collector-pod
spec:
volumes:
- name: log-volume
emptyDir: {}
containers:
- name: main-app
image: busybox:latest
command: ["sh", "-c", "while true; do echo $(date) 'Main app log entry' >> /var/log/app.log; sleep 1; done"]
volumeMounts:
- name: log-volume
mountPath: /var/logYAML für die Protokollerfassung (Teil 2)
Nun bindet der Container log-sidecar dasselbe gleiche log-volume ein. Anschließend verwendet er tail -f, um die von der Hauptanwendung geschriebene Logdatei fortlaufend zu lesen.
In einem realen Szenario würde dieses Sidecar die Logs verarbeiten und an ein Logging-System wie Elasticsearch oder Splunk senden.
apiVersion: v1
kind: Pod
metadata:
name: log-collector-pod # Same Pod as before
spec:
volumes:
- name: log-volume
emptyDir: {}
containers:
- name: main-app
image: busybox:latest
command: ["sh", "-c", "while true; do echo $(date) 'Main app log entry' >> /var/log/app.log; sleep 1; done"]
volumeMounts:
- name: log-volume
mountPath: /var/log
- name: log-sidecar
image: busybox:latest
command: ["sh", "-c", "tail -f /var/log/app.log"]
volumeMounts:
- name: log-volume
mountPath: /var/logSchnelltest: Vorteile von Sidecars
Pods mit mehreren Containern, insbesondere mit dem Sidecar-Muster, bieten mehrere Vorteile bei der Verwaltung komplexer Anwendungen.
Welche der folgenden Punkte sind wesentliche Vorteile der Verwendung eines Sidecar-Containers?
Zusammenfassung: Pods mit mehreren Containern
Sehr gut! Sie haben Pods mit mehreren Containern und das leistungsfähige Sidecar-Muster kennengelernt.
- Pods können mehrere Container beherbergen, die Netzwerk und Speicher gemeinsam nutzen.
- Das Sidecar-Muster erweitert oder verbessert die Funktionalität der Hauptanwendung.
- Zu den häufigen Einsatzmöglichkeiten gehören Protokollerfassung, Proxys und Datensynchronisierung.
emptyDir-Volumes stellen temporären, innerhalb eines Pods gemeinsam genutzten Speicher bereit.
Dieses Muster ist entscheidend für robuste, modulare Anwendungen in Kubernetes.
Lerne DevOps Bootcamp mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 142
- Lektionen
- 568
Häufig gestellte Fragen
Ist die Lektion „Multi-Container-Pods (Sidecars)“ kostenlos?
Ja — der vollständige Text von „Multi-Container-Pods (Sidecars)“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Multi-Container-Pods (Sidecars)“?
Entdecken Sie Muster zum Ausführen mehrerer gemeinsam in einem Pod angeordneter Container, beispielsweise Sidecar-Container. Du übst DevOps Bootcamp mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um DevOps Bootcamp zu starten?
Keine Vorkenntnisse erforderlich. DevOps Bootcamp auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „Multi-Container-Pods (Sidecars)“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser DevOps Bootcamp-Lektion Code schreiben und ausführen?
Ja. Jede DevOps Bootcamp-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Pods: Die kleinste Einheit
- Pod-Lebenszyklus und -Zustände
- Multi-Container-Pods (Sidecars)
- Init-Container und Startreihenfolge