Note_Tech

All technological notes.


Project maintained by simonangel-fong Hosted on GitHub Pages — Theme by mattgraham

Kubernetes: Pod - PriorityClass

Back


PriorityClass


Imperative Command

CMD DESC
kubectl get priorityclass/kubectl get pc List priorityclass
kubectl delete pc NAME Delete priorityclass

Declarative Manifest

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

Lab: Priority Class

Default Priority Class

kubectl get pc
# NAME                      VALUE        GLOBAL-DEFAULT   AGE   PREEMPTIONPOLICY
# system-cluster-critical   2000000000   false            36d   PreemptLowerPriority
# system-node-critical      2000001000   false            36d   PreemptLowerPriority

Create Priority Class

# 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