Cloud · Kubernetes

Kubernetes multi-tenancy: namespaces, virtual control planes or dedicated clusters?

Every growing platform faces the same question: one cluster per team or customer, or shared clusters with careful isolation? Kubernetes has no built-in concept of a tenant, so the answer is a set of design choices. Here is how I make them.

ComparisonSumanta Mukhopadhyay8 min read5 sources
#kubernetes#platform#security#finops
COMPARISON · CLOUD · KUBERNETES25 Oct 2026 · 04:15 GST

Clusters multiply quietly. One per team, one per environment, one for that big customer, one for the data science group. Each brings its own upgrades, monitoring, security patches and idle capacity. Eventually someone asks whether all of this could share fewer clusters, and the answer depends almost entirely on who the tenants are and how much they trust each other.

Two kinds of tenancy

The Kubernetes documentation distinguishes two broad use cases1:

  • Multiple teams in one organisation share a cluster. There is some trust between them, members often have direct access through tools or GitOps, and workloads frequently talk to each other.
  • Multiple customers, where a vendor runs workload instances per customer. Customers never touch the cluster, cost matters a great deal, and isolation must be strong.
Diagram of a single cluster containing multi-team tenancy, where Team A and Team B run their own apps, and multi-customer tenancy, where Team C runs separate app instances for customers 1 to N
One cluster can host both models: teams sharing a cluster, and one team running per-customer instances. Source: Kubernetes documentation, Multi-tenancy · CC BY 4.0

The documentation also cautions that "hard" and "soft" multi-tenancy are better seen as a spectrum than two categories. Hard multi-tenancy usually describes tenants that don't trust each other, which demands particular attention to data-plane isolation1.

The building blocks

Control plane isolation stops tenants seeing or changing each other's API resources. Namespaces scope names and many policies; RBAC enforces least privilege, which the docs call the most important type of control-plane isolation, because a tenant who can modify another's resources can disable every other protection12. Resource quotas cap what each namespace can consume5.

Data plane isolation protects workloads at runtime: network policies to restrict traffic3, storage isolation, sandboxed containers using virtual machines or userspace kernels for untrusted code, and node isolation that dedicates nodes to a tenant1.

Fairness matters too. API Priority and Fairness prevents one tenant's controllers from overwhelming the API server4.

Containers share a kernel. If tenants may run code you don't trust, namespaces alone are not a security boundary; plan for sandboxing, dedicated nodes or separate clusters.

The three models compared

Namespace per tenantVirtual control plane per tenantCluster per tenant
IsolationShared API server; depends on careful policySeparate API views, including non-namespaced resourcesStrongest; nothing shared but the provider
CostNegligible overheadSomewhat higherHighest, especially on-premises
LimitationsNon-namespaced resources such as CRDs, storage classes and webhooks are sharedCross-tenant sharing is harderOperational overhead per cluster
Best forInternal teams with some trustTenants needing their own CRDs or admin rightsUntrusted tenants, regulated data, residency

This follows the documentation's own description: namespace isolation is well supported with negligible resource cost but can be difficult to configure and doesn't cover non-namespaced resources, while control plane virtualisation isolates those at the cost of somewhat higher resource use1.

How I decide

  1. Who writes code that runs? If tenants can run arbitrary code, assume it may be hostile, and favour sandboxing, dedicated nodes or clusters.
  2. Do tenants need cluster-level resources? Teams that ship their own operators and CRDs push towards virtual control planes.
  3. What do regulators and contracts require? Data residency and customer contracts may require dedicated infrastructure in a region, as in UAE health data localisation.
  4. What can the platform team operate? Fifty clusters run badly are riskier than five run well.
  5. Mix models. Shared clusters for most tenants, dedicated ones for the few that need them, mirroring the hybrid pattern in multi-tenant SaaS on MongoDB.

Practical rules for shared clusters

  • A namespace per workload, with names unique across the whole fleet, which the docs recommend so you can move between shared and dedicated clusters later1.
  • Default-deny networking, with explicit allows.
  • Quotas and limit ranges on every tenant namespace.
  • Guardrails as policy, such as the CEL policies in Kubernetes admission policies, so tenants can't weaken their own isolation.
  • Cost allocation by tenant, using labels and the approaches in Kubernetes FinOps.
  • Separate GPU pools where AI workloads from different tenants compete, with the scheduling controls in gang scheduling.

How I can help

I design Kubernetes platforms for internal teams and SaaS products, choosing the tenancy model that fits the trust, cost and compliance picture. As a fractional CTO I can own the platform roadmap. Or analyse your challenge and bring the result to a call.

References
  1. 1
    Multi-tenancyKubernetes documentation
  2. 2
    Using RBAC authorizationKubernetes documentation
  3. 3
    Network policiesKubernetes documentation
  4. 4
    API Priority and FairnessKubernetes documentation
  5. 5
    Resource quotasKubernetes documentation
FAQ

Common questions

Does Kubernetes support multi-tenancy?

Kubernetes has no first-class concept of tenants, but provides features such as namespaces, RBAC, resource quotas, network policies, node isolation and API Priority and Fairness that can be combined to share clusters safely.

What is the difference between soft and hard multi-tenancy?

The terms describe a spectrum of isolation. Hard multi-tenancy usually refers to tenants that don't trust each other, requiring strong data-plane isolation against attacks such as data exfiltration or denial of service. Soft multi-tenancy usually means some trust, such as teams within one organisation.

When should each tenant get its own cluster?

When isolation requirements are strict enough that shared control and data planes are unacceptable, for example untrusted tenants, regulated data or residency requirements, and the cost of operating many clusters is justified.

Keep reading

Related

Open to advisory, fractional CTO & select builds

Let's talk about what you're building.

The fastest route is a free 30-minute call. Prefer to write? Send a message and I'll reply personally within two business days.

Start a conversation

How would you like to reach me?

Book a 30-min callFastest. Pick any open slot on my calendar.→ Write in GmailOpens a pre-filled draft in your browser.→ Use my email appOutlook, Apple Mail or your default client.→

I reply personally within two business days. Time zones from the Americas and Europe to the Middle East and Asia-Pacific.