Find the Best Cosmetic Hospitals

Explore trusted cosmetic hospitals and make a confident choice for your transformation.

“Invest in yourself — your confidence is always worth it.”

Explore Cosmetic Hospitals

Start your journey today — compare options in one place.

Kubernetes ResourceQuota & LimitRange Example Programs

Kubernetes ResourceQuota and LimitRange are two important mechanisms for managing resource allocation and usage within a Kubernetes cluster.

Here’s a comparison of ResourceQuota and LimitRange features and use cases in a tabular format:

FeatureResourceQuotaLimitRange
ScopeNamespace-wideIndividual pods and containers
PurposeLimit aggregate resource consumptionSet constraints on individual resources
Resource TypesCPU, memory, storage, object countsCPU, memory
Default ValuesDoes not set defaultsCan set default requests and limits
Enforcement LevelAcross all pods in a namespacePer pod or container
Ratio EnforcementNoCan enforce request-to-limit ratio
Object CreationCan limit number of objects by typeN/A
Use CaseResourceQuotaLimitRange
Prevent resource overuse by a team
Ensure fair resource distribution
Set default resource requests/limits
Prevent creation of pods without limits
Limit storage consumption
Control number of objects (e.g., services, ConfigMaps)
Enforce minimum resource requirements
Prevent excessive resource allocation to single pod
Maintain consistent request-to-limit ratios
Isolate resources between different environments (dev/prod)

This comparison highlights the complementary nature of ResourceQuota and LimitRange in managing Kubernetes cluster resources effectively.

ResourceQuota

ResourceQuota is used to limit the aggregate resource consumption per namespace. It can restrict:

  • Total compute resources (CPU and memory) that can be requested
  • Number of objects that can be created by type (e.g., pods, services)
  • Total storage resources that can be consumed

Key features:

  • Applied at the namespace level
  • Limits the sum of resources across all pods in a namespace
  • Enforces constraints on both resource requests and limits

Example ResourceQuota:

apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-resources
spec:
  hard:
    requests.cpu: "2"
    requests.memory: 1Gi
    limits.cpu: "4"
    limits.memory: 2GiCode language: CSS (css)

LimitRange

LimitRange sets constraints on individual pods and containers within a namespace. It can:

  • Enforce minimum and maximum compute resources per pod or container
  • Set default request/limit values for containers
  • Enforce a ratio between request and limit for a resource

Key features:

  • Applied at the pod and container level within a namespace
  • Sets default values for resource requests and limits
  • Can prevent the creation of pods that don’t meet the specified constraints

Example LimitRange:

apiVersion: v1
kind: LimitRange
metadata:
  name: limit-mem-cpu-per-container
spec:
  limits:
  - default:
      cpu: 500m
      memory: 512Mi
    defaultRequest:
      cpu: 200m
      memory: 256Mi
    type: ContainerCode language: JavaScript (javascript)

Use Cases

  • ResourceQuota: Useful for enforcing overall resource constraints in a shared cluster environment, preventing one team or application from consuming all available resources.
  • LimitRange: Helpful for setting reasonable defaults and preventing the creation of pods with excessive resource requirements or no specified limits.

By using both ResourceQuota and LimitRange together, cluster administrators can effectively manage resource allocation and ensure fair usage across different teams and applications within a Kubernetes cluster.

apiVersion: v1
kind: Namespace
metadata:
  name: myspace
---
apiVersion: v1
kind: ResourceQuota
metadata:
  name: compute-quota
  namespace: myspace
spec:
  hard:
    requests.cpu: "1"
    requests.memory: 1Gi
    limits.cpu: "2"
    limits.memory: 2Gi
---
apiVersion: v1
kind: ResourceQuota
metadata:
  name: object-quota
  namespace: myspace
spec:
  hard:
    configmaps: "10"
    persistentvolumeclaims: "4"
    replicationcontrollers: "20"
    secrets: "10"
    services: "10"
    services.loadbalancers: "2"



apiVersion: extensions/v1beta1
kind: Deployment
metadata:
  name: helloworld-deployment
  namespace: myspace
