tnblog
首页
视频
资源
登录

Multus-CNI与whereabouts的简单运用

5380人阅读 2022/12/22 16:00 总访问:3659590 评论:0 收藏:0 手机
分类: 容器编排

Multus-CNI

Multus-CNI 简介


简单来讲,这玩意可以对一个pod插入多张网卡进行通信。同时也支持多种cni的插件,什么Flannle、calico、macvlan都是可以的。


它的工作流程如下图所示:


这样看不清晰流程可以看创建的pod信息。


执行如下命令进行安装。

  1. git clone https://github.com/k8snetworkplumbingwg/multus-cni.git
  2. cd multus-cni
  3. cat ./deployments/multus-daemonset.yml | kubectl apply -f -


安装完成后,会多一个名为NetworkAttachmentDefinition资源来定义cni的配置。

whereabouts 简介


在以前的博客中,使用local-host需要为每台主机分配不同的ip地址范围才能实现,而whereabouts会自动进行分配ip地址且不会发生两台主机同一个ip的情况。
可通过如下命令进行安装:

  1. git clone https://github.com/k8snetworkplumbingwg/whereabouts && cd whereabouts
  2. kubectl apply \
  3. -f doc/crds/daemonset-install.yaml \
  4. -f doc/crds/whereabouts.cni.cncf.io_ippools.yaml \
  5. -f doc/crds/whereabouts.cni.cncf.io_overlappingrangeipreservations.yaml

ipvlan 实践


首先我们定义ipvlan的配置文件。

  1. vim networkad.yaml
  1. apiVersion: "k8s.cni.cncf.io/v1"
  2. kind: NetworkAttachmentDefinition
  3. metadata:
  4. name: whereabouts-ipvlan-conf-1
  5. spec:
  6. config: '{
  7. "cniVersion": "0.3.0",
  8. "name": "ipvlan-conf-1",
  9. "type": "ipvlan",
  10. "master": "eth0",
  11. "mode": "l2",
  12. "ipam": {
  13. "type": "whereabouts",
  14. "range": "10.211.55.0/24",
  15. "range_start": "10.211.55.129",
  16. "range_end": "10.211.55.159",
  17. "gateway": "10.211.55.1"
  18. }
  19. }'


然后apply一下。

  1. kubectl apply -f networkad.yaml


创建一个指定使用whereabouts-ipvlan-conf-1配置的pod,并将该网卡设置为eth1

  1. vim ipvlan.yaml
  1. apiVersion: v1
  2. kind: Pod
  3. metadata:
  4. name: pod0-case-02
  5. annotations:
  6. k8s.v1.cni.cncf.io/networks: whereabouts-ipvlan-conf-1@eth1
  7. spec:
  8. containers:
  9. - name: pod0-case-02
  10. image: burlyluo/nettoolbox
  11. command:
  12. - /sbin/init
  1. kubectl apply -f ipvlan.yaml
  2. kubectl get pod
  3. kubectl exec pod/pod0-case-02 -- ifconfig


外网仍然可以访问。

macvlan 实践


首先定义macvlan配置文件。

  1. vim networkwhereabouts.yaml
  1. apiVersion: "k8s.cni.cncf.io/v1"
  2. kind: NetworkAttachmentDefinition
  3. metadata:
  4. name: whereabouts-conf
  5. spec:
  6. config: '{
  7. "cniVersion": "0.3.0",
  8. "name": "whereaboutsexample",
  9. "type": "macvlan",
  10. "master": "eth0",
  11. "mode": "bridge",
  12. "ipam": {
  13. "type": "whereabouts",
  14. "range": "192.168.2.225/28"
  15. }
  16. }'
  1. kubectl apply -f networkwhereabouts.yaml
  2. kubectl get net-attach-def
  3. kubectl get net-attach-def whereabouts-conf


