K8S-SRIOV及multus CNI安装测试

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了K8S-SRIOV及multus CNI安装测试相关的知识,希望对你有一定的参考价值。

参考技术A kubernetes 1.16+ 这里一定注意版本。只可更高,不可小于该版本。
安装好flannel网络插件。multus CNI安装的必须要求,除了SRIOV CNI之外,仍需装上其他的CNI。

开启iommu,bios开启vx-d之类

其余查看网卡的操作参考链接1
这里需要创建好VF!!!

注意CNI需要放在所有可以运行SRIOV的work节点上。如果master节点也跑pod的话也需要执行下面的操作

这里可能遇到境内环境无法make的情况。找台墙外主机编译好将sriov拷贝进来即可。注意安装go环境
ls /opt/cni/bin 可以看到sriov权限可执行

build镜像 与pull镜像 二选一。(每个节点上都要这么做)

If you want to build the docker image locally then follow the following steps:

On a successful build, a docker image with tag nfvpe/sriov-device-plugin:latest will be created. You will need to build this image on each node. Alternatively, you could use a local docker registry to host this image.

可以看到有image

可以看到有image

resourceName和resourcePrefix 遵循命名规范即可,同时记住这两个参数,后面要用到。
selectors里面的信息来自下图:

https://github.com/intel/multus-cni/blob/master/doc/quickstart.md

至此所有配置完成,我们可以简单检查下环境是否OK。

目的是为了检查work节点是否可以提供sriov能力

正常情况下,圈中数字应与该节点VF数量一致。若为0说明不可用。
不可用原因:上述的configMap.yaml配置有问题,或者该节点sriov有问题,没有创建VF。具体原因可通过下一章节的内容,进入该节点sriov device plugin 的pod 查看日志。

目的是为了查看sriov device plugin 是否工作正常。

查看work节点的sriov device plugin容器日志,检查下是否有下述类似正确以及健康的内容出现.

修改第6行,信息来自sriov-crd.yaml
修改16行,信息来自configMap.yaml
修改18行,信息来自configMap.yaml

可以看到pod内部网卡分配的IP为sriov-crd.yaml设置的网段。可以多建几个pod。可以互ping。
同时如果此时进入到work节点,通过ip a命令会发现work节点上少了vf,因为此时部分vf已经被转入对应容器的namespace之下,所以在宿主节点上无法看到。

以上是关于K8S-SRIOV及multus CNI安装测试的主要内容,如果未能解决你的问题,请参考以下文章

kubernetes多网卡方案之Multus CNI部署和基本使用

1.k8s部署(安装Docker/kubeadm/kubelet, 部署Kubernetes Master, 加入Kubernetes Node, 部署容器网络(CNI),测试kubernetes集)

1.k8s部署(安装Docker/kubeadm/kubelet, 部署Kubernetes Master, 加入Kubernetes Node, 部署容器网络(CNI),测试kubernetes集)

1.k8s部署(安装Docker/kubeadm/kubelet, 部署Kubernetes Master, 加入Kubernetes Node, 部署容器网络(CNI),测试kubernetes集)

安装cni网络插件-非必须

openshift 4.3 calico + multus