Online Boutique on a Kops cluster in AWS, with pods, DNS, network policy, limits, and storage broken on purpose.
20 Aug 2026 · Not a shipped product
This is a lab. I break it so I have to find the layer. Nothing here was an incident for a customer.
Reading about kube-proxy is not the same as standing in front of a Service that will not answer. I wanted a cluster I could damage in specific ways: pods, DNS, network, limits, storage. Then put it back, and write down which command actually showed the fault.
The workload is the public Online Boutique microservices demo, on a Kops cluster in AWS. The diagram is the path I walk, and the places I have deliberately broken.
Online Boutique on a Kops cluster. The breaks are on purpose.
01
Client and DNS
Wrong name, slow lookup, or CoreDNS with nowhere to run.
02
Ingress
The hostname path. If the Service works inside the cluster, I stay here.
03
Service and endpoints
Empty endpoints mean the pods are not selected or not Ready.
04
Pod
Probe path, listen address, memory limit, crash loop.
05
Policy and storage
A NetworkPolicy, or a volume that never binds because the StorageClass is missing.
A cluster, the demo installed, and a habit of changing one thing at a time. A debug pod for curls. Notes next to each break, because I do not trust my memory of which flag I flipped.
I have run these on purpose:
ndots and a short name used outside the namespace. The Service existed. The lookup was the wait.Change one thing. Write the command that proved it. Ready is not Running. A Service problem is often a pod problem, a policy problem, or a DNS problem wearing a Service's name.
The longer version of the Service path is a draft note in the failure log.