Limit Range

Scheduling pods with a limit range #

A limit range schedule policy can be used in a KWOK cluster.

Prerequisites #

Create cluster #

kwokctl create cluster

View clusters #

This ensures that the cluster was created successfully.

kwokctl get clusters

Create nodes #

kwokctl scale node --replicas 1

Create a resource limit #

kubectl apply -f limit-range.yaml

Confirm the limit has the required values #

kubectl describe limitranges cpu-resource-constraint

Name:       cpu-resource-constraint
Namespace:  default
Type        Resource  Min   Max  Default Request  Default Limit  Max Limit/Request Ratio
----        --------  ---   ---  ---------------  -------------  -----------------------
Container   cpu       100m  1    500m             500m           -

Deploy a pod above the resource limit #

  • Pod specification:
    • CPU Request: 700m
kubectl create -f pod-beyond-limit.yaml

Notice the error Invalid value: "700m": must be less than or equal to cpu limit of 500m

Deploy a pod within the resource limit #

  • Pod specification:
    • CPU Request: 400m
kubectl apply -f pod-within-limit.yaml

Confirm that the pod is running #

kubectl get pod

NAME                 READY   STATUS    RESTARTS   AGE
pod-within-limit   1/1     Running   0          10s

Delete the cluster #

kwokctl delete cluster

Conclusion #

This example demonstrates how to use KWOK to simulate a scheduling scenario based on setting a limit range policy.