Install

# To install a released version of Kueue in your cluster by kubectl
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.13.4/manifests.yaml

# Add metrics scraping for prometheus-operator
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.13.4/prometheus.yaml

# 
kubectl apply --server-side -f https://github.com/kubernetes-sigs/kueue/releases/download/v0.13.4/kueueviz.yaml

Admin

kueue_resource_definition_allocation

  1. create namespace
kubectl create namespace my-kueue
  1. create resource flavor
apiVersion: kueue.x-k8s.io/v1beta1
kind: ResourceFlavor
metadata:
  name: "default-flavor"
  1. create cluster queue
apiVersion: kueue.x-k8s.io/v1beta1
kind: ClusterQueue
metadata:
  name: "cluster-queue"
spec:
  namespaceSelector: {} # match all.
  resourceGroups:
  - coveredResources: ["cpu", "memory"]
    flavors:
    - name: "default-flavor"
      resources:
      - name: "cpu"
        nominalQuota: 128
      - name: "memory"
        nominalQuota: 512Gi
  1. create local queue
apiVersion: kueue.x-k8s.io/v1beta1
kind: LocalQueue
metadata:
  namespace: "my-kueue"
  name: "user-queue"
spec:
  clusterQueue: "cluster-queue"

User

submit a job

apiVersion: batch/v1
kind: Job
metadata:
  name: my-simple-job
  namespace: my-team
  labels:
    kueue.x-k8s.io/queue-name: dev-local-queue # 指定要使用的 LocalQueue [12]
spec:
  suspend: false # 作业最初不暂停
  template:
    spec:
      containers:
      - name: dummy-job
        image: registry.k8s.io/e2e-test-images/agnhost:2.53
        command: ["/bin/sh", "-c", "echo Hello Kueue && sleep 30"] # 一个简单的 sleep 命令
        resources:
          requests:
            cpu: "100m" # 请求 0.1 CPU
            memory: "100Mi" # 请求 100 MiB 内存
      restartPolicy: Never # 作业完成后不重启

References