Noderesources

Overview #

This folder holds the node resources allocatable plugin implemented as discussed in NodeResourcesLeastAllocatable as score plugin.

Maturity Level #

  • 💡 Sample (for demonstrating and inspiring purpose)
  • 👶 Alpha (used in companies for pilot projects)
  • 👦 Beta (used in companies and developed actively)
  • 👨 Stable (used in companies for production workloads)

Node Resources Allocatable Plugin #

Resource Weights #

Resources are assigned weights based on the plugin args resources param. The base units for CPU are millicores, while the base units for memory are bytes.

Example config:

apiVersion: kubescheduler.config.k8s.io/v1
kind: KubeSchedulerConfiguration
leaderElection:
  leaderElect: false
clientConnection:
  kubeconfig: "REPLACE_ME_WITH_KUBE_CONFIG_PATH"
profiles:
- schedulerName: default-scheduler
  plugins:
    score:
      enabled:
      - name: NodeResourcesAllocatable
  pluginConfig:
  - name: NodeResourcesAllocatable
    args:
      mode: Least
      resources:
      - name: cpu
        weight: 1000000
      - name: memory
        weight: 1

Node Resources Least Allocatable #

If plugin args specify the priority param “Least”, then nodes with the least allocatable resources are scored highest.

Node Resources Most Allocatable #

If plugin args specify the priority param “Most”, then nodes with the most allocatable resources are scored highest.