Was ist Pod?

Kleinste Einheit, die Kubernetes platziert und ausführt. Ein Pod fasst einen oder mehrere Container zusammen, die sich einen Netzwerk-Namespace einschließlich der IP-Adresse sowie Volumes teilen und über localhost miteinander kommunizieren können. Meist enthält er einen Anwendungscontainer, bei Bedarf ergänzt um Hilfscontainer. Pods sind Wegwerfobjekte und erhalten beim Neuerzeugen im Allgemeinen einen neuen Namen und eine neue IP-Adresse; ihre Zahl wird daher von einem Deployment o. Ä. gehalten, und ein Service stellt einen stabilen Endpunkt für sie bereit.

Japanische Bezeichnung: Pod

„Pod“ kommt in 13 Übungsfragen aus 1 Themen vor, z. B. Grundlagen von Cloud und Containern.

Fachgebiet: Grundlagen von Cloud und Containern

Jetzt üben: Fragen zu Pod

In Kubernetes betreibt ein Deployment mit replicas: 3 drei Pods. Was geschieht, wenn einer dieser Pods mit kubectl delete pod gelöscht wird?

  1. AAuch die Einstellung des Deployments wird auf replicas: 2 geändert, und zwei Pods laufen weiter
  2. BEin Controller erkennt, dass die tatsächliche Anzahl unter die angegebenen 3 gefallen ist, und erzeugt einen neuen Pod
  3. CAuch die beiden anderen Pods des Deployments werden gelöscht, und das gesamte Deployment wird angehalten
Antwort und Erläuterung anzeigen

Antwort: B. Ein Controller erkennt, dass die tatsächliche Anzahl unter die angegebenen 3 gefallen ist, und erzeugt einen neuen Pod

In Kubernetes deklarieren die Nutzer einen Soll-Zustand wie „drei Pods ausführen“, und Controller beobachten wiederholt den Ist-Zustand und greifen bei Abweichungen so ein, dass er sich der Deklaration annähert (Abgleich, Reconciliation). Durch das Löschen eines Pods sinkt die tatsächliche Anzahl auf 2, daher erzeugt der Controller des ReplicaSets einen neuen Pod und stellt 3 wieder her. Geht ein Pod durch den Ausfall eines Nodes verloren, wird er nach demselben Mechanismus auf einem anderen Node neu erzeugt. Um die Zahl der Pods wirklich zu verringern, ändert man replicas des Deployments, statt Pods zu löschen.

In einem Kubernetes-Deployment wird das Container-Image in der Pod-Vorlage auf eine neue Version geändert. Was geschieht mit der Standard-Update-Strategie (RollingUpdate)?

  1. AEin neues ReplicaSet wird erzeugt; Pods der neuen Version kommen hinzu, während Pods der alten Version abgebaut werden. Das alte ReplicaSet bleibt für ein Rollback mit 0 Pods bestehen
  2. BDas Container-Image in den laufenden Pods wird an Ort und Stelle durch die neue Version ersetzt, ohne die Pods neu zu erzeugen, sodass sich weder IP-Adressen noch Namen der Pods ändern
  3. CAlle Pods der alten Version werden gleichzeitig gelöscht und dann die Pods der neuen Version gemeinsam erzeugt, sodass der Dienst während des Updates vorübergehend ausfällt
Antwort und Erläuterung anzeigen

Antwort: A. Ein neues ReplicaSet wird erzeugt; Pods der neuen Version kommen hinzu, während Pods der alten Version abgebaut werden. Das alte ReplicaSet bleibt für ein Rollback mit 0 Pods bestehen

Ändert sich die Pod-Vorlage, erzeugt ein Deployment ein ReplicaSet für die neue Vorlage und baut die Pods des alten ReplicaSets schrittweise ab, während es prüft, dass die neuen Pods bereit sind. Auch während des Updates bearbeitet daher eine bestimmte Zahl von Pods weiter Anfragen. Das alte ReplicaSet bleibt mit 0 Pods erhalten, sodass kubectl rollout undo zur vorherigen Version zurückkehren kann. Die Strategie, die zuerst alle Pods löscht und dann neu erzeugt, heißt Recreate und wird nur verwendet, wenn sie ausdrücklich angegeben ist.

