Dinge, die Du über Deine JVM in einem Pod wissen solltest …
…, aber Dich nie getraut hast zu fragen.
Obwohl das OpenJDK-Projekt und auch Oracle vieles getan haben, die JVM an eine containerbasierte Laufzeitumgebung zu adaptieren, ist dies kein Garant dafür, dass diese auch problemlos betrieben werden kann.
Daher betrachten wir typische Stolperfallen, die im Betrieb von JVM-Anwendungen auf Kubernetes lauern: Neben CPU Requests und Limits und der Linux-„CFS“ schauen wir uns im Detail die Eigenheiten der Speicherverwaltung von Java an und klären, warum diese zu Problemen führen können, wenn sie vernachlässigt werden. Änderungen, die in diesem Kontext mit Java 18 und 19 sowie cgroups v2 einhergehen, werden wir ebenfalls betrachten.
Vorkenntnisse
- Grundlagenwissen Container und Kubernetes
- Grundlagenwissen JVM.
Lernziele
Diese Session vermittelt Grundlagen über die Wechselwirkung von Ressourcen eines Kubernetes-Pods und einer JVM (aber nicht nur), die in diesem Pod ausgeführt werden.
Hiernach sollte dem Auditorium bewusst sein, warum java.nio ziemlich gefährlich sein kann und warum ein Pod plötzlich den OOM-Tod stirbt, obwohl eigentlich noch genug Speicher zur Verfügung steht.