ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

macvlan Multus-CNI在OpenShift上的使用

2021-04-16 16:06:14  阅读:629  来源: 互联网

标签:Multus MAC 接口 VM macvlan 地址 pod OpenShift


macvlan架构图

图片


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


图片

图片


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

图片

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

  • 共享的MAC地址会影响DHCP操作。如果您的VM或容器使用DHCP来获取网络设置,请确保它们在DHCP请求中使用唯一的ClientID,并确保您的DHCP服务器根据ClientID(而不是客户端的MAC地址)分配IP地址。

  • 自动配置的EUI-64 IPv6地址基于MAC地址。 共享相同父接口的所有VM或容器将自动生成相同的IPv6地址。确保您的VM或容器使用静态IPv6地址或IPv6隐私地址并禁用SLAAC。


在以下情况下使用Ipvlan:

  • 父接口是无线的。

  • 您的父接口性能下降是因为您已经超过了其他MAC地址的数量。对于生产,您应该考虑将NIC换成更好的NIC,并使用macvlans。

  • 物理交换机限制了端口允许的MAC地址数量(端口安全性)。对于生产,您应该与网络管理员一起解决此策略问题,并使用macvlans。

  • 您可以运行高级网络方案,例如使用在同一VM或容器中运行的BGP守护程序来宣传在VM或容器中运行的服务。


而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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有