Replies: 2 comments 2 replies
-
I'm a bit biased about it since the main maintainer and contributor to Kamaji, hope someone else can join the discussion. Kamaji was born due to my personal experience in managing a fleet of Kubernetes clusters, mostly on-prem, thus with a higher cognitive load and responsibilities compared to the cloud (sic). Creating clusters was a cumbersome task for many reasons, although some automation can easily solve it: the real challenge was operating it in the long term, such as:
Back in the day, I was mostly involved in writing operators and the idea of an Operator that manages Kubernetes control planes as regular applications popped into my mind. Nothing new if you look for Great software is expected to make easy something difficult, that has been our deliverable (pretty sure @bsctl agrees on that), and the complexity I found with Gardener has been terrific the first time I saw it. In Kamaji, essentially, you have just two resources:
Before delving into the concepts, describing Kamaji, in a nutshell, would be Kubernetes API Server as a Service. Having one This is what we call the "Kubernetes Tax" (credits, @bsctl), and the reason resides on the raft algorithm used by Now you can image an organization where multiple small teams need to manage their own small clusters: besides the cluster sprawl, the amount of In the end, with Kamaji you can pick if having a 1:1 ownership between the CP and the DataStore, or by having a pool according to your design. However, we noticed that using I know this could be a wall of text, tl;dr; our aim was to provide software addressing Day-2 problems (such as the migration of the datastore, or the linear minor update of the Kubernetes version) in the simplest way, by abstracting the underlying infrastructure and focusing only on the most critical part of maintaining a cluster, the Control Plane. Also, the design of the multi-tenant DataStore could be saw as opinionated, however, it's optional and nobody is blocking you from having a 1:1 DS and TCP relation. Last but not least, Kamaji aims to be perfectly integrated with the Cluster API ecosystem, and we started supporting it by working with the community and the other infrastructure working group by providing the CAPI Control Plane Provider. |
Beta Was this translation helpful? Give feedback.
-
@luisdavim Thanks for asking that and for looking at Kamaji. Totally agree with what @prometherion said. Kamaji has been designed according to our experience and conversations from professional consultancy with several MSPs/CSPs looking for a simple and effective way to manage Kubernetes clusters at scale. And with cost saving requirements, as "infrastructure can scale but people managing it do not" (credits to @prometherion). We have been supported those customers in scouting several solutions and Gardener was an option we evaluated. However, what discouraged our customers to use Gardner was the inherent complexity that would not suit their operational burden saving requirements. So we built Kamaji having customers requirements in mind. That said, we reconize Gardner as pioneer in the hyper-scale kubernetes space. However, we want to keep Kamaji simpler as much as possible and perfectly integrated with the Cluster API ecosystem. Hope this helps. |
Beta Was this translation helpful? Give feedback.
-
This project seems similar to https://github.com/gardener/gardener what are the main differences? Why should we choose one over the other?
Beta Was this translation helpful? Give feedback.
All reactions