mirror of
https://github.com/openshift/openshift-docs.git
synced 2026-02-07 00:48:01 +01:00
27 lines
1.3 KiB
Plaintext
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).
|