1
0
mirror of https://github.com/openshift/openshift-docs.git synced 2026-02-07 00:48:01 +01:00
Files
openshift-docs/modules/kmm-deploying-modules.adoc
2023-10-30 10:13:25 -04:00

27 lines
1.3 KiB
Plaintext

// Module included in the following assemblies:
//
// * hardware_enablement/kmm-kernel-module-management.adoc
:_mod-docs-content-type: CONCEPT
[id="kmm-deploy-kernel-modules_{context}"]
= Kernel module deployment
For each `Module` resource, Kernel Module Management (KMM) can create a number of `DaemonSet` resources:
* One ModuleLoader `DaemonSet` per compatible kernel version running in the cluster.
* One device plugin `DaemonSet`, if configured.
The module loader daemon set resources run ModuleLoader images to load kernel modules.
A module loader image is an OCI image that contains the `.ko` files and both the `modprobe` and `sleep` binaries.
When the module loader pod is created, the pod runs `modprobe` to insert the specified module into the kernel.
It then enters a sleep state until it is terminated.
When that happens, the `ExecPreStop` hook runs `modprobe -r` to unload the kernel module.
If the `.spec.devicePlugin` attribute is configured in a `Module` resource, then KMM creates a link:https://kubernetes.io/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/[device plugin]
daemon set in the cluster.
That daemon set targets:
* Nodes that match the `.spec.selector` of the `Module` resource.
* Nodes with the kernel module loaded (where the module loader pod is in the `Ready` condition).