4.3. 配置内核模块管理 Operator
在大多数情况下,内核模块管理(KMM) Operator 的默认配置不需要修改。但是,您可以修改 Operator 设置以适应您的环境。
流程
要修改任何设置,请使用以下命令在 Operator 命名空间中创建一个名为
kmm-operator-manager-config的ConfigMap,并使用以下命令重启控制器:oc rollout restart -n "$namespace" deployment/kmm-operator-controller
$ oc rollout restart -n "$namespace" deployment/kmm-operator-controllerCopy to Clipboard Copied! Toggle word wrap Toggle overflow $namespace的值取决于您的安装方法。输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果要配置 KMM Hub,请在 KMM Hub 控制器的命名空间中使用名称 kmm-operator-hub-manager-config 创建 ConfigMap。
| 参数 | 描述 |
|---|---|
|
|
定义 Operator 监控 kubelet 健康探测的地址。推荐的值为 |
|
|
定义在删除之前,应保留成功构建 pod 的持续时间。有关此设置的有效值的详情,请参考 ParseDuration。默认值为 |
|
|
确定领导选举机制是否被用来确保任何时候都只有一个 KMM Operator 运行的副本。如需更多信息,请参阅 Leases。默认值为 |
|
|
确定领导选举机制用于存放领导锁的资源名称。KMM 的默认值为 |
|
|
决定指标服务器的绑定地址。把它设置为 "0" 以禁用指标服务器。默认值为 |
|
|
如果为 |
|
|
确定指标是否使用
对于身份验证和授权,控制器需要一个具有以下规则的
例如,要提取指标(例如使用 Prometheus),客户端需要具有以下规则的
默认值为 |
|
|
决定是否通过 HTTPS 而不是 HTTP 提供指标。默认值为 |
|
|
如果为 |
|
|
定义 Operator 监控 Webhook 请求的端口。默认值为 |
|
|
决定 worker 容器安全上下文的 |
|
|
决定 worker 容器安全上下文的 |
|
|
如果设置,则此字段的值由 worker 容器写入节点上的 /sys/module/firmware_class/parameters/path 文件。如需更多信息,请参阅设置内核固件搜索路径。默认值为 |
4.3.1. 卸载内核模块 复制链接链接已复制到粘贴板!
在移至较新的版本时,您必须卸载内核模块,或者如果它们在节点上引入一些不必要的副作用。
流程
要从节点中卸载使用 KMM 加载的模块,请删除对应的
Module资源。然后,KMM 会根据需要创建 worker pod,以运行modprobe -r并从节点卸载内核模块。警告卸载 worker pod 时,KMM 需要载入内核模块时使用的所有资源。这包括
模块中引用的ServiceAccount,以及定义的任何 RBAC,以允许特权 KMM worker Pod 运行。它还包括.spec.imageRepoSecret中引用的任何 pull secret。为了避免 KMM 无法从节点卸载内核模块的情况,请确保在
Module资源仍存在于任何状态时不会删除这些资源,包括Terminating。KMM 包含一个验证准入 Webhook,它拒绝删除至少包含一个Module资源的命名空间。
4.3.2. 设置内核固件搜索路径 复制链接链接已复制到粘贴板!
Linux 内核接受 firmware_class.path 参数作为固件的搜索路径,如 固件搜索路径 中所述。
在尝试加载 kmods 前,KMM worker pod 可以通过写入 sysfs 来在节点上设置这个值。
流程
-
要定义固件搜索路径,请在 Operator 配置中将
worker.setFirmwareClassPath设置为/var/lib/firmware。