首页 > 其他分享 >编译flannel 支持VNI 扩展

编译flannel 支持VNI 扩展

时间:2023-02-07 13:22:05浏览次数:88  
标签:github VNI 编译 https k8s com flannel

实际上属于一个业务问题,有几个k8s 环境,有一个外部服务需要通过rpc 访问k8s 内部的服务,以前是通过
部署了与一个环境一样的flannel 服务,可以保证外部服务与k8s pod 是可以通的,但是现在需要与另外一套环境
的k8s pod 也可以通

参考图

 

 

问题

我们实际是希望可以在vm中可以部署多个flannel 服务,同时是独立的,互不影响,在尝试修改配置之后发现vxlan 网络是可以看到,但是都在flannel1.1 在进行网络测试的时候发现是不行的, 然后大致看了下官方源码发现默认VNI 都是1,如果我们可以将多实例的VNI 分区开问题应该就可以好好的解决了

解决方法

基于flannel 源码构建 ,修改VNI 值为其他的
参考

 
import (
  "encoding/json"
  "fmt"
  "net"
 
  "golang.org/x/net/context"
 
  "github.com/coreos/flannel/backend"
  "github.com/coreos/flannel/pkg/ip"
  "github.com/coreos/flannel/subnet"
)
 
func init() {
  backend.Register("vxlan", New)
}
 
const (
  defaultVNI = 2 // 此处修改为了2,实际可以自己调整,当然也是可以通过配置的
)

构建

通过make 就可以了,注意选择的版本,对于go 小于1.7 的需要使用gopath ,比较推荐使用go mod 构建

CGO_ENABLED=1 make dist/flanneld

参考资料

https://github.com/flannel-io/flannel
https://github.com/rongfengliang/myflannel
https://en.wikipedia.org/wiki/Virtual_Extensible_LAN
https://support.huawei.com/enterprise/en/doc/EDOC1100086966
https://networklessons.com/cisco/ccnp-encor-350-401/introduction-to-virtual-extensible-lan-vxlan

标签:github,VNI,编译,https,k8s,com,flannel
From: https://www.cnblogs.com/rongfengliang/p/17098043.html

相关文章

  • 【C++复习】5.7 多文件结构与编译预处理命令
    1、C++项目结构C++程序的一般组织架构类声明文件(.h文件)类实现文件(.cpp文件)类的使用文件(main()所在的.cpp文件)用工程组合各文件2、编译链接编译链接过程3、外部......
  • 编译指令总结
    编译不过设置指令exportLC_ALL=C编译报错日志导出make-j82>&1|teebuild.log7.1编译指令sourcebuild/envsetup.shlunchmakeupdate-apimakesystemimage-j4......
  • mac m2编译 python3.7.6
    下载https://www.python.org/ftp/python/3.7.16/Python-3.7.16.tgz编译tar-zxvfPython-3.7.16.tgzcdPython-3.7.16.tgz./configure--prefix=/usr/local/python3.7......
  • 8.4仅靠编译是无法得到可执行文件的
    编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。为了得到可以运行的EXE文件,......
  • 8.3编译器负责转换源代码
    能够把C语言等高级编程语言编写的源代码转换成本地代码的程序称为编译器。每个编写源代码的编程语言都需要其专用的编译器将C语言编写的源代码转换成本地代码的编译器称......
  • 8.3编译器负责转换源代码
    能够把C语言等高级编程语言编写的源代码转换成本地代码的程序称为编译器。每个编写源代码的编程语言都需要其专用的编译器。将C语言编写的源代码转换成本地代码的编译器称......
  • 8.4仅靠编译是无法得到可执行文件的
    编译器转换源代码后,就会生成本地文件。不过,本地文件是无法直接运行的。为了得到可以运行的EXE文件,编译之后还需要进行“链接”处理。下面,就让我们使用BorlandC++Compiler......
  • freeswitch 编译安装 折腾
      echo"signalwire">/etc/yum/vars/signalwireusernameecho"TOKEN">/etc/yum/vars/signalwiretokenyuminstall-yhttps://$(</etc/yum/vars/signalwireuserna......
  • VS编译器堆空间不足
    ref:https://blog.csdn.net/zyhse/article/details/117417484解决办法:打开xxx.vcxproj文件,搜索“Globals”在文件中找到<PropertyGroupLabel=“Globals”,然后在这个节......
  • android 编译 node js 14
    本文基于wslubuntu22.04.1LTS系统上成功编译安卓版nodejs14.15.4的一些记录.编译环境:nodejs用到两套编译器分别用来编译本机的一些工具链和目标平台的node二......