Wednesday, September 14, 2022

Kubernestes Quota

 

Resource Quotas

When several users or teams share a cluster with a fixed number of nodes, there is a concern that one team could use more than its fair share of resources.

Resource quotas are a tool for administrators to address this concern.


What are resource quotas?

In short, resource quotas provide constraints that limit resource consumption per namespace. They can be applied only at the namespace level, which means they can be applied to computing resources and limit the number of objects inside the namespace.


A Kubernetes resource quota is defined by a ResourceQuota object. When applied to a namespace, it can limit computing resources such as CPU and memory as well as the creation of the following objects:

  • Pods
  • Services
  • Secrets
  • Persistent Volume Claims (PVCs)
  • ConfigMaps

Kubernetes supports two types of CPU and memory quotas to manage compute resources. These are controlled via limits and requests, as the LimitRange documentation explains.

In short, a request defines the guaranteed CPU or memory resources for containers, while a limit is the memory or CPU threshold that a container can use, depending on what is available based on other containers' usage.

Set up a resource quota

This example creates a CPU quota, but the process is similar for a memory quota or a combination of the two.

In a real production scenario, CPU resources are usually at the top of the computing resources you need to manage to avoid resource contention. This is true whenever you have multiple applications running on top of your server (compute).

Start by creating a new namespace where you will apply your CPU quota:


root@ip-172-31-35-19:~# cat cpu_quota.yml

apiVersion: v1

kind: ResourceQuota

metadata:

  name: test-cpu-quota

spec:

  hard:

    requests.cpu: "100m"

    limits.cpu: "200m"

root@ip-172-31-35-19:~# kubectl apply -f cpu_quota.yml  -n dev

root@ip-172-31-35-19:~# kubectl describe ns dev
Name:         dev
Labels:       kubernetes.io/metadata.name=dev
Annotations:  <none>
Status:       Active

Resource Quotas
  Name:         test-cpu-quota
  Resource      Used  Hard
  --------      ---   ---
  limits.cpu    0     200m
  requests.cpu  0     100m






Limit Range and Resource Quota:

How to assign Kubernetes resource quota with examples | GoLinuxCloud







No comments:

Post a Comment

Sample Game App Deployment on EKS cluster

 https://padmakshi.medium.com/setting-up-an-eks-cluster-and-deploying-a-game-application-a-step-by-step-guide-08790e0be117