After a tidy-up of application labels, checkout-web is running but traffic through its Kubernetes Service returns 503.
Start by checking whether the workload is actually running.
Try: kubectl get pods
The Service has endpoints again.
checkout-web now selects the running Pods, so traffic has concrete backends instead of an empty endpoint list.
Lesson
When Pods are healthy but a Service returns 503, compare the Service selector with Pod labels before changing the workload. Fixing the selector is smaller and safer than restarting healthy Pods.
Edit service/checkout-web
Change the selector so it matches the labels on the running checkout-web Pods.