欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种基于Flannel网络的云应用混布方法和装置独创技术14637字

一种基于Flannel网络的云应用混布方法和装置

2021-03-24 08:14:20

一种基于Flannel网络的云应用混布方法和装置

  技术领域

  本发明涉及云计算技术领域,具体而言,涉及一种基于Flannel网络的云应用混布方法和装置。

  背景技术

  云计算是一种新型的软件交付模型,它使得随时随地、便捷、按需地通过网络访问由可配置的计算资源构成的共享池成为可能,而这些计算资源(如网络、服务器、存储、应用服务)只需极少的管理工作和服务提供者的互动就可以实现快速地分配和释放。随着虚拟化、容器、云计算等技术的发展,用户更多的数据、计算可以放到云端进行处理,所有的云端资源都作为一种服务的形式存在。容器及生态技术的出现,进一步提升了IT运维效率,使得整个IT的架构发生了里程碑式的转变。

  但是,随着容器技术的使用,也带来了如下几个问题:服务的管理难度增加,网络流量的管控更复杂;应用混合部署(虚机和容器)更有挑战。其中,兼容已有基础设施,实现容器和虚机的网络访问及服务调用是一个普遍且很有难度的问题。

  发明内容

  鉴于上述问题,本发明提供了一种基于Flannel网络的云应用混布方法和装置,在不改变现有基础设施架构,不影响现有已运行业务的情况下,实现容器和容器、虚机和容器间应用的网络访问和服务调用。

  为解决上述技术问题,本发明采用的技术方案是:一种基于Flannel网络的云应用混布方法,应用于多个节点上,所述Flannel网络包括VXLan网络模式,所述方法包括如下步骤:部署分布式缓存中间件;设置VXLan网络地址段;将VXLan网络地址段划分为多个子网地址段,为每个所述节点分配一个所述子网地址段;在所述节点上部署Flannel插件,并与所述分布式缓存中间件连接;启动所述Flannel插件,在所述节点上生成网络接口,所述多个节点间通过所述网络接口进行通信。

  作为优选方案,所述分布式缓存中间件的架构采用2n+1节点,其中n≥1,用以存放VXLan网络的配置信息和所述节点分配到的子网地址段信息。

  作为优选方案,所述配置信息和子网地址段信息采用Key-Value格式进行存储。

  作为优选方案,所述部署分布式缓存中间件包括建设时间服务器,具体为采用时间同步协议,使每个节点向所述时间服务器进行严格的时间同步,以确保所有节点中保存的数据时效性一致。

  作为优选方案,所述VXLan网络地址段使用B类地址段,具体为172.16.x.x-172.31.x.x中的任何一个网段;所述VXLan网络地址段使用16位掩码的网络,可容纳节点数量为:2^16-2。

  作为优选方案,所述节点上部署有容器,所述容器配置有相应节点分配到的子网地址段。

  一种基于Flannel网络的云应用混布装置,应用于多个节点上,所述Flannel网络包括VXLan网络模式,所述装置包括:缓存部署模块,用于部署分布式缓存中间件;网段设置模块,用于设置VXLan网络地址段;子网络分配模块,用于将所述VXLan网络地址段划分为多个子网地址段,并为每个所述节点分配一个子网地址段;插件部署模块,用于在所述节点上部署Flannel插件,并与所述分布式缓存中间件连接;插件启动模块,用于启动所述Flannel插件,在所述节点上生成网络接口,节点间通过所述网络接口进行通信。

  作为优选方案,所述缓存部署模块包括键值存放模块,用于将VXLan网络的配置信息和所述节点分配到的子网地址段信息采用Key-Value格式进行存储。

  作为优选方案,所述缓存部署模块还包括时间同步模块,用于建设时间服务器,并采用时间同步协议,使每个节点向所述时间服务器进行严格的时间同步,以确保所有节点中保存的数据时效性一致。

  作为优选方案,所述节点上部署有容器,其特征在于,所述子网络分配模块包括容器地址分配模块,用于在所述容器配置相应节点分配到的子网地址段。

  与现有技术相比,本发明的有益效果包括:通过VXLan网络规划,将基础设施中原本孤立的网络资源池,在更上层实现了融合,增强了灵活性;不涉及对已有物理基础架构的修改,从软件层面解决网络流量访问;兼容已经部署的应用和服务,实现云上和非云、新建和存量的服务访问;几乎不影响已经部署业务的运行状况、基础架构、访问策略;对业务无侵入性;从软件层面实现云应用混合部署(部署在虚机,部署在容器)的服务调用,实现统一的管控。

  附图说明

  参照附图来说明本发明的公开内容。应当了解,附图仅仅用于说明目的,而并非意在对本发明的保护范围构成限制。在附图中,相同的附图标记用于指代相同的部件。其中:

  图1为本发明实施例的Flannel网络的架构图;

  图2为本发明实施例的基于Flannel网络的云应用混布方法的流程图;

  图3为本发明实施例的存量服务与云上服务调用流程图;

  图4为本发明实施例的基于Flannel网络的云应用混布方法的访问关系图;

  图5为本发明实施例的基于Flannel网络的云应用混布装置的模块示意图;

  图6为本发明实施例的缓存部署模块的结构示意图。

  具体实施方式

  容易理解,根据本发明的技术方案,在不变更本发明实质精神下,本领域的一般技术人员可以提出可相互替换的多种结构方式以及实现方式。因此,以下具体实施方式以及附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限定或限制。

  如图1所示,为本发明实施例的Flannel网络的架构图。Flannel网络本身支持多种网络模式,在本实施例中,使用VXLan网络模式,以使不同网段的节点能加入VXLan网络实现通信。通过VXLan网络中的地址实现云上容器、云上虚机以及非云虚机间的流量访问和服务调用,不使用节点所在的基础设施分配的地址进行通信。

  根据本发明的一实施方式结合图2至4示出。一种基于Flannel网络的云应用混布方法,应用于多个节点上,包括如下步骤:

  S110:部署分布式缓存中间件(ETCD),用以存放VXlan网络的配置信息和所有节点分配到的Flannel网络的地址信息。该缓存中间件自身是高可用的,可以存储大量Key-Value格式数据,这种键值存放的方式,直接使用Key获取Value,不需要进行复杂的检索,使得缓存中间件能够提供快速的读写能力,是整个VXLan网络元数据的存储中心。

  分布式缓存中间件部署架构采用2n+1节点,其中n≥1,至少为3节点。还需要在分布式缓存中间件上建设时间服务器T-Server,如果已有时间服务器,亦可使用已有时间服务器,采用时间同步协议(NTP,具体服务为:NTPD服务,即时间同步服务),使所有节点向时间服务器T-Server进行严格的时间同步,以确保所有节点中保存的数据时效性保持一致。

  S120:设置VXLan网络地址段,设置整个VXLan网络可以使用的地址段;此网络与已有VXLan网络不能冲突,且规划的地址段能支持足够的节点加入。具体规划如下:

  ①选择合适的网段,一般使用B类地址段;可以使:172.16.x.x-172.31.x.x中的任何一个网段;

  ②使用16位掩码的网络,可容纳容器和虚机节点为:2^16-2。

  S130:将VXLan网络地址段划分为多个子网地址段,为每个节点分配一个子网地址段。此步骤非常关键,每个节点都需要加入已经规划的VXLan网络,且对VXLan网络进一步划分为多个子网,每个节点分配一个子网段,以满足一个节点上启动多个容器对IP地址的需求。具体方法如下:

  ①进一步将VXLan网络地址段进行划分,给每个节点划分一个子网段,建议不同配置的节点配置子网不同。例如:4C/8G的节点,掩码为:28位,可以分到15个IP地址,此类型虚机部署容器应用,可以承载15个容器;8C/16G的节点,设置掩码为:27位,此类型虚机部署容器应用,可以承载31个容器;如果有更高配置建议使用:26位或者25位掩码;注意:整个VXLan网络中的每个虚机节点都有相同位数的掩码。例如:已经规划好使用27位掩码,一个4C/8G的节点也一定会使用27位掩码的地址段。

  ②以172.30.x.x/16为例,在分布式缓存中创建网络划分的元数据:

  

  

  备注:\"SubnetLen\":27表明使用27位掩码。

  此外,每个要运行容器的节点上必须部署一个守护进程(也就是daemon),用以启动容器并对容器生命周期进行管理。为容器守护进程配置所在节点分配到的Flannel地址段,使得能为后续创建的容器分配子网中的地址。守护进程启动的时候加载Flannel地址段的配置项,然后为后续启动的容器从地址段中挑一个地址进行分配。

  S140:在节点上部署Flannel插件,并与分布式缓存中间件连接。在将要加入VXLan网络的节点上部署Flannel插件,连接分布式缓存中间件,按照规划的VXLan网络,为节点自动分配合适的子网段,子网包含的IP个数固定。

  S150:启动Flannel插件,在节点上生成网络接口,多个节点间通过网络接口进行通信。部署Flannel并启动成功的节点上会多出一个:flannel.1的网络接口。样例如下:

  

  使用VXLan中的地址实现云上容器、云上虚机以及非云虚机间的流量访问和服务调用,不使用虚机和节点所在的基础设施分配的地址进行通信。

  下面结合具体实例对本发明的技术方案做进一步描述:

  1.规划ETCD节点个数2n+1(n>=1);

  2.设置ETCD配置文件,核心参数为:客户端访问端口(2379),ETCD集群名称(Cloud-etcd-cluster);

  3.同步各个ETCD节点时间(向时间服务器同步);

  4.启动ETCD集群;

  5.规划Flannel集群网络地址:172.30.0.0/16;

  6.规划可加入Flannel网络的节点的可用地址掩码为:A,此处的A可根据节点的配置进行合理规划,建议取值为:24-28中的一个;

  7.设置Flannel网络元数据;

  

  8.对各个要加入Flannel网络的节点,根据如下情况选择不同的操作:

  线上服务节点A,且系统(Linux)内核为:2.x,执行:9

  线上服务节点B,且系统(Linux)内核为:3.x,执行:10

  新增加节点C,且系统(Linux)内核为:2.x,执行11

  新增加节点D,且系统(Linux)内核为:3.x或以上,执行:12

  9.申请变更流程,升级系统内核到>=3.10,在合适时间窗口内重启系统和业务,在节点上部署并启动Flannel(二进制文件);

  10.申请变更流程,在节点上部署并启动Flannel(二进制文件);

  11.升级系统内核到>=3.10,在合适时间窗口内重启系统和业务,在节点上部署并启动Flannel(二进制文件);

  12.在节点上部署并启动Flannel(二进制文件);

  13.通过如下方式验证网络可达性:

  A访问C;

  A访问D;

  C上启动容器C-ctn,A访问C上容器C-ctn,C上容器C-ctn访问A;

  D上启动容器D-ctn,A访问D上容器D-ctn,D上容器D-ctn访问A。

  如图5和6所示,本发明还公开了一种基于Flannel网络的云应用混布装置,应用于多个节点上,Flannel网络包括VXLan网络模式,该装置包括:

  缓存部署模块110,用于部署分布式缓存中间件。缓存部署模块110包括键值存放模块111和时间同步模块112,其中,键值存放模块111用于将VXLan网络的配置信息和节点分配到的子网地址段信息采用Key-Value格式进行存储。时间同步模块112用于建设时间服务器,并采用时间同步协议,使每个节点向时间服务器进行严格的时间同步,以确保所有节点中保存的数据时效性一致。

  网段设置模块120,用于设置VXLan网络地址段。

  子网络分配模块130,用于将VXLan网络地址段划分为多个子网地址段,并为每个节点分配一个子网地址段;子网络分配模块包括容器地址分配模块,用于在容器配置相应节点分配到的子网地址段。

  插件部署模块140,用于在节点上部署Flannel插件,并与分布式缓存中间件连接。

  插件启动模块150,用于启动Flannel插件,在节点上生成网络接口,节点间通过网络接口进行通信。

  所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

  应理解,所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

  本发明的技术范围不仅仅局限于上述说明中的内容,本领域技术人员可以在不脱离本发明技术思想的前提下,对上述实施例进行多种变形和修改,而这些变形和修改均应当属于本发明的保护范围内。

《一种基于Flannel网络的云应用混布方法和装置.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)