English | 简体中文
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.
- 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"
git clone https://github.com/yylt/kcrow/
helm install charts/kcrowdaemon kcrow -n kcrow --create-namespace
// 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"}'
Contributions of code and issues are welcome. Please submit an issue or a pull request.
This project is licensed under the MIT License. Please see the license file for more details.
If you have any questions or suggestions, please feel free to contact us. You can find us on GitHub.