August 15, 2023
5
min read

Secure Multi-tenant Kubernetes with Virtual Clusters

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.

Common Use Cases for Multi-tenancy

Multi-tenancy addresses various scenarios, including:

  • Multi-team tenancy - Organizations with multiple teams can efficiently utilize a smaller number of centrally managed Kubernetes clusters.
  • Multi-environment tenancy - By creating flexible staging, testing, and production environments within shared clusters, administrators can enhance developer productivity while reducing overhead.
  • Multi-customer tenancy - SaaS providers can benefit from scalability and cost savings through shared cluster infrastructure.

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 Solution to Kubernetes Multi-tenancy

Uffizzi's virtual clusters offer several benefits in addressing the challenges of Kubernetes multi-tenancy:

  • Enhanced isolation compared to basic namespace-based multitenancy
  • Reduced cloud computing costs due to the lightweight nature of virtual clusters
  • Logical separation of application workloads from the shared infrastructure of the underlying cluster

At the same time, virtual clusters provide the same functionality as conventional Kubernetes clusters.

Distinct Control Planes and Isolation

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:

  • Pod Security Policies - Administrators must limit pod access to the API server as well as other shared resources such as disks and ports
  • Access Controls - Administrators must create a centralized system for managing users, groups, and roles for team member permissions.
  • Network Policies - Administrators must override Kubernetes’s default networking policy of allowing all pods to communicate with one another. To do this, they must configure a network policy for all namespaces, then allow users to add firewalls rules for their specific applications.
  • Resource Limits and Quotas - Administrators must enforce fair sharing of compute resources, such as memory and CPU, through limits and quotas.

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.

Automated Security Measures

Uffizzi's virtualization layer includes the integration of various Kubernetes security controls with automatic configuration, following industry best practices. These encompass aspects such as:

  • Enforcing pod security standards through admission control policies
  • Implementing resource quotas and limit ranges
  • Enabling network policies

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.

Conclusion

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.

Uffizzi logo
Environments as a Service
Learn More
preview icon
Empower your devs with an environment for every pull request
time icon
Avoid release delays that cost millions in missed revenue
Velocity icon
Improve development velocity at scale by up to 50%
Lifecycle icon
Plan capacity in real time with lifecycle management built in
Learn More