Skip to main content

Linux sched_ext · OCI images

schedkit

CPU schedulers,
packaged as OCI images.

Use schedctl on a Linux host or sked in Kubernetes to verify and run sched_ext scheduler images.

OCI scheduler package arriving at a Linux hostAn isometric parcel labelled OCI sits above a host board. Dashed lines lead to a socket representing sched_ext, with traces connecting it to four CPU cores.OCIschedkitOCI schedulersched_extCPU coresLinux hostverify + start
The scheduler arrives as an OCI image and attaches to the host kernel through sched_ext.

01 / Deployment

Run on a host or in Kubernetes​

On a host

schedctl

Run scheduler images with Podman or containerd. schedctl verifies signatures, checks host compatibility, reports which scheduler is attached, and starts and stops scheduler containers.

Install on openSUSE, or see the other installation options.

sudo zypper in schedctl
sudo schedctl doctor
Use schedctl

In Kubernetes

sked

alpha

Create a Scheduler resource for a node pool. sked verifies the image, creates a privileged DaemonSet, and reports rollout status. It does not require schedctl on the nodes.

Install cert-manager first, or supply a webhook certificate.

helm repo add schedkit https://charts.schedkit.io
helm repo update
helm install sked schedkit/sked \
  --namespace sked-system --create-namespace \
  --wait --timeout 5m
Use sked

02 / How it works

From registry to kernel​

  1. 01 OCI image

    Package

    An OCI image contains the scheduler binary and its dependencies. Publish it to a container registry.

    OCI image
  2. 02 Container runtime

    Run

    schedctl or sked verifies the image signature by default. The container runtime pulls the image and starts the scheduler.

    Container runtime
  3. 03 Linux kernel

    Schedule

    The scheduler attaches through sched_ext and allocates CPU time to threads. When it detaches, the kernel returns to its default policy.

    Linux kernel

03 / Before you run

Check the host​

Run schedctl doctor to check the kernel, capabilities, and container runtime. Check the scheduler’s own requirements too.

sked reports DaemonSet readiness but does not check kernel attachment. Verify the running scheduler on each node.

Check host compatibility
KernelLinux 6.12 or later with CONFIG_SCHED_CLASS_EXT=y, BPF support, and BTF.
RuntimePodman or containerd on a host; the node’s container runtime in Kubernetes.
PermissionsAccess to load BPF programs. sked runs scheduler containers privileged.
CompatibilityA scheduler image built for the host’s architecture and kernel.

04 / Documentation

Where to start​