Part 9 – Why Spring Boot Applications Get OOMKilled in Kubernetes

Understanding JVM Memory, CPU, Requests, Limits, and Production Sizing "If you're still sizing your Java application based only on -Xmx, you're sizing it for a virtual machine, not for Kubernetes." Thursday, 2:15 PM It was the first payroll processing day of the month. At Global Trust Bank, this was one of the busiest days of the year. Millions of salary…

Part 8 – Mastering Configuration in Kubernetes

Externalizing Configuration with ConfigMaps, Secrets, Spring Profiles, and Feature Flags "The best deployment is the one where the application binary never changes. Only its configuration does." Wednesday Morning, 7:45 AM The Digital Payments team at Global Trust Bank was preparing for another production deployment. Unlike previous releases, there were no new features. No code changes. No bug fixes. No new…

Part 7 – Building Self-Healing Spring Boot Applications with Kubernetes Health Probes

Why "Running" Doesn't Mean Your Application Is Ready "A container can be running, the JVM can be alive, and yet your application may still be incapable of serving a single customer request. Kubernetes doesn't guess the health of your application—it asks the application itself." Tuesday Morning, 8:30 AM Sarah had just completed one of the smoothest production deployments the Digital…

Part 6 – Graceful Shutdown & Zero-Downtime Deployments

Why Every Spring Boot Developer Must Understand SIGTERM Before Running on Kubernetes "Deploying a new version is easy. Deploying it without your customers noticing—that's engineering." Friday Evening, 6:00 PM It's the last deployment window before the weekend. The Digital Payments team at Global Trust Bank is releasing version 2.5.0 of the Payment Service. The release notes look straightforward. A new…

Part 5 – Designing Spring Boot Applications for Kubernetes

Building Cloud-Native Java Applications Instead of Containerized Monoliths "Running a Spring Boot application inside a container doesn't automatically make it cloud-native. Kubernetes can orchestrate your application, but it cannot fix an application that wasn't designed for a distributed environment." A Successful Deployment... Until It Wasn't Monday morning. The digital banking platform at Global Trust Bank has just completed its migration…

Part 8 – Kubernetes Services

How Customer Requests Reach the Right Spring Boot Pod Sarah's deployment has finally reached an important milestone. The Payment Service has been deployed successfully. The kubelet has started the container. The JVM has initialized. Spring Boot has completed its startup sequence. The Startup Probe has passed. The Readiness Probe now reports: READY = TRUE The Pod has officially become part…

Part 7 – Health Probes

Why a Running Spring Boot Application Doesn't Always Mean It's Ready Sarah watches the deployment dashboard. Everything appears normal. NAME READY STATUS RESTARTS AGE payment-service-84bd67f6df-j9dkt 1/1 Running 0 18s The Pod is Running. The Deployment is progressing. There are no warning events. The release manager smiles. But within seconds, the monitoring dashboard begins turning red. Customer payment requests are failing.…

Part 6 – The kubelet

How Kubernetes Brings Your Spring Boot Application to Life In the previous article, we left our Payment Service in an interesting state. The Scheduler had successfully completed its work. After evaluating CPU, memory, affinity rules, taints, topology constraints, and available capacity, it selected the most suitable worker node for each Pod. Our cluster now looked like this. Control Plane Deployment…

Part 5 – The Kubernetes Scheduler

How Kubernetes Chooses the Perfect Node for Your Spring Boot Application In the previous article, we followed Sarah's deployment from the moment she executed kubectl apply until the Deployment Controller created a ReplicaSet, and the ReplicaSet Controller created three Pod objects. At that point, the cluster looked something like this. Deployment │ ▼ ReplicaSet │ ▼ Pod A (Pending) Pod…

The API Server – The Front Door of Kubernetes

Imagine arriving at a large international airport. Regardless of whether you're a passenger, an airline employee, airport staff, or a delivery partner, everyone enters through a controlled checkpoint. Your identity is verified, your permissions are checked, and only then are you allowed to proceed. The Kubernetes API Server plays a very similar role. It is the single entry point to…