spec:
  replicas: 3
  template:
    metadata:
      labels:
        app: helloworld
    spec:
      containers:
      - name: k8s-demo
        image: wardviaene/k8s-demo
        ports:
        - name: nodejs-port
          containerPort: 3000
        resources:
          requests:
            cpu: 200m
            memory: 0.5Gi
          limits:
            cpu: 400m
            memory: 1Gi


apiVersion: v1
kind: LimitRange
metadata:
  name: limits
  namespace: myspace
spec:
  limits:
  - default:
      cpu: 200m
      memory: 512Mi
    defaultRequest:
      cpu: 100m
      memory: 256Mi
    type: ContainerCode language: JavaScript (javascript)

Find Trusted Cardiac Hospitals

Compare heart hospitals by city and services — all in one place.

Explore Hospitals
I’m a DevOps/SRE/DevSecOps/Cloud Expert passionate about sharing knowledge and experiences. I have worked at <a href="https://www.cotocus.com/">Cotocus</a>. I share tech blog at <a href="https://www.devopsschool.com/">DevOps School</a>, travel stories at <a href="https://www.holidaylandmark.com/">Holiday Landmark</a>, stock market tips at <a href="https://www.stocksmantra.in/">Stocks Mantra</a>, health and fitness guidance at <a href="https://www.mymedicplus.com/">My Medic Plus</a>, product reviews at <a href="https://www.truereviewnow.com/">TrueReviewNow</a> , and SEO strategies at <a href="https://www.wizbrand.com/">Wizbrand.</a> Do you want to learn <a href="https://www.quantumuting.com/">Quantum Computing</a>? <strong>Please find my social handles as below;</strong> <a href="https://www.rajeshkumar.xyz/">Rajesh Kumar Personal Website</a> <a href="https://www.youtube.com/TheDevOpsSchool">Rajesh Kumar at YOUTUBE</a> <a href="https://www.instagram.com/rajeshkumarin">Rajesh Kumar at INSTAGRAM</a> <a href="https://x.com/RajeshKumarIn">Rajesh Kumar at X</a> <a href="https://www.facebook.com/RajeshKumarLog">Rajesh Kumar at FACEBOOK</a> <a href="https://www.linkedin.com/in/rajeshkumarin/">Rajesh Kumar at LINKEDIN</a> <a href="https://www.wizbrand.com/rajeshkumar">Rajesh Kumar at WIZBRAND</a> <a href="https://www.rajeshkumar.xyz/dailylogs">Rajesh Kumar DailyLogs</a>

Related Posts

List of containerized storage orchestration in Kubernetes

List of Containerized Storage Orchestration Solutions in Kubernetes (2026 Edition) Kubernetes has become excellent at orchestrating stateless applications, but stateful workloads still need a proper storage layer….

Read More

Understanding Authentication & Authorization in kubernetes

Authentication – How User’s access should be allowed? The process or action of verifying the identity of a user or process.Authorization – What Access and till what…

Read More

Kubernetes 1.23.6 Cluster Setup Master and Worker in Ubuntu 20.04

Latest doc – https://github.com/certifications-tutorials/kubernetes-cluster-setup Following commands would help you to create 1 Master and 1 Node in same VM. Run Following commands in Master Node Run following…

Read More

Kubernetes PersistentVolume, PersistentVolumeClaim, volume using hostPath

pv.yaml $ kubectl create -f pv.yaml $ kubectl get pv pvc.yaml $ kubectl create -f pvc.yaml $ kubectl get pvc pod.yaml Rajesh Kumar I’m a DevOps/SRE/DevSecOps/Cloud Expert…

Read More

Kubernetes: Working with ReplicationController

A ReplicationController is a Kubernetes controller that ensures that a specified number of pod replicas are running at any one time. In other words, a ReplicationController makes…

Read More

Kubernetes Tutorials: Pod Load balancing using Service

In Kubernetes, a Service is an abstraction that defines a logical set of pods and a policy by which to access them. It provides a stable network…

Read More