networkaware/

directory
v0.29.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2024 License: Apache-2.0

README

Overview

This folder holds the NetworkAware plugins implemented as discussed in the KEP - Network-Aware framework.

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)

TopologicalSort Plugin (QueueSort)

The TopologicalSort QueueSort plugin orders pods to be scheduled in an AppGroup based on their microservice dependencies related to TopologicalSort.

Further details and examples are described here.

NetworkOverhead Plugin (Filter & Score)

The NetworkOverhead Filter & Score plugin filters out nodes based on microservice dependencies defined in an AppGroup and scores nodes with lower network costs (described in a NetworkTopology) higher to achieve latency-aware scheduling.

Further details and examples are described here.

Scheduler Config example

Consider the following scheduler config as an example to enable both plugins:

apiVersion: kubescheduler.config.k8s.io/v1
kind: KubeSchedulerConfiguration
leaderElection:
  leaderElect: false
clientConnection:
  kubeconfig: "/etc/kubernetes/scheduler.conf"
profiles:
  - schedulerName: network-aware-scheduler
    plugins:
      multiPoint:
        enabled:
          - name: NetworkOverhead
            weight: 5 # A higher weight is given to NetworkOverhead to favor allocation schemes with lower latency.
          - name: BalancedAllocation
            weight: 1
        disabled:
          - name: NodeResourcesFit # Preferably avoid the combination of NodeResourcesFit with NetworkOverhead
      queueSort:
        enabled:
          - name: TopologicalSort
        disabled:
          - name: "*"
    pluginConfig:
      - name: TopologicalSort
        args:
          namespaces:
            - "default"
      - name: NetworkOverhead
        args:
          namespaces:
            - "default"
          weightsName: "UserDefined" # The respective weights to consider in the plugins
          networkTopologyName: "net-topology-test" # networkTopology CR to be used by the plugins

Summary

Further details about the network-aware framework are available here.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL