kubernetes集群中创建pod,默认只能使用一张网卡,但是在某些情况下(实现容器路由功能)单网卡不能满足实验需求。multus-cni提供了将多个接口添加到Pod的功能,这允许POD通过不同的接口连接到多个网络,并且每个接口都将使用其自己的CNI插件,即在pod上建立不同网段的多张网卡,原理图如下:
1.安装go环境,官方下载地址为https://golang.org/dl/(此网址需要翻墙),选择适合自己系统的go包(master和node):
wget https://golang.org/dl/go1.15.2.linux-amd64.tar.gz
tar -zvxf https://golang.org/dl/go1.15.2.linux-amd64.tar.gz -C /usr/local
修改~/.bashrc文件,在末尾添加以下命令并保存:
export GOPATH=/root/go
export PATH=$PATH:$GOPATH:/usr/local/go/bin
执行以下命令,加载环境变量到内存:
source ~/.bashrc
2.安装multus(master和node)
git clone https://github.com/intel/multus-cni.git && cd multus-cni
./build
此时multus-cni文件夹下出现了一个名为bin的文件夹,进入该文件夹,将其中的名为multus的二进制文件复制到/opt/cni/bin中:
cp multus /opt/cni/bin
3.在/etc/cni/net.d/中设置conf文件(master和node)
mkdir -p /etc/