The Kubernetes Kettle solves the operational complexity of boiling water
by distributing the workload across a three-pod cluster managed by a dedicated Kubernetes
node. Each pod handles a distinct phase of the water heating lifecycle, enabling independent
scaling, rollback, and — crucially — a Helm chart.
To request hot water, users submit a HotWaterRequest Custom Resource Definition
to the cluster. The controller reconciles the desired state (boiling) with the current state
(not boiling) and dispatches work accordingly. If the cluster is idle, pods have autoscaled
to zero and there is a 45–90 second cold-start delay before any thermal activity begins.
This is expected behavior and is documented in the runbook.
Pod Architecture
-
Pod 1 — water-intake-validator:
Accepts water from the tap. Validates volume against the
WaterVolumePolicy admission webhook.
Rejects requests exceeding 2L without an override annotation. Logs every milliliter.
-
Pod 2 — temperature-computation-engine:
Computes the target temperature based on request parameters (tea, coffee, instant noodles).
Exposes a
/metrics endpoint. Requires 512Mi memory due to the temperature lookup table.
-
Pod 3 — thermal-application-service:
Applies heat. Communicates target temperature from Pod 2 via gRPC. Reports current temperature
to Prometheus every 500ms. Triggers a PagerDuty alert if temperature deviates by more than 1°C
from target for over 30 seconds.
Autoscaling Behavior
- HPA triggers scale-up at 70% CPU utilization on Pod 3
- KEDA scales all pods to zero after 10 minutes of inactivity
- Scale-from-zero cold start: 45–90 seconds (water will be cold during this period)
- Max replicas: 5 per pod (designed for hypothetical enterprise kettle farms)
- Pod Disruption Budget: minimum 1 Pod 3 replica during cluster upgrades; hot water disruption is a known maintenance window risk
Deployment
- Deployed via Helm chart
dqe/kubernetes-kettle v1.3.2
- GitOps managed via ArgoCD; changes to boiling point require a pull request
- Rolling updates supported; a new boiling algorithm can be deployed with zero planned downtime (unplanned downtime during rollout is noted in the changelog)
- Secrets (WiFi password for remote kettle monitoring) stored in Vault; rotated quarterly
Comparison to Legacy Kettle
- Legacy kettle: flip switch, wait 2 minutes, done
- Kubernetes Kettle: submit CRD, wait for pod scheduling, wait for cold start (if scaled to zero), wait for temperature computation, wait for heat application, receive water; 3–6 minutes typical
- Improvement: Full GitOps lifecycle, distributed observability, Helm-managed configuration, and a very impressive architecture diagram