Multi-cluster app support in Rancher Kubernetes Engine stokes a growing debate in the IT industry about how best to handle multi-cloud container management.
The two main Kubernetes federation discussions center around whether multiple applications should share a single multi-tenant cluster divided using Kubernetes namespaces or whether multiple Kubernetes clusters should run alongside one another and use centralized software tools to unify their management.
With Rancher Kubernetes Engine 2.2, unveiled this week and set to become generally available in March 2019, the container management vendor comes down firmly in the latter camp. The update builds on the open source Helm application deployment charts for Kubernetes to create something of a single application brain across multiple clusters for applications such as container security scanning tools, which are often used among all the different environments within an enterprise.
"It's common for our customers to operate many separate clusters, but they have the desire to manage services and do rolling upgrades across them as a group," said Shannon Williams, Rancher's co-founder.
Large enterprises that use multiple public cloud providers alongside on-premises infrastructure are unlikely to use one global cluster, in Williams' view.
"The barrier to entry to create Kubernetes clusters is very low, and it offers a level of isolation you don't get with namespaces," he said. "There's a good debate to be had here, and pros and cons to both, but separate clusters are easier to manage for multi-region disaster recovery."
It can also be difficult to anticipate the infrastructure requirements of a single shared cluster as applications grow, Williams added. Multiple clusters for different business units or for different stages of the software deployment process, from development to testing and staging, mean less contention for shared resources.
Jay Lymananalyst, 451 Research
Moreover, Kubernetes multi-tenancy and cluster federation projects remain in the early stages of development in the open source community, which makes multi-cluster management a more stable option, according to Williams. Kubernetes documentation recommends a multi-cluster approach for multi-region high availability.
However, other industry watchers said it's still rare to see the kind of maturity among Kubernetes users that creates the need to manage Kubernetes multi-cluster apps in production, though they didn't rule it out as the eventual winner of the debate between the two approaches.
"It's still early days, but that may be where we're headed," said Jay Lyman, analyst at 451 Research, of the multi-cluster approach. "It's similar to the move to public cloud -- organizations want to manage a lot of applications and services with Kubernetes, and they're saying, 'If we're going to dive in, we want to cast as wide a net as we can.'"
Rancher vs. OpenShift: Take a stand vs. play both sides
While Kubernetes multi-cluster apps might be the wave of the future, the practice isn't widespread today, said Chris Riley, director of solutions architecture at cPrime, an Agile software development consulting firm in Foster City, Calif.
"I haven't seen multiple clusters in practice, though I have seen some interest in multiple clouds," Riley said. "But if Rancher can mitigate the differences between public cloud Kubernetes services and use Helm to define more complex application integrations between them, then that could be a powerful feature in about six months to a year."
Rancher's strongest competitor, Red Hat OpenShift, supports both the single-cluster and multi-cluster app approach. OpenShift 3.11, released in December 2018, includes the Kubernetes Federation version 2 in preview, which is analogous to Rancher's multi-cluster app support in version 2.2. But Red Hat will also work with the multi-tenancy working group in the upstream Kubernetes community to advance the single-cluster approach.
"We've found that it's not a question that is answered with a single decision, and OpenShift supports both models," said Brian Gracely, director of product strategy for OpenShift. "It tends to align [with] whether Kubernetes is offered as a centralized service or a distributed service by individual groups within a company, the cost of operations, the variability of workload usage between groups, and how companies manage billing in public cloud environments."