Kubernetes - Priority Class

La priority class indique l’importance d’un pod par rapport à un autre.
Si un pod ne peut pas être schedulé, le scheduler peut “éjecter”un pod avec une priorité basse.
Attention un utilisateur malicieu pourrait créer des pods avec un priorité haute, pour limiter cela il est possible de restreindre avec le Resource Quota.

Configuration

high-priority-priorityclass-definition.yaml

apiVersion: scheduling.k8s.io/v1
kind: PriorityClass
metadata:
  name: high-priority
value: 1000000
globalDefault: false
description: "This priority class should be used for XYZ service pods only."

Note : preemptionPolicy: (Optional) Specifies whether Pods with lower priority can be preempted by Pods with this PriorityClass. Valid values are PreemptLowerPriority (default) and Never.

Utilisation avec un pod pod-definition.yaml

apiVersion: v1
kind: Pod
metadata:
  name: nginx
spec:
  priorityClassName: high-priority
  containers:
  - image: nginx
    name: nginx

Commandes

Lister les PriorityClass

kubectl get priorityclass

Annexe

Article sur les PriorityClasses