This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.10.3. 使用 Driver Toolkit
例如,Driver Toolkit 可用作基础镜像来构建非常简单的内核模块,名为 simple-kmod。
10.3.1. 在集群中构建并运行 simple-kmod 驱动程序容器 复制链接链接已复制到粘贴板!
先决条件
- OpenShift Container Platform 集群
-
安装 OpenShift CLI (
oc
) 。 -
以具有
cluster-admin
特权的用户身份登录。
流程
创建命名空间。例如:
oc new-project simple-kmod-demo
$ oc new-project simple-kmod-demo
YAML 定义了
ImageStream
,用于存储simple-kmod
驱动程序容器镜像,以及用于构建容器的BuildConfig
。将此 YAML 保存为0000-buildconfig.yaml.template
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在以下命令中,使用您运行的 OpenShift Container Platform 版本的相关的正确 driver toolki 镜像替换 "DRIVER_TOOLKIT_IMAGE" 部分。
OCP_VERSION=$(oc get clusterversion/version -ojsonpath={.status.desired.version})
$ OCP_VERSION=$(oc get clusterversion/version -ojsonpath={.status.desired.version})
Copy to Clipboard Copied! Toggle word wrap Toggle overflow DRIVER_TOOLKIT_IMAGE=$(oc adm release info $OCP_VERSION --image-for=driver-toolkit)
$ DRIVER_TOOLKIT_IMAGE=$(oc adm release info $OCP_VERSION --image-for=driver-toolkit)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sed "s#DRIVER_TOOLKIT_IMAGE#${DRIVER_TOOLKIT_IMAGE}#" 0000-buildconfig.yaml.template > 0000-buildconfig.yaml
$ sed "s#DRIVER_TOOLKIT_IMAGE#${DRIVER_TOOLKIT_IMAGE}#" 0000-buildconfig.yaml.template > 0000-buildconfig.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意OpenShift Container Platform 4.6 中引入了驱动程序工具包,其版本为 4.6.30,在 4.7 和 4.8 中的版本为 4.7.11。
使用创建镜像流和构建配置
oc create -f 0000-buildconfig.yaml
$ oc create -f 0000-buildconfig.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 构建器 Pod 成功完成后,将驱动程序容器镜像部署为
DaemonSet
。驱动程序容器必须使用特权安全上下文运行,才能在主机上加载内核模块。以下 YAML 文件包含用于运行驱动程序容器的 RBAC 规则和
DaemonSet
。将此 YAML 保存为1000-drivercontainer.yaml
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 RBAC 规则和守护进程集:
oc create -f 1000-drivercontainer.yaml
$ oc create -f 1000-drivercontainer.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
当 pod 在 worker 节点上运行后,使用
lsmod
验证在主机机器上是否成功载入了simple_kmod
内核模块。验证 pod 是否正在运行:
oc get pod -n simple-kmod-demo
$ oc get pod -n simple-kmod-demo
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
NAME READY STATUS RESTARTS AGE simple-kmod-driver-build-1-build 0/1 Completed 0 6m simple-kmod-driver-container-b22fd 1/1 Running 0 40s simple-kmod-driver-container-jz9vn 1/1 Running 0 40s simple-kmod-driver-container-p45cc 1/1 Running 0 40s
NAME READY STATUS RESTARTS AGE simple-kmod-driver-build-1-build 0/1 Completed 0 6m simple-kmod-driver-container-b22fd 1/1 Running 0 40s simple-kmod-driver-container-jz9vn 1/1 Running 0 40s simple-kmod-driver-container-p45cc 1/1 Running 0 40s
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在驱动程序容器 pod 中执行
lsmod
命令:oc exec -it pod/simple-kmod-driver-container-p45cc -- lsmod | grep simple
$ oc exec -it pod/simple-kmod-driver-container-p45cc -- lsmod | grep simple
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
simple_procfs_kmod 16384 0 simple_kmod 16384 0
simple_procfs_kmod 16384 0 simple_kmod 16384 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow