#parameters #kernel #values #target #enforce #environment #match

bin+lib kpm

用于审计或强制执行内核参数值的程序

1 个稳定版本

1.0.0 2021 年 6 月 7 日

#6#强制执行

MIT 许可证

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