„Pod“ in den Erläuterungen

Fragen mit „Pod“ (13)

  1. In Kubernetes betreibt ein Deployment mit replicas: 3 drei Pods. Was geschieht, wenn einer dieser Pods mit kubectl delete pod gelöscht wird?
  2. In einem Kubernetes-Deployment wird das Container-Image in der Pod-Vorlage auf eine neue Version geändert. Was geschieht mit der Standard-Update-Strategie (RollingUpdate)?
  3. Ein Deployment mit replicas: 10 hat die Rolling-Update-Einstellungen maxSurge: 25% und maxUnavailable: 25%. Welche Kombination gibt die Obergrenze der Gesamtzahl der Pods und die Untergrenze der Zahl verfügbarer Pods während eines Updates richtig an?
  4. In Kubernetes erhält ein Pod bei jedem Neuerzeugen eine andere IP-Adresse. Welche Ressource ermöglicht es anderen Anwendungen, sich über einen gleichbleibenden Namen und eine gleichbleibende Adresse mit mehreren per Label ausgewählten Pods zu verbinden, wobei die Last auf diese verteilt wird?
  5. Eine Webanwendung kann nach dem Start etwa 60 Sekunden lang, während sie ihren Cache lädt, keine Anfragen bearbeiten und liefert in dieser Zeit für /ready den Status 503. Welche Wirkung hat es, die obigen Einstellungen zum Container des Pods hinzuzufügen?
  6. Ein HorizontalPodAutoscaler in Kubernetes hat als Ziel eine CPU-Auslastung der Pods von 70 % und einen Bereich von 1 bis 10 Pods. Derzeit beträgt die mittlere CPU-Auslastung von 5 Pods 30 %. Wie viele Pods werden benötigt, wenn die benötigte Zahl als ⌈aktuelle Zahl × aktuelle Auslastung ÷ Zielauslastung⌉ berechnet wird (⌈ ⌉ bedeutet Aufrunden)?
  7. In einem Deployment, dessen Pod-Container die obigen Einstellungen haben, laufen vier Pods, von denen jeder 400m (0,4 Kerne) CPU nutzt. Die Ziel-CPU-Auslastung des HorizontalPodAutoscalers ist 60 %, und die benötigte Zahl der Pods wird als ⌈aktuelle Zahl × aktuelle Auslastung ÷ Zielauslastung⌉ berechnet. Wie viele Pods werden benötigt?
  8. Ein Node hat zuteilbare Ressourcen von 4 CPU-Kernen und 8 GiB Arbeitsspeicher. Der Container jedes Pods hat als Requests 500m CPU und 1,5 GiB Arbeitsspeicher und als Limits 1 CPU-Kern und 2 GiB Arbeitsspeicher. Es gibt keine anderen Pods und keine Systemreservierungen. Wie viele Pods können höchstens auf diesem Node platziert werden?
  9. Wie heißt in Kubernetes die kleinste Einheit, die bereitgestellt und verwaltet wird und einen oder mehrere Container zusammenfasst, die sich dieselbe IP-Adresse und dieselben Volumes teilen?
  10. In einem Kubernetes-Cluster sollen HTTPS-Anfragen, die für einen Hostnamen eintreffen, an den Service api gehen, wenn der Pfad mit /api beginnt, und sonst an den Service web. Welche Ressource eignet sich, um diese Verteilungsregel festzulegen?
  11. Das Passwort einer Datenbank wird in einem Kubernetes-Secret gespeichert. Welche Beschreibung eines Secrets ist richtig?
  12. In einer Webanwendung unter Kubernetes wurde die Prüfung der Liveness-Probe so erweitert, dass sie auch prüft, ob sich die Anwendung mit der Datenbank verbinden kann, von der sie abhängt. Welches Problem kann diese Einstellung am ehesten verursachen?
  13. Welche Beschreibung der für einen Container gesetzten Ressourcen-Requests und -Limits in Kubernetes ist richtig?

Verwandte Begriffe

Kubernetes Container HTTP (Hypertext Transfer Protocol) Container-Image DNS (Domain Name System) Autoscaling TLS (Transport Layer Security) Reverse Proxy Umgebungsvariable Deadlock

Zur Glossarübersicht