Virtualizing the control plane enforces strong isolation while avoiding the operational complexity of other multi-tenancy approaches. Uffizzi virtual clusters unlock flexible scaling for developers and maximal control for administrators.
Kubernetes multi-tenancy involves the effective sharing of Kubernetes infrastructure among multiple tenants, such as teams or individuals within an organization. Traditionally, administrators would respond to the demand for environment access by creating separate Kubernetes clusters. However, this leads to operational complexities, heightened costs, and security concerns as more tenants and their environment demands grow. It also hinders a team’s ability to scale and encourages a “mushroom farm” culture.
Uffizzi's solution offers a distinct approach. It fosters the creation of virtualized Kubernetes clusters nested within namespaces of a primary Kubernetes cluster. This innovative method curbs the proliferation of clusters while establishing stronger isolation and resource sharing efficiencies.
Multi-tenancy addresses various scenarios, including:
Uffizzi's virtual clusters enable each of these use cases, providing a streamlined multi-tenant experience with strong isolation out of the box.
Uffizzi's virtual clusters offer several benefits in addressing the challenges of Kubernetes multi-tenancy:
At the same time, virtual clusters provide the same functionality as conventional Kubernetes clusters.
Historically, some teams have set out to solve Kubernetes multi-tenancy through data plane isolation—i.e. simple namespace isolation. The problem with this approach is that it requires careful configuration of various other Kubernetes resources, including:
Needless to say, this approach is complex, burdensome, and fraught with potential for security mishaps.
The standout feature of Uffizzi's virtual clusters, on the other hand, lies in their capability to establish separate Kubernetes control planes for each virtual cluster. In this design, each virtual cluster has its own copy of the API server and other Kubernetes resources, so users can operate independently, without the administrative overhead.
Virtualizing Kubernetes at the control plane enables greater flexibility, including scenarios where users need access to the API server. For example, with Uffizzi virtual clusters, tenants configure their own CustomResourceDefinitions(CRDs)—without needing assistance from cluster managers or site reliability engineering teams. This gives teams the ability to easily experiment with various Kubernetes applications like Istio that are often implemented as CRDs. Virtual clusters are, therefore, well suited as ephemeral development, testing, and debugging environments, not only for user-facing applications, but also for Kubernetes applications that require API server access.
Uffizzi's virtualization layer includes the integration of various Kubernetes security controls with automatic configuration, following industry best practices. These encompass aspects such as:
Unlike before, where administrators had to manually configure security measures for virtual clusters, Uffizzi now provides a default security measures set for isolating virtual clusters. This not only simplifies the process but also ensures better security implementation.
Still, Uffizzi's virtualization layer allows for customization for administrators who want to tailor isolation according to their organization’s needs and policies.This combination of secure defaults and advanced configurability make Uffizzi virtual clusters well suited for teams of all levels.
Just as it has for compute, networking, and storage, virtualization offers an efficient and secure way to scale Kubernetes. Virtual clusters unlock use cases that were, until now, impractical and provide developers with the flexibility to operate independently, while still empowering administrators to impose guardrails and oversight.
By virtualizing the control plane and including default configurations that enforce best practices, Uffizzi virtual clusters offer a comprehensive security model, enhancing isolation, and fair resource sharing without the operational complexity of other strategies. Paired with the concept of ephemeral environments, Uffizzi virtual clusters allows a team’s test infrastructure to scale as their teams grow and remove bottlenecks that hinder rapid development velocity.