512 k8s Workload Health and Resources [1 PT]

Posted About 1 year ago. Visible to the public.

Ziele

  • Du verstehst, warum man Healthchecks u.ä. haben möchte. Du weißt auch, dass solche Checks nicht exklusiv für Kubernetes vorhanden sind.
  • Du kennst die 3 Typen von Probes, die man für Container anlegen kann
    • Du weißt, wann du welchen zum Einsatz bringst und wie sich die Probes verhalten.
  • Du kennst die 3 Einsatzzwecke für Probes und weißt, wie sich diese unterscheiden.
  • Warum braucht man neben Liveness und Startup noch die Readiness Probes?
  • Du kennst named ports und kannst dir vorstellen warum das nützlich sein kann.
  • Du weißt, wie sich Liveness und Readiness Probes im Zusammenspiel verhalten.
  • Du weißt, warum Containern Requests und Limits für CPU und RAM zugewiesen werden.
  • Man weist limits und requests zu. Du verstehst, in welchem Verhältnis diese Werte zueinander stehen. Außerdem kannst du abschätzen, was es bedeutet, wenn viele Workloads auf einer Node ihr Limit ausreizen.
  • Du weißt, wie viele CPU Ressourcen ein Container maximal erhält, dem man ein Limit von 250m zuweist.
  • Welches Linux Feature wird verwendet, um die CPU und Memory Limits umzusetzen?
  • Du verstehst, wie Limits für Netzwerke umgesetzt werden und wie es sich mit dem Limit und Burst verhält
  • Du kannst erklären, für was ResourceQuota Ressourcen da sind.

Inhalte

Einige der Inhalte sind ggf. sehr umfangreich. Versuche dich an den Zielen zu orientieren.

Aufgaben

  1. Füge beim Starten von notestar ein sleep Show archive.org snapshot für 30 Sekunden hinzu. Gibt es eine Downtime wenn du diese neue Version deployest?
  2. Konfiguriere Liveness, Startup und Readiness Probes für dein notestar Deployment. Du kannst GET / dafür verwenden. Gibt es jetzt noch Downtimes beim deployen?
  3. Ändere den Pfad für Readiness auf einen nicht existierenden Pfad. Was passiert jetzt?
  4. Reverte den Change von Nummer 3.
Claus-Theodor Riegg
Last edit
9 months ago
Matthias Bruhse
License
Source code in this card is licensed under the MIT License.
Posted by Claus-Theodor Riegg to DevOps Curriculum (2023-02-06 09:40)