Skip to content
forked from kcrow-io/kcrow

fine-grained control based on NRI, such as Nvidia Driver, kernel driver...

License

Notifications You must be signed in to change notification settings

Junsheng-Wu/kcrow

 
 

Repository files navigation

kcrow

Go Report Card CodeFactor codecov

English | 简体中文

Overview

This project is developed based on the NRI interface and is used to implement multi-tenant resource control. The resources include ulimits, CPU, and memory cgroup settings, more detail about nri.

Kcrow supports adding annotations to pod, node and namespaces to complete the configuration.

The annotation configuration priorities are pod > node > namespace.

Quick Start

Prerequisites

  • containerd version is greater than 1.7.7
  • Open and configure nri. Usually, the containerd configuration file is in '/etc/containerd/config.toml'
  [plugins."io.containerd.nri.v1.nri"]
    disable = false
    disable_connections = false
    plugin_config_path = "/etc/nri/conf.d"
    plugin_path = "/opt/nri/plugins"
    plugin_registration_timeout = "5s"
    plugin_request_timeout = "2s"
    socket_path = "/var/run/nri/nri.sock"

install

git clone https://github.com/yylt/kcrow/
helm install charts/kcrowdaemon kcrow -n kcrow  --create-namespace

example

// namespace 
apiVersion: v1
kind: Namespace
metadata:
  name: kcrowtest
  annotations:
    nofile.rlimit.kcrow.io: '{"hard":65535,"soft":65535}'
    cpu.cgroup.kcrow.io: '{"cpus":"0-2"}'

// node 
apiVersion: v1
kind: Node
metadata:
  name: node-1
  annotations:
    nofile.rlimit.kcrow.io: '{"hard":65535,"soft":65535}'
    cpu.cgroup.kcrow.io: '{"cpus":"0-2"}'

Contributing

Contributions of code and issues are welcome. Please submit an issue or a pull request.

License

This project is licensed under the MIT License. Please see the license file for more details.

Contact

If you have any questions or suggestions, please feel free to contact us. You can find us on GitHub.

About

fine-grained control based on NRI, such as Nvidia Driver, kernel driver...

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 51.9%
  • Shell 29.5%
  • Makefile 13.8%
  • Smarty 3.3%
  • Dockerfile 1.5%