我在openshift 4.9上使用kata运行时,并使用sriov的ib infiniband,我想将vf传递到kata-pod,但当我创建一个pod时,它保持在container creating状态,最后描述pod日志显示如下
ib卡安装在ocp worker0主机上,sriov虚拟化通过ocp sriov操作员配置,vf编号为10
原提问者GitHub用户fu7100 如对项目有进一步反馈,请在 GitHub 提交 issue https://github.com/kata-containers/kata-containers/issues
根据描述,问题可能出在sriov-ib网卡驱动没有正确绑定到kubelet所使用的Node上,导致Kubernetes无法找到可用的sriov-ib设备并将其暴露给Kata Container。
解决此问题的步骤如下:
在Node上使用lspci命令,确认sriov-ib网卡驱动已经正确绑定:
$ lspci -nn | grep -i mellanox 如果结果中没有类似下面的输出,则可能需要重新安装或配置sriov-ib网卡驱动:
07:00.0 Infiniband controller [0200]: Mellanox Technologies MT27700 Family [ConnectX-4] 确认kubelet的配置文件中包含了sriov和devicePlugins:
$ cat /var/lib/kubelet/config.yaml | grep -E "sriov|devicePlugins" 如果没有输出,则需要手动在kubelet配置文件中添加相应的配置。请参考Kubernetes文档中关于sriov设备插件的说明。
确认Kata Container运行时的配置文件中包含了sriov:
$ cat /usr/share/defaults/kata-containers/configuration.toml | grep sriov 如果没有输出,则需要手动在Kata Container运行时的配置文件中添加相应的配置。请参考Kata Containers文档中关于sriov-vfio设备的说明。
在Pod中的容器定义中,通过添加sriov字段并设置相关的vf编号来配置使用sriov设备:
resources: requests: sriov: "<vf_number>" 针对该问题出现的Pod,可以通过查看Pod的event或describe信息,来确认日志中是否包含相关的错误信息,以便更进一步排查问题。
$ kubectl describe pod $ kubectl get events --field-selector involvedObject.name= 完成上述步骤之后,重新创建该Pod,观察是否能够成功启动容器。
如果你在OpenShift上使用kata-deploy,我认为你最终可能会遇到一些与SELinux相关的问题。 你介意仔细检查一下情况不是这样吗?
理想情况下,使用OpenShift,您应该能够利用OpenShift沙盒容器,这是使用Kata containers的Red Hat解决方案。
原回答者GitHub用户fidencio 如对项目有进一步反馈,请在 GitHub 提交 issue https://github.com/kata-containers/kata-containers/issues
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。