其他分享
首页 > 其他分享> > macvlan Multus-CNI在OpenShift上的使用

macvlan Multus-CNI在OpenShift上的使用

作者:互联网

macvlan架构图

图片


Macvlan允许您配置父级物理以太网接口(也称为上级设备)的子接口(也称为从设备),每个子接口都有自己的唯一MAC地址,因此也有自己的IP地址。然后,应用程序、VM和容器可以绑定到特定的子接口,以使用其自己的MAC和IP地址直接连接到物理网络。有些NIC对其在硬件中支持的MAC地址数量有限制。超过限制可能会影响性能。


图片

图片


Ipvlan与macvlan非常相似,但有一个重要区别。Ipvlan不会为创建的子接口分配唯一的MAC地址。所有子接口共享父接口的MAC地址,但使用不同的IP地址。

图片

由于单个父接口上的所有VM或容器都使用相同的MAC地址,因此ipvlan也有一些缺点:


在以下情况下使用Ipvlan:


而macvlan适用于ipvlan的所有场景。


在OCP 4.3上测试macvlan。首先验证静态IP模式。

首先确认worker节点的网段:192.168.91.0/24

登录worker节点,查看节点的网卡:

图片

确认192.168.137.0/24的网关是192.168.137.1图片

修改网络CO,增加如下,配置静态IP,赋予到tomcat项目:

oc edit networks.operator.openshift.iocluster

图片

查看赋予项目的网络:

图片

确认IP未被使用:


图片


书写创建pod的yaml,使用cni网络注释

图片

文本格式:

[root@lb.weixinyucluster ~]# cat 1.yaml

apiVersion: v1

kind: Pod

metadata:

  name: example-staticip

  annotations:

    k8s.v1.cni.cncf.io/networks: macvlan-network

spec:

  containers:

  - name: example-pod

    command: ["/bin/bash", "-c", "sleep 2000000000000"]

    image: centos/tools

[root@lb.weixinyucluster ~]# oc apply -f 1.yaml

pod/example-staticip created

图片

登录pod,确认IP增加:

图片

在pod里ping网关:

图片

在外部主机ping pod ip:

图片


增加DHCP网络:

修改网络co,增加如下内容,添加dhcp网络到tomcat1:

图片

[root@lb.weixinyucluster ~]#  oc get network-attachment-definitions -n  tomcat1

NAME               AGE

macvlan-network1   9s


书写创建pod的yaml

图片

图片


但是,查看pod创建过程,出现报错,原因是我的和环境中没有配置dhcp server。需要注意的是,dhcp server不能配置在pod所在的worker节点上(Linux does not allow to communicate between macvlan interface and its master interface,),需要配置在外部。因此,即worker节点能够访问到的dhcp server。这与很多客户的环境不匹配,因此不再进行测试。建议使用静态分配IP的方式。

图片


标签:Multus,MAC,接口,VM,macvlan,地址,pod,OpenShift
来源: https://blog.51cto.com/u_15127570/2711342