Skip to content

coldzerofear/device-mounter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

66 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Device Mounter

A hot swappable expansion component for a k8s container device.

DeviceMounter is a kubernetes plugin that can dynamically add or remove device resources running Pods.

The project is currently underway...

Project objectives

  • Support more types of container devices
  • Prevent device resource leakage caused by slave pods
  • Simplify the configuration of hot swappable pods
  • Support device hot plugging and vGPU expansion for vgpu-manager

Features

  • Supports add or remove Device resources of running Pod without stopping or restarting
  • Compatible with kubernetes scheduler
  • Compatible with kubernetes device plugin
  • Compatible with cgroup v1 and cgroup v2

Prerequisite

  • Kubernetes v1.22+ (other version not tested)
  • Docker / Containerd (other version not tested)
  • runc based container runtime
  • cert-manager (Ensure that certificate manager is installed in the cluster and will be used to distribute self signed certificates)

Supported devices

  • Nvidia GPU device plugin: Support NVIDIA native device resource scheduling

nvidia-container-runtime (must be configured as default runtime)

* Volcano VGPU device plugin: VGPU hot mount implementation supporting Volcano scheduler

nvidia-container-runtime (must be configured as default runtime)

  • Ascend NPU device plugin: Under development

ascend-docker-runtime (must be configured as default runtime)

Deploy

  • Installing Cert Manager. GitHub

  • label nodes with device-mounter=enable

kubectl label node <nodename> device-mounter-enable=enable
  • deploy
kubectl apply -f deploy/device-mounter-apiserver.yaml
kubectl apply -f deploy/device-mounter-daemonset.yaml
  • uninstall
kubectl delete -f deploy/device-mounter-apiserver.yaml
kubectl delete -f deploy/device-mounter-daemonset.yaml
  • generate grpc api
 protoc --go_out=. --go-grpc_out=. pkg/api/api.proto

Quick Start

Nvidia GPU Device Plugin. See Nvidia_GPU Using Help

Volcano vGPU Device Plugin. See Volcano_VGPU Using Help

Ascend NPU Device Plugin. See Ascend_NPU Using Help

FAQ

See FAQ.md

License

This project is licensed under the Apache-2.0 License.

About

A hot swappable expansion component for a k8s container device.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published