1 个稳定版本
1.0.0 | 2021 年 6 月 7 日 |
---|
#6 在 #强制执行
14KB
356 行
kpm - 内核参数管理器
这是什么?
kpm
(正如其名所示)是一个用于管理内核参数的程序。它从环境中读取目标值,并在它们不匹配时设置这些值。
为什么会有这个存在?
为了作为一个 DaemonSet
在 Kubernetes 集群上运行,以强制执行一组目标内核参数。
如何获得这个卓越的工具?
$ cargo install kpm
如何使用它?
对于每个管理的内核参数,设置一个环境变量为目标值。这个变量的名称应该是参数名称,前面加上 sysctl-
。
env sysctl-fs.inotify.max_queued_events=16384 \
sysctl-fs.inotify.max_user_instances=128 \
sysctl-fs.inotify.max_user_watches=8192 \
kpm enforce
默认情况下,kpm
只将完全匹配目标值的值视为“正确”。这可以通过在值前面加上以下标识符之一来覆盖:
前缀 | 规则 | 描述 |
---|---|---|
== | EqualTo | 值必须完全等于目标值。 |
=> | AtLeast | 值必须大于或等于目标值。 |
=< | AtMost | 值必须小于或等于目标值。 |
这些不适用于非整数参数。由于绝大多数内核参数都是整数,这不太可能成为问题。使用字符串参数将报告假阴性,并且每次都会设置值。
环境变量
名称 | 默认值 | 示例 | 描述 |
---|---|---|---|
KPM_LOG_FILTER | info | error, warn, info, debug, trace. | 配置日志过滤 |
KPM_LOG_STYLE | auto | auto, always, never. | 配置日志样式 |
许可证
kpm
根据 MIT 许可证 提供,请参阅 LICENSE.txt
以获取完整内容。
依赖关系
~5–14MB
~151K SLoC