Add kubernetes-deployment: probes, shutdown, JVM ergonomics, HPA

Companion code for "Deploying Spring Boot 4 on Kubernetes: Probes, Graceful
Shutdown, Limits and JVM Ergonomics". A dependency outage under three
probe-group setups, a rolling restart under load four ways (three runs
each), the JVM's ergonomic choices for nine pod shapes, one GC-heavy load
under five CPU limits with throttling counters, and an HPA driven by a
Micrometer gauge through prometheus-adapter. Measured on k3s v1.36.4.

Co-Authored-By: Claude Opus 5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01C3TETMrqVUWeFkNtz3Jbo3
This commit is contained in:
2026-09-11 17:12:10 +00:00
co-authored by Claude Opus 5
parent 644da9e65e
commit a065696478
72 changed files with 28415 additions and 2 deletions
@@ -0,0 +1,27 @@
# What Micrometer exports (one pod):
$ curl <pod>:8080/actuator/prometheus | grep app_inflight
# HELP app_inflight_requests Requests currently being processed by /work
# TYPE app_inflight_requests gauge
app_inflight_requests{application="orders"} 0.0
# What the HPA controller sees through the custom metrics API:
$ kubectl get --raw /apis/custom.metrics.k8s.io/v1beta1/namespaces/demo/pods/%2A/app_inflight_requests
{
"kind": "MetricValueList",
"apiVersion": "custom.metrics.k8s.io/v1beta1",
"metadata": {},
"items": [
{
"describedObject": {
"kind": "Pod",
"namespace": "demo",
"name": "orders-7774f94779-gvc7k",
"apiVersion": "/v1"
},
"metricName": "app_inflight_requests",
"timestamp": "2026-09-11T16:33:28Z",
"value": "0",
"selector": null
}
]
}