Skip to content

Descheduler

VM's need an annotion!

VM's / Pods need the annotation descheduler.alpha.kubernetes.io/evict: true to be included into the descheduler process! By default VM's createed via templates do not have the annotation.

1
2
3
4
5
6
7
apiVersion: kubevirt.io/v1
kind: VirtualMachine
spec:
  template:
    metadata:
      annotations:
        descheduler.alpha.kubernetes.io/evict: "true"

Applying the annotation to all VM's in the current namespace:

1
2
3
4
for VM in $(kubectl get vm -o jsonpath='{.items[*].metadata.name}'); do
    echo "Updating compute resources for VM: $VM"
    kubectl patch vm "$VM" --type='json' -p="[{'op': 'add', 'path': '/spec/template/metadata/annotations/descheduler.alpha.kubernetes.io~1evict', 'value': 'true'}]"
done

Resources

Installation

Configuration

KubeDescheduler details

apiVersion: operator.openshift.io/v1
kind: KubeDescheduler
metadata:
  name: cluster
  namespace: openshift-kube-descheduler-operator
spec:
  logLevel: Normal
  mode: Automatic
  operatorLogLevel: Normal
  deschedulingIntervalSeconds: 60
  profileCustomizations:
    devEnableEvictionsInBackground: true
    devLowNodeUtilizationThresholds: Medium

2024-12-18 2024-12-18 Contributors: Robert Bohne