Kubernetes and the JVM
summary
How Kubernetes affects running Java applications: challenges from JVM internals (threads, JIT, garbage collection) interacting with container resource limits and orchestration. Practical guidance on building and optimizing container images, memory and resource management, startup time improvements, native compilation and advanced JVM features (CDS, CRaC, AOT) to get better performance when deploying Java on Kubernetes.
AI-written summary · about
chapters (21)
- 0:00Kubernetes and JVM intro
- 2:32Kubernetes on dev machine
- 7:29Optimized Docker images
- 8:31Kubernetes probes
- 9:55Resource requests/limits
- 10:55Java app demo in Kubernetes
- 13:04CPU limits vs JVM startup
- 15:08JVM components deep dive
- 20:01JVM ergonomics
- 25:25JVM in containers
- 27:12Probes in Spring Boot/Quarkus
- 28:34JVM CPU needs and slowdowns
- 29:38JVM memory in Kubernetes
- 31:45JVM startup optimization
- 32:27CDS for faster class loading
- 33:35Java 24 AOT compilation
- 36:04GraalVM native compilation
- 38:27Java to native binary
- 42:02JVM vs native benchmark
- 43:31CRIU for fast JVM startup
- 45:16Conclusion
related talks
56mKubernetes + Containers + Java … A Hodgepodge?...
16mKubernetes as a distributed JVM
47mLife of Java Applications in Cloud Containers
47mCPU & Memory, Requests & Limits, QoS & CFS: The JVM in the Kubernetes Pod
25mKubernetes for Java Developers
01h 59mKubernetes for Java Developers
46mJava in a container: operational specifics
07mBest Practices with JVMs in Containers
