volcano: Preemption is not working with v1.0.1 Helm charts

Is this a BUG REPORT or FEATURE REQUEST?:

/kind bug

What happened Below is my scheduler config:

apiVersion: v1
data:
  volcano-scheduler.conf: |
    actions: "enqueue, allocate, preempt, backfill"
    tiers:
    - plugins:
      - name: priority
      - name: gang
      - name: conformance
    - plugins:
      - name: drf
      - name: predicates
      - name: proportion
      - name: nodeorder
      - name: binpack

Queue Configuration:

apiVersion: scheduling.volcano.sh/v1beta1
kind: Queue
metadata:
  name: q3
spec:
  weight: 1
  capability:
    cpu: "3"

I have two jobs (low priority and high priority), First I submit low priority job

apiVersion: batch.volcano.sh/v1alpha1
kind: Job
metadata:
  name: sleep-job
  namespace: vbm
spec:
  schedulerName: volcano
  minAvailable: 1
  priorityClassName: volcano-low-priority
  policies:
    - event: PodEvicted
      action: RestartJob
  plugins:
    ssh: []
    env: []
    svc: []
  queue: q3
  tasks:
    - replicas: 1
      name: "sleep-pod-in-q3"
      template:
        metadata:
          name: web
        spec:
          containers:
            - image:  alpine:latest
              imagePullPolicy: IfNotPresent
              name: sleep-pod
              command: ["sleep","20m"]
              resources:
                requests:
                  cpu: "2"
          restartPolicy: OnFailure

Next when I submit high-priority job it is not pre-emting the low priority job:

apiVersion: batch.volcano.sh/v1alpha1
kind: Job
metadata:
  name: sleep-high-job
  namespace: vbm
spec:
  schedulerName: volcano
  minAvailable: 1
  priorityClassName: volcano-high-priority
  policies:
    - event: PodEvicted
      action: RestartJob
  plugins:
    ssh: []
    env: []
    svc: []
  queue: q3
  tasks:
    - replicas: 1
      name: "sleep--high-pod-in-q3"
      template:
        metadata:
          name: web
        spec:
          containers:
            - image:  alpine:latest
              imagePullPolicy: IfNotPresent
              name: sleep-pod
              command: ["sleep","20m"]
              resources:
                requests:
                  cpu: "2"
          restartPolicy: OnFailure

Below is the state of queue:

vcctl queue list
Name                     Weight  State   Inqueue Pending Running Unknown
default                  1       Open    0       0       0       0
q3                       1       Open    0       1       1       0

May I know, if this is a known issue or any configuration change I have to do ?

Is this related to https://github.com/volcano-sh/volcano/issues/991

When I try with below scheduler config, even the low priority job is in pending state.

data:
  volcano-scheduler.conf: |
    actions: "allocate, preempt, backfill"
    tiers:
    - plugins:
      - name: priority
      - name: gang
      - name: conformance
    - plugins:
      - name: drf
      - name: predicates
      - name: proportion
      - name: nodeorder
      - name: binpack

What you expected to happen: Preemption to kick in and schedule the high priority job.

About this issue

  • Original URL
  • State: closed
  • Created 4 years ago
  • Comments: 19 (9 by maintainers)

Most upvoted comments

As what I tested with master branch, preemt action works well with the default configuration:

apiVersion: v1
data:
  volcano-scheduler.conf: |
    actions: "enqueue, allocate, preempt, backfill"
    tiers:
    - plugins:
      - name: priority
      - name: gang
      - name: conformance
    - plugins:
      - name: drf
      - name: predicates
      - name: proportion
      - name: nodeorder
      - name: binpack

How about the test with latest code?

I have same problem with v1.1.0.

Does this PR solve the problem?

No, it’s another bug