0Pricing
Docker & DevOps Fundamentals · Lektion

Pods: Die kleinsten Einheiten

Lernen Sie Pods kennen, die grundlegenden Bausteine in Kubernetes, und erfahren Sie, wie Sie sie definieren und verwalten.

Pods: Die kleinsten Einheiten ist eine kostenlose Docker & DevOps Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 2 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 Docker & DevOps Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Docker & DevOps Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Was ist ein Kubernetes-Pod?

In Kubernetes ist ein Pod die kleinste und grundlegendste Einheit, die Sie bereitstellen können. Stellen Sie sich einen Pod als ein einzelnes „Haus“ vor, das einen oder mehrere Container beherbergt.

Pods sind eine Abstraktion über Containern. Sie repräsentieren einen laufenden Prozess in Ihrem Cluster und kapseln Anwendungscontainer, Speicherressourcen, eine eindeutige Netzwerk-IP-Adresse sowie Optionen, die festlegen, wie Container ausgeführt werden sollen.

Pods: Die kleinsten Einheiten — Illustration 1

Pod vs. Container: Der Unterschied

Sie fragen sich vielleicht: „Warum brauche ich einen Pod, wenn ich bereits Container habe?“ Hier liegt der entscheidende Unterschied:

  • Ein Container (wie ein Docker-Container) ist ein Paket aus einer Anwendung und ihren Abhängigkeiten.
  • Ein Pod ist die Kubernetes-Abstraktion, die einen oder mehrere Container kapselt und ihnen gemeinsam genutzte Ressourcen sowie eine gemeinsame Netzwerkidentität bereitstellt.

Während ein Container die tatsächlich ausführbare Einheit ist, übernimmt Kubernetes die Verwaltung und Orchestrierung dieser ausführbaren Einheiten über Pods.

Warum werden Pods verwendet?

Pods bieten mehrere wichtige Vorteile:

  • Gemeinsam genutzter Netzwerk-Namespace: Alle Container innerhalb eines Pods verwenden dieselbe IP-Adresse und dieselben Netzwerkports. Sie können mithilfe von localhost miteinander kommunizieren.
  • Gemeinsam genutzter Speicher: Pods können Speichervolumes gemeinsam nutzen, sodass Container innerhalb desselben Pods auf gemeinsame Daten zugreifen können.
  • Gemeinsame Platzierung und Planung: Container, die eng zusammenarbeiten müssen (z. B. eine Anwendung und ein Logging-Agent), können garantiert auf demselben Node ausgeführt werden und werden immer gemeinsam eingeplant.

Aufbau einer Pod-Definition

Pods werden mithilfe von YAML-Konfigurationsdateien definiert. Die folgenden zentralen Komponenten finden Sie darin:

  • apiVersion: Gibt die Kubernetes-API-Version an (z. B. v1).
  • kind: Der Typ des Kubernetes-Objekts, hier Pod.
  • metadata: Informationen wie der name und die labels des Pods.
  • spec: Der gewünschte Zustand des Pods, einschließlich der auszuführenden containers, volumes und weiterer Einstellungen.

Einen Pod mit einem Container definieren

Die meisten Pods enthalten einen einzelnen Container. Das ist bei einfachen Anwendungen üblich. Hier sehen Sie eine grundlegende YAML-Definition für einen Pod, der einen Nginx-Webserver ausführt:

apiVersion: v1
kind: Pod
metadata:
  name: my-nginx-pod
  labels:
    app: webserver
spec:
  containers:
  - name: nginx-container
    image: nginx:latest
    ports:
    - containerPort: 80

Ihren ersten Pod bereitstellen

Um einen Pod aus einer YAML-Datei zu erstellen, verwenden Sie den Befehl kubectl apply. Damit weisen Sie Kubernetes an, Ressourcen auf Grundlage Ihrer Definition zu erstellen oder zu aktualisieren.

Nehmen wir an, Sie speichern die vorherige Nginx-Pod-Definition als nginx-pod.yaml. Sie würden sie folgendermaßen bereitstellen:

  • kubectl apply -f nginx-pod.yaml

Kubernetes plant diesen Pod anschließend für die Ausführung auf einem seiner Worker Nodes ein.

