Skip to content

Latest commit

 

History

18 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GPU-Aware Kubernetes Scheduler Plugin

This is a scheduler plugin that hooks into the Kubernetes Scheduling Framework's Score extension point to re-rank nodes based on live GPU telemetry (utilization, free memory, ECC errors, and NVLink topology).

This project is currently at Phase 4, featuring a fully wired score plugin, telemetry store, and a kind cluster integration.

Current Status & Structure

We have implemented the following components:

  • pkg/telemetry/: GPUStatsProvider interface with a Fake implementation for testing and NVML stubs.
  • pkg/scoring/: Pure scoring engine evaluating utilization, memory, ECC errors, and topology fit.
  • pkg/store/: Thread-safe in-memory TelemetryStore used to cache node telemetry.
  • pkg/plugin/: The GPUScorePlugin integrating with the Kubernetes Scheduling Framework (Score and NormalizeScore extensions).
  • cmd/scheduler/: A standalone demo executable to validate the wiring and scoring logic.
  • kind/: Configurations and manifests for deploying and testing the plugin on a local kind cluster.
  • scripts/: Automation scripts for testing and deploying to kind.

Quick Start (Standalone Demo)

Because this project is built using Go, you will need Go installed.

To run the standalone demo (which demonstrates the scoring logic and wiring without needing a Kubernetes cluster):

go run ./cmd/scheduler/

Building and Testing

To compile and ensure there are no build errors across the project:

go build ./...

To run standard Go static analysis:

go vet ./...

To run all unit and integration tests (including the race detector):

go test -race -v ./...

Local Cluster Testing (kind)

You can test the plugin behavior in a simulated kind cluster. See the kind README for full instructions, or use the provided scripts:

  • Windows: .\scripts\phase4-deploy.ps1
  • Linux/Mac: ./scripts/phase4-deploy.sh

Documentation

Detailed documentation for each phase and architectural decisions can be found in the docs/ directory.

  • PRD.md: Product Requirements Document
  • TRD.md: Technical Requirements Document
  • docs/phase4.md: Phase 4 Architecture & Integration Details

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages