As Kubernetes gains mainstream adoption, a number of scenarios are arising in which infrastructure and operations (I&O) teams find they must deploy and manage multiple clusters, either in a single region on-premises or in the cloud, or across multiple regions. Distributed Kubernetes clusters will be required to support multi-tenancy, disaster recovery, hybrid or multi-cloud deployment, and edge deployment of containerized applications.
Possible approaches for distributing Kubernetes clusters include spanning multiple zones with a cluster’s control plane and/or data plane, federating the control of multiple clusters (homogeneous or heterogeneous), and deploying multi-cluster application services. Some of the key issues that arise when deploying and operating multiple Kubernetes clusters at scale include the following:
- Multicluster Management: How can administrators manage the life cycle of multiple Kubernetes clusters,with centralized control over security and identity? How can resource policies be shared between clusters?
- Availability Requirements: How does the operation of multiple clusters affect the availability of application services?
- Multicluster Application Services: How can application services be deployed consistently across multiple clusters?
- Data Dependencies: How does the operation of multiple clusters affect data management?
- Security and Identity: How should security and identity be implemented across multiple clusters?
At present, the Kubernetes architecture does not define a standard approach for distributing its functionality across multiple clusters that is ready for production usage. Most solutions for distributing Kubernetes will therefore involve either the use of proprietary commercial solutions, or some combination of open-source tools.
This document (Gartner subscription required) reviews the patterns for optimizing the deployment and management of multiple Kubernetes clusters at scale. As Kubernetes clusters proliferate, it will become increasingly common to treat them like “cattle” which can be allocated and deallocated as needed. To support this model of operation, it will be necessary to establish automation pipelines for provisioning, deprovisioning and upgrading Kubernetes clusters with the same agility as containers themselves.