Pods untersuchen: Get und Describe

Nach der Bereitstellung möchten Sie den Status Ihrer Pods überprüfen. Hier sind zwei wichtige kubectl-Befehle:

  • kubectl get pods: Listet alle Pods im aktuellen Namespace auf und zeigt deren Namen, Status und Node an.
  • kubectl describe pod <pod-name>: Liefert detaillierte Informationen zu einem bestimmten Pod, einschließlich Ereignissen, Containerstatus und zugewiesenen Ressourcen.

Diese Befehle sind für Überwachung und Fehlerbehebung unverzichtbar.

Pods mit mehreren Containern: Sidecars

Obwohl Pods mit nur einem Container üblich sind, bieten Pods mit mehreren Containern in bestimmten Szenarien Vorteile. Ein klassisches Beispiel ist das Sidecar Pattern.

Ein Sidecar-Container läuft im selben Pod neben Ihrem Hauptanwendungscontainer und übernimmt unterstützende Aufgaben wie:

  • Logging- und Monitoring-Agenten
  • Datensynchronisierung
  • Proxying von Netzwerkverkehr

Die Container teilen sich das Netzwerk und den Speicher des Pods, wodurch eine effiziente Kommunikation möglich ist.

Beispiel: Pod mit mehreren Containern

Hier sehen Sie ein Beispiel für einen Pod mit mehreren Containern. Er enthält einen Nginx-Webserver und einen busybox-Sidecar-Container, der Logs in ein gemeinsam genutztes Volume schreibt.

apiVersion: v1
kind: Pod
metadata:
  name: multi-container-pod
spec:
  volumes:
  - name: shared-log-volume
    emptyDir: {}
  containers:
  - name: web-server
    image: nginx:latest
    ports:
    - containerPort: 80
    volumeMounts:
    - name: shared-log-volume
      mountPath: /var/log/nginx
  - name: log-writer
    image: busybox:latest
    command: ["/bin/sh", "-c", "while true; do echo 'Hello from sidecar!' >> /var/log/app.log; sleep 5; done"]
    volumeMounts:
    - name: shared-log-volume
      mountPath: /var/log/app

Testen Sie Ihr Pod-Wissen

Welche der folgenden Aussagen über Kubernetes-Pods ist RICHTIG?

Rückblick: Pods – die Kerneinheit

Sie haben gerade Kubernetes-Pods kennengelernt – die grundlegenden Bausteine Ihrer Anwendungen in einem Cluster.

  • Pods kapseln einen oder mehrere Container und stellen ihnen gemeinsam genutzte Ressourcen bereit.
  • Sie bieten ein gemeinsam genutztes Netzwerk und einen gemeinsam genutzten Speicher und garantieren die gemeinsame Platzierung zusammengehöriger Container.
  • Sie definieren Pods mit YAML und stellen sie mit kubectl apply bereit.
  • Mit kubectl get pods und kubectl describe pod können Sie sie überwachen.

Als Nächstes sehen wir uns weitere kubectl-Befehle für die Interaktion mit Ihrem Cluster an!

Häufig gestellte Fragen

Ist die Lektion „Pods: Die kleinsten Einheiten“ kostenlos?

Ja — der vollständige Text von „Pods: Die kleinsten Einheiten“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Docker & DevOps Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Docker & DevOps Fundamentals-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Pods: Die kleinsten Einheiten“?

Lernen Sie Pods kennen, die grundlegenden Bausteine in Kubernetes, und erfahren Sie, wie Sie sie definieren und verwalten. Du übst Docker & DevOps Fundamentals 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 Docker & DevOps Fundamentals zu starten?

Keine Vorkenntnisse erforderlich. Docker & DevOps Fundamentals 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 2 von 4.

Wie lange dauert die Lektion „Pods: Die kleinsten Einheiten“?

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 Docker & DevOps Fundamentals-Lektion Code schreiben und ausführen?

Ja. Jede Docker & DevOps Fundamentals-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

  1. Kubernetes-Architektur
  2. Pods: Die kleinsten Einheiten
  3. Grundlegende kubectl-Befehle
  4. Namespaces und Labels zur Organisation
← Zurück zu Docker & DevOps Fundamentals