intel/intel-qat-pluginIntel® QuickAssist Technology (QAT) Kubernetes 设备插件(以下简称“QAT设备插件”)是一款用于Kubernetes集群的设备插件,旨在将Intel QAT硬件加速资源暴露给集群中的容器化应用。通过该插件,Kubernetes节点可自动发现、管理QAT硬件设备,并将其作为可调度资源提供给Pod,使应用能够直接利用QAT硬件的加密/解密、压缩/解压缩加速能力,提升数据处理性能并降低CPU占用。
qatlib驱动框架。intel.com/qat),支持通过Pod的resources.requests和resources.limits声明资源需求。qat_config工具生成的设备配置文件)。qatlib ≥ 2.0)及用户态工具(qat-config);lspci命令验证设备存在(如00:04.0 Co-processor: Intel Corporation Device 4940 (rev 01))。bash# 安装qatlib驱动及工具 yum install -y qatlib qatlib-service qat-config # 启动QAT服务并验证状态 systemctl start qat.service && systemctl enable qat.service qatadm -s # 确认QAT设备状态为"up"
QAT设备插件以DaemonSet形式部署,确保所有节点均运行插件实例。
从Intel设备插件仓库获取部署文件:
bashkubectl apply -f [***]
bash# 检查DaemonSet状态 kubectl get daemonset intel-qat-plugin -n kube-system # 检查节点资源注册情况(需替换节点名称) kubectl describe node <node-name> | grep "intel.com/qat"
输出示例:intel.com/qat: 8(表示节点可用QAT资源数量为8)。
Pod需通过resources.requests声明对QAT资源的需求,示例如下:
yamlapiVersion: v1 kind: Pod metadata: name: nginx-qat-demo spec: containers: - name: nginx image: nginx:latest resources: requests: intel.com/qat: 1 # 请求1个QAT资源单元 limits: intel.com/qat: 1 # 限制使用1个QAT资源单元 volumeMounts: - name: qat-dev mountPath: /dev/qat volumes: - name: qat-dev hostPath: path: /dev/qat # 挂载主机QAT设备文件
在Pod内执行命令,检查QAT设备是否可用:
bash# 进入Pod kubectl exec -it nginx-qat-demo -- bash # 验证QAT设备文件 ls /dev/qat # 应显示qat_dev0、qat_dev1等设备文件
QAT设备插件支持通过环境变量或ConfigMap自定义配置,以下为核心参数:
| 参数名 | 环境变量键 | 描述 | 默认值 |
|---|---|---|---|
| 资源名称 | RESOURCE_NAME | Kubernetes中注册的QAT资源名称 | intel.com/qat |
| 设备发现路径 | DEVICE_DIR | QAT设备文件所在主机路径 | /dev/qat |
| 单节点最大资源数 | MAX_DEVICES | 节点可暴露的最大QAT资源单元数量(通常与QAT设备队列数对应) | 自动计算(基于设备队列) |
| 日志级别 | LOG_LEVEL | 日志输出级别(debug/info/warn/error) | info |
| QAT驱动配置文件路径 | QAT_CONFIG_PATH | 主机上QAT驱动配置文件路径(用于自定义设备队列配置) | /etc/qat |
在非Kubernetes环境中,可通过Docker直接运行插件二进制(需挂载主机设备和Kubernetes设备插件Socket):
bashdocker run -d \ --name qat-plugin-test \ --privileged \ -v /dev/qat:/dev/qat \ -v /var/lib/kubelet/device-plugins:/var/lib/kubelet/device-plugins \ intel/intel-qat-plugin:latest \ -log-level=debug
通过修改DaemonSet的环境变量调整插件行为(如调整日志级别):
yaml# 编辑DaemonSet,添加环境变量 kubectl edit daemonset intel-qat-plugin -n kube-system # 在containers.env中添加 env: - name: LOG_LEVEL value: "debug"

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务