What it is: Federated Kubernetes is a way of deploying Kubernetes, the popular container orchestration framework, over multiple platform providers or including on-premises and public clouds. Using federation, enterprises can split their applications over multiple clouds, or over combinations of cloud and on-premise to support scalability, resiliency, and platform choice.
What it does: Federated Kubernetes deployment involves splitting a Kubernetes cluster into multiple distributed clusters. One is a ‘host’ cluster: this becomes the default for all the other clusters, which are clones by default. Then, these clusters are all managed through a Federation Controller Manager, which monitors performance and ensures consistency, among other functions.
Why it matters: Kubernetes, without any federation, is already a powerful way to deploy and scale applications. However, there are inherent drawbacks to deploying a Kubernetes application on one platform only. For example, if that datacenter or public cloud provider goes down or experiences performance issues, the entire deployment suffers. Additionally, your configuration can suffer from vendor lock-in if it’s set up for one cloud provider only. Also, federation can, in some cases, achieve increased performance, by allowing for applications to be consistently hosted closer to the edge, potentially increasing performance. Also, the ability to partition applications to run on different platforms thus providing a division of processing that supports higher performance, considering that the application can take a “divide and conquer” approach. Finally, federation allows you to combine on-premise resources with cloud seamlessly
What to do about it: Consider federation if your Kubernetes deployment is encountering reliability or performance issues (or has the potential to do so), and/or if you’re concerned about vendor lock-in, and/or if you have on-premise resources you’d like to leverage as part of a cloud solution. Keep in mind that Federated Kubernetes is a complex way of approaching a framework that’s already complicated and that it hasn’t completely matured.
- Can provide greater reliability
- Helps leverage existing on-premise resources
- Potential performance gains
- Complicated implementation
- Technology hasn’t fully matured
- Incorrect configuration of management layer can lead to large-scale failure
Case Study: CERN
CERN, the European Center for Nuclear Research, uses a federated Kubernetes solution. This helps the organization deal with peak workloads by dynamically adding public cloud resources to its massive data-center. Software engineer Ricardo Rocha comments: “It comes with built-in monitoring and logging for all the applications and the workloads that deploy in Kubernetes. This is a massive simplification of our current deployments.”