GitOps is the equivalent of a Kubernetes Controller
A Kubernetes Controller, which runs on the Kubernetes Control Plane, ensures that the observed state of the cluster matches the desired state
A thread 🧵
A Kubernetes Controller, which runs on the Kubernetes Control Plane, ensures that the observed state of the cluster matches the desired state
For example, the Deployment Operator (like a Deployment spec in a Kubernetes Manifest) watches fo ensure that all of the applications running as a Kubernetes Deployment are in the desired state
With GitOps, it’s doing the same thing except the source control repo (for example, a repo on GitHub) is using the repo as the Controller
The repo inside of source control tells Kubernetes “this is the desired state” and GitOps confirms that by looking at the repo
TLDR; Kubernetes Controllers and GitOps is the same technical concept
When you're putting any application on Kubernetes, you have to confirm a few things if you want a successful deployment.
A thread 🧵
A few things to keep in mind are:
- Is the Pod healthy
- Is the Pod running as expected
- Does Kubelet know when to restart a failed/unhealthy container
- Should a Pod receive requests
- Should Kubelet start accepting traffic
and A LOT more
Check out my latest video on how you can implement the above with Liveness and Readiness Probes