top of page

Stakater Blog

Follow our blog for the latest updates in the world of DevSecOps, Cloud and Kubernetes

Best Practices for Resource Quotas and Isolation in Shared Clusters

Managing a multi-tenant Kubernetes cluster — where multiple teams or applications share a single cluster — requires careful governance. Sharing a cluster brings real efficiency benefits, like better resource utilization and less overhead compared to running many small clusters.


But to realize these benefits safely, our platform teams need to enforce strong workload isolation and fair resource usage. Without the right safeguards, one tenant can easily become a “noisy neighbor,” monopolizing resources or impacting others.


In this blog, we’ll explore Kubernetes best practices for isolation and fairness in shared clusters — and show how the Stakater Multi-Tenant Operator (MTO) automates these practices for platform engineers, security teams, and developers.


Challenges of Multi-Tenancy in Kubernetes

Operating a shared cluster for multiple tenants is powerful, but it also brings challenges around isolation and resource fairness:


  • Isolation: By default, Kubernetes namespaces provide basic scoping but don’t fully isolate tenants. All pods can freely communicate across namespaces unless we restrict them. That creates security and privacy risks if one team can impact another.

  • Resource Fairness: Kubernetes schedules workloads cluster-wide, which means one tenant could consume a disproportionate amount of CPU, memory, or other resources. Without quotas or limits, a single team’s spike could easily starve others of what they need.

  • Complexity: Strong multi-tenant isolation requires configuring many different features — namespaces, RBAC roles, resource quotas, limit ranges, network policies, pod security rules, and more — and applying them consistently for each tenant. Doing this manually is error-prone and hard to maintain at scale.


Kubernetes Best Practices for Isolation and Fair Resource Usage


Namespace-Based Isolation and RBAC

Namespaces are the foundation of multi-tenancy in Kubernetes. Each tenant should have one or more dedicated namespaces. Layering Role-Based Access Control (RBAC) ensures that users and service accounts from one tenant can’t access resources in another tenant’s namespace. Following the principle of least privilege helps us maintain secure access control.


ResourceQuotas and LimitRanges

To prevent resource hogging and ensure fair use of cluster capacity, we can use ResourceQuota and LimitRange objects in each tenant’s namespace. ResourceQuotas cap total usage (CPU, memory, storage), while LimitRanges make sure individual pods don’t consume too much and define default limits.


NetworkPolicies

By default, pods can talk to each other across namespaces. NetworkPolicies let us restrict ingress and egress traffic. A “default deny” posture ensures each tenant’s workloads are isolated, only allowing the traffic that’s explicitly required.


Pod Security Standards (PSS)

PSS define workload hardening profiles (Privileged, Baseline, Restricted). Enforcing the Restricted profile prevents tenants from running risky configurations like privileged containers or hostPath volumes.


Other Isolation Measures

  • Node Isolation: Taint nodes for tenant-specific workloads.

  • Storage Isolation: Scope storage classes and PVCs per tenant.

  • Ingress Controls: Use tenant-specific ingress resources or gateways.


How Stakater MTO Simplifies Resource Quotas and Isolation

Stakater’s Multi-Tenant Operator (MTO) streamlines secure multi-tenancy in Kubernetes by automating best practices at scale:


Tenant CRD and Automation

Our platform teams create a Tenant custom resource to define ownership, quota class, namespaces, sleep/wake schedules, and more. MTO then provisions namespaces, applies policies, and sets up RBAC automatically.


Quota Classes

Admins define reusable Quota CRs (e.g., small, medium, large), which include ResourceQuotas and LimitRanges. MTO enforces these across all namespaces for each tenant.


RBAC and Namespace Setup

MTO configures namespace-scoped RBAC per tenant automatically, eliminating manual role binding and ensuring least-privilege access.


NetworkPolicy and PSS Templates

MTO applies default NetworkPolicies (e.g., deny-all) and Pod Security Standards (e.g., restricted) to all tenant namespaces automatically.


Hibernation

Tenants can specify sleep and wake schedules. MTO automatically scales workloads to zero replicas and back up during those windows, helping us save costs and reduce attack surfaces.


Compliance and Auditability

MTO enforces security and isolation policies consistently across tenants. All tenant creation and updates are declarative and auditable, supporting compliance with standards like SOC 2 and ISO 27001.


Kubernetes Native vs. MTO-Enhanced Approach

Aspect

Kubernetes Native

With MTO

Namespace + RBAC

Manual setup

Automated via Tenant CR

ResourceQuotas + LimitRanges

Applied per namespace manually

Enforced via reusable quota classes

NetworkPolicies

Manually created per namespace

Auto-applied via templates

Pod Security Standards

Manually labeled

Auto-enforced via namespace labeling

Hibernation

Requires custom scripting

Built-in via Tenant sleep/wake schedule

Auditability

Fragmented

Centralized and consistent

Audience-Specific Benefits


Platform Engineers

  • Rapid onboarding of new teams

  • Zero-touch enforcement of quotas and policies

  • Consistent multi-tenant setups across clusters


Security Teams

  • Strong workload isolation (network, RBAC, PSS)

  • Audit trails and policy enforcement

  • Easy alignment with compliance frameworks


Developers

  • Fast access to self-service environments

  • Clear resource limits and guardrails

  • Safe, isolated environments for experimentation


Final Thoughts

Running a shared Kubernetes cluster doesn’t have to be risky or difficult. By following best practices like namespaces, RBAC, ResourceQuotas, LimitRanges, NetworkPolicies, and Pod Security Standards, we can create secure and fair environments for multiple teams.


With Stakater MTO, these best practices are baked in — automated, auditable, and scalable. Platform engineers can confidently provide secure Kubernetes environments, security teams can enforce policies, and developers can move fast within guardrails.


Empower your platform. Enforce consistency. Scale with MTO.


bottom of page