Pod be scheduled in untainted master with lower priority?

12/10/2018

I have a cluster with 3 masters and 3 nodes, the masters are untained and pods can be scheduled in them.

But I want the pod runs in nodes preferentially if their resources are enough only. Because the masters are very significant but resource in cluster is limited, so that they are untained.

In general, my goal is to let the pods run as much as possible on the node instead of the master.

Is there a AlgorithmProvider achieve it?

-- Aixes Hunter
kubernetes
pod

1 Answer

12/10/2018

Yes, you can use node affinity to make it.

Here is an example:

apiVersion: v1
kind: Pod
metadata:
  name: with-node-affinity
spec:
  affinity:
    nodeAffinity:
      preferredDuringSchedulingIgnoredDuringExecution:
      - weight: 1
        preference:
          matchExpressions:
          - key: node-type
            operator: In
            values:
            - worker
  containers:
  - name: with-node-affinity
    image: k8s.gcr.io/pause:2.0

Also, you need to label your node with `node-type=worker

-- Kun Li
Source: StackOverflow