You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: modules/kmm-customizing-upgrades-for-kernel-modules.adoc
+27-13Lines changed: 27 additions & 13 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -13,39 +13,53 @@ Use this procedure to upgrade the kernel module while running maintenance operat
13
13
This procedure requires knowledge of the workload utilizing the kernel module and must be managed by the cluster administrator.
14
14
====
15
15
16
+
16
17
.Prerequisites
17
18
18
-
* Before upgrading, set the `kmm.node.kubernetes.io/version-module.<module-namespace>.<module-name>=$moduleVersion` label on all the nodes that will be used by the kernel module.
19
+
* Before upgrading, set the `kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>=$moduleVersion` label on all the nodes that are used by the kernel module.
19
20
20
21
* Terminate all user application workloads on the node or move them to another node.
21
22
22
23
* Unload the currently loaded kernel module.
23
24
24
25
* Ensure that the user workload (the application running in the cluster that is accessing kernel module) is not running on the node prior to kernel module unloading and that the workload is back running on the node after the new kernel module version has been loaded.
25
26
26
-
* Ensure that the device plugin managed by KMM on the node is unloaded before the upgrade process and reloaded following the upgrade process.
27
-
28
-
* Due to Kubernetes limitations in label names, the combined length of `Module` name and namespace must not exceed 39 characters.
29
-
30
27
.Procedure
31
28
32
-
. Update the following fields in the `Module` CR:
29
+
. Ensure that the device plugin managed by KMM on the node is unloaded.
30
+
31
+
. Update the following fields in the `Module` custom resource (CR):
33
32
- `containerImage` (to the appropriate kernel version)
34
33
- `version`
35
34
+
36
35
The update should be atomic; that is, both the `containerImage` and `version` fields must be updated simultaneously.
37
36
38
37
. Terminate any workload using the kernel module on the node being upgraded.
39
38
40
-
. Remove the `kmm.node.kubernetes.io/version-module.<module-namespace>.<module-name>` label on the node. This unloads the kernel module from the node.
41
-
42
-
. If required, perform any additional maintenance required on the node for the kernel module upgrade.
43
-
44
-
. Add the `kmm.node.kubernetes.io/version-module.<module-namespace>.<module-name>=$moduleVersion` label to the node. `$moduleVersion` should be equal to the new value of the `version` field in the `Module` CR.
39
+
. Remove the `kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>` label on the node.
40
+
Run the following command to unload the kernel module from the node:
. Restore any workload that leverages the kernel module on the node.
47
+
. If required, as the cluster administrator, perform any additional maintenance required on the node for the kernel module upgrade.
48
+
+
49
+
If no additional upgrading is needed, you can skip Steps 3 through 6 by updating the `kmm.node.kubernetes.io/version-module.<module-namespace>.<module-name>` label value to the new `$moduleVersion` as set in the `Module`.
47
50
51
+
. Run the following command to add the `kmm.node.kubernetes.io/version-module.<module_namespace>.<module_name>=$moduleVersion` label to the node. The `$moduleVersion` must be equal to the new value of the `version` field in the `Module` CR.
If no additional upgrading is needed, you can skip Steps 3 through 6 by updating the `kmm.node.kubernetes.io/version-module.<module-namespace>.<module-name>` label value to the new `$moduleVersion` as set in the `Module`.
60
+
Because of Kubernetes limitations in label names, the combined length of `Module` name and namespace must not exceed 39 characters.
51
61
====
62
+
63
+
. Restore any workload that leverages the kernel module on the node.
64
+
65
+
. Reload the device plugin managed by KMM on the node.
0 commit comments