All technological notes.
PriorityClass
Priority:
Control plane components range
2,000,001,0002,000,000,000User-Defined Range:
-2,147,483,648 - 1,000,000,000Priority Value
0PriorityClass with globalDefault: truePriorityClassBehaviaor:
Preemption Policy:
PreemptLowerPriority:
never:
Purpose:
| CMD | DESC |
|---|---|
kubectl get priorityclass/kubectl get pc |
List priorityclass |
kubectl delete pc NAME |
Delete priorityclass |
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: high-priority
value: 1000000000
description: "Critical platform services."
preemptionPolicy: PreemptLowerPriority
globalDefault: false
# pod
spec:
priorityClassName: high-priority
kubectl get pc
# NAME VALUE GLOBAL-DEFAULT AGE PREEMPTIONPOLICY
# system-cluster-critical 2000000000 false 36d PreemptLowerPriority
# system-node-critical 2000001000 false 36d PreemptLowerPriority
# demo-priorityclass.yaml
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: high-priority
value: 100000
preemptionPolicy: PreemptLowerPriority
---
apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
name: low-priority
value: 1000
preemptionPolicy: PreemptLowerPriority
# demo-priorityclass-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: low-priority-pod
spec:
priorityClassName: low-priority # specify priority
containers:
- image: nginx
name: nginx
---
apiVersion: v1
kind: Pod
metadata:
name: high-prio-pod
spec:
priorityClassName: high-priority # specify priority
containers:
- image: nginx
name: nginx
kubectl apply -f demo-priorityclass.yaml
# priorityclass.scheduling.k8s.io/high-priority created
# priorityclass.scheduling.k8s.io/low-priority created
kubectl apply -f demo-priorityclass-pod.yaml
# pod/low-priority-pod created
# pod/high-prio-pod created
kubectl get pods -o custom-columns="NAME:.metadata.name,PRIORITY:.spec.priorityClassName"
# NAME PRIORITY
# high-prio-pod high-priority
# low-prio-pod low-priority