We're currently transitioning our container workloads from AWS ECS to EKS and I'm looking for a way to implement a circuit breaker feature in Kubernetes. In ECS, if there are repeated failures during a service deployment, it eventually stops attempting to deploy after a certain number of tries. However, my last experience with it was not great, as it didn't respond effectively to internal container failures. Now that we're switching to Kubernetes, I'm wondering if there's a reliable equivalent in the Kubernetes ecosystem. I've noticed that Kubernetes tends to just keep spinning up pods, which leads to issues like CrashLoopBackoff. What are my options here?
4 Answers
Kubernetes doesn't have a native circuit breaker, so it’s common to run into the CrashLoopBackOff issue. One effective strategy I've seen is to run pre-deployment tests directly in your cluster. At Testkube, we assist teams in executing various tests as Kubernetes resources, which can catch failures earlier in the deployment process, like API errors or bad configurations. This way, if a test fails, it can halt the rollout, similar to how a circuit breaker works.
We're using Terraform ourselves, which is a bit unconventional for this type of task. However, we're familiar with HCL, so it fits our skills. We're also planning to explore ArgoCD and Flux for better deployment practices, as they seem promising for handling these situations.
When you update a Deployment in Kubernetes, previous pods continue running until the new ones pass their liveness probes. So if your new update has issues, the old versions won’t be terminated right away. This can sometimes help bridge the gap when there's a deployment failure.
It really depends on how you're deploying your applications. If you're using ArgoCD, you can implement rollouts that mimic ECS's circuit breaker. For example, with Flux, you can define retries in your HelmRelease manifest. What deployment tool are you using?

Related Questions
Can't Load PhpMyadmin On After Server Update
Redirect www to non-www in Apache Conf
How To Check If Your SSL Cert Is SHA 1
Windows TrackPad Gestures