创建一个指定使用whereabouts-conf配置的pod,并将该网卡设置为eth3

  1. cat <<EOF | kubectl create -f -
  2. apiVersion: v1
  3. kind: Pod
  4. metadata:
  5. name: pod-macvlan
  6. annotations:
  7. k8s.v1.cni.cncf.io/networks: whereabouts-conf@eth3
  8. spec:
  9. containers:
  10. - name: pod
  11. image: burlyluo/nettoolbox
  12. EOF
  1. kubectl get pods -o wide
  2. kubectl exec pod/pod-macvlan -- ifconfig


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

分布式服务架构微服务架构概念的区别联系

分布式:分散压力。微服务:分散能力。当下理解分布式:不同模块部署在不同服务器上作用:分布式解决网站高并发带来问题集...

jsController中分割字符串的方法

js: varstr=OpenRule; varstrs=newArray(); strs=str.split(&quot;,&quot;); for(vari=0;i&lt;strs.length;i++){ $(&q...

Service-stack.redis配置连接池读写分离(处理并发相关等)

配置连接池与读写分类 //写节点(主节点) List&lt;string&gt;writes=newList&lt;string&gt;(); writes.Add(&quot;123456a...

CSS相对定位绝对定位

一般相对定位和绝对定位可以配合起来使用 例如实现如下的效果 只需要在外层div设置为相对定位,在内部设置为绝对定位就...

C委托事件

1.什么是委托?  委托在C#里的意义和在现实里差不多,从字面意思理解即可。举个例子:领导委托小张去传递个文件,这就是...

asp.net core2.0 依赖注入 AddTransientAddScoped的区别

asp.net core主要提供了三种依赖注入的方式其中AddTransient与AddSingleton比较好区别AddTransient瞬时模式:每次都获取一...

Vue.js+Layer实现表格数据绑定更新

一:使用Vue.js绑定好数据与更新事件 使用v-on绑定好事件,在事件里边直接把该行数据传递进去,在更新方法里边就可以直接...

下划线、换行、回车、空格ASCII码值对照表

下划线,ASCII码95换行 , ASCII码10回车 , ASCII码13空格 , ASCII码32ASCII码表:Bin(二进制)Oct(八进制)Dec(十进制)Hex(...

数据读取器指定的"xx"不兼容。某个类型为"xx"的成员在同名的数据读取器中没有对应的列

报错的地方var result= _db.Database.SqlQuery&lt;SMachine&gt;(sql).FirstOrDefault();经过分析,是因为SqlQuery方法查询...

git 下载提交命令

一.先使用git clone下载一个项目 git clone &#39;项目地址&#39; 这里要注意: clone的项目里边会自带git的一些信息,...

微信开发四 接受用户普通消息回复消息

微信接收用户普通消息的文章可以在官方中直接看微信普通消息分类:接受用户文本消息 与 回复文本信息 注意在接收用户普通...

记忆糖的关系【阅读听力】

Link Between Memory and SugarSugar On The BrainIt’s long been understood that there is a connection between memory...

婚姻心脏健康的关系【阅读听力】

Marriage and Heart HealthPlenty of studies have found that being married is generally good for health. One study ze...

iframe自适应高度配合net core使用

去掉iframe边框frameborder=&quot;0&quot;去掉滚动条scrolling=&quot;no&quot;iframe 自适应高度如果内容是固定的,那么就...

net core中使用url编码解码操作

net core中暂时还没有以前asp.net与mvc中的server对象。获取url的编码与解码操作不能使用以前的server对象来获取。使用的是...
这一世以无限游戏为使命!
排名
2
文章
657
粉丝
44
评论
93
docker中Sware集群与service
尘叶心繁 : 想学呀!我教你呀
一个bug让程序员走上法庭 索赔金额达400亿日元
叼着奶瓶逛酒吧 : 所以说做程序员也要懂点法律知识
.net core 塑形资源
剑轩 : 收藏收藏
映射AutoMapper
剑轩 : 好是好,这个对效率影响大不大哇,效率高不高
ASP.NET Core 服务注册生命周期
剑轩 : http://www.tnblog.net/aojiancc2/article/details/167
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术