kubernetes scheduling for expensive resources kubernetes scheduling for expensive resources kubernetes kubernetes

kubernetes scheduling for expensive resources


You can use labels and label selectors for this.kubernates docs

Update: example

apiVersion: v1kind: Podmetadata:  name: with-gpu-antiAffinityspec:  affinity:    podAntiAffinity:      requiredDuringSchedulingIgnoredDuringExecution:      - weight: 100        podAffinityTerm:          labelSelector:            matchExpressions:            - key: resources              operator: In              values:              - cpu-only


Using labels and label selectors for your nodes is right. But you need to use NodeAffinity on your pods.

Something like this:

apiVersion: v1kind: Podmetadata:  name: run-with-gpuspec:  affinity:    nodeAffinity:      requiredDuringSchedulingIgnoredDuringExecution:        nodeSelectorTerms:        - matchExpressions:          - key: kubernetes.io/node-type            operator: In            values:            - gpu  containers:  - name: your-gpu-workload    image: mygpuimage

Also, attach the label to your GPU nodes:

$ kubectl label nodes <node-name> kubernetes.io/node-type=gpu