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.
        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.