Grundlagen von Cloud und Containern

readinessProbe:
  httpGet:
    path: /ready
    port: 8080
  periodSeconds: 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?

  1. ASolange /ready fehlschlägt, wird der Pod aus den Verteilungszielen des Service genommen und erhält keine Anfragen, und der Container wird nicht neu gestartet
  2. BDer Container wird bei jedem Fehlschlag von /ready neu gestartet, sodass er sich immer wieder neu startet, bevor der Cache fertig geladen ist
  3. CBis /ready erfolgreich ist, wird der Pod keinem Node zugewiesen, und auch der Container wird nicht gestartet
Antwort und Erläuterung anzeigen

Antwort: A. Solange /ready fehlschlägt, wird der Pod aus den Verteilungszielen des Service genommen und erhält keine Anfragen, und der Container wird nicht neu gestartet

Eine Readiness-Probe prüft, ob ein Container bereit ist, Anfragen anzunehmen, und nimmt den Pod, solange sie fehlschlägt, aus den Verteilungszielen des Service. Eine HTTP-Probe wertet eine Antwort ab 200 und unter 400 als Erfolg; solange 503 geliefert wird, werden also keine Anfragen zugeteilt, und sie treffen erst ein, wenn die Anwendung bereit ist. Den Container bei einem Fehlschlag neu zu starten, ist die Aufgabe einer Liveness-Probe; erhält eine langsam startende Anwendung nur eine Liveness-Probe mit kurzem Intervall, kann es zu wiederholten Neustarts kommen. Auf welchem Node ein Pod läuft, entscheidet der Scheduler, nicht die Probes.

Dieses Thema üben Zur Themenseite

Weitere Fragen zu Grundlagen von Cloud und Containern

  1. 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?
  2. 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)?
  3. 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?
  4. Welche Beschreibung der für einen Container gesetzten Ressourcen-Requests und -Limits in Kubernetes ist richtig?
  5. 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?