公开/公告号CN110611697A
专利类型发明专利
公开/公告日2019-12-24
原文格式PDF
申请/专利权人 杭州网银互联科技股份有限公司;
申请/专利号CN201910710675.8
申请日2019-08-02
分类号
代理机构浙江千克知识产权代理有限公司;
代理人雷娴
地址 310012 浙江省杭州市西湖区华星路96号3幢第2005室
入库时间 2024-02-19 15:57:53
法律状态公告日
法律状态信息
法律状态
2020-07-07
授权
授权
2020-01-17
实质审查的生效 IPC(主分类):H04L29/08 申请日:20190802
实质审查的生效
2019-12-24
公开
公开
技术领域
本发明涉及容器网络技术领域,尤其涉及一种混合云的网络架构及网络部署方法。
背景技术
Kubernetes作为私有云、公共云以及混合云环境中大规模部署容器化应用程序的开源项目,是一个可移植、可扩展的开源平台。用于管理容器化工作负载和服务,有助于服务的自动化部署和扩缩容。Kubernetes属于主从分布式架构,由master node、workernode、addons组成。master node是集群控制的中心,包含kube-apiserver、scheduler、controller-manager、etcd,worker node是用户业务的负载节点,包含kubelet、kube-proxy,addons是Kubernetes的功能扩展,主要是网络、网络策略和可视化管理。其中网络包含flannel、calico、canal等网络插件。
Calico是Kubernetes其中的一种网络插件,提供纯L3架构解决方案,用于互连虚拟机或Linux容器(“工作负载”)。Calico重新定义了使用纯L3方法构建数据中心网络的方法,该方法比使用覆盖网络的标准方法更简单,更高扩展性,更好性能和更高效。通过特定于环境的插件,Calico可与Kubernetes云编排系统无缝集成,以在本地和地理位置分散的工作负载之间提供网络连接,删除与标准第2层解决方案关联的数据包封装,减少传输开销并提高性能,使用纯IP网络结合BGP进行路由分发的Calico方法允许虚拟网络的互联网扩展。
Calico在Kubernetes的架构如图1所示,Felix负责将路由写到内核Kernet中,confd监控ETCD,通知BGP Client建立bgp连接,不管目的地是节点还是容器,直接根据三层路由转发。
目前Calico在应用于混合云的复杂环境中时,由于公有云的VPC网络,使得IDC和公有云中的容器无法在一个集群中在同一个平面沟通。
发明内容
本发明的目的在于提供一种混合云的网络架构,包括加载有Calico插件的Kubernetes集群,其特征在于:
所述Calico插件的calico-node设有公有云IP池,所述公有云IP池用于为对应公有云上启动的容器提供IP地址;
所述公有云IP池中的IP地址与Kubernetes集群的CDIR地址处于不同网段。
上述技术方案中,增加了对应公有云的IP池,IDC环境使用原生IP(即Kubernetes集群的CDIR地址),使得IDC和公有云容器使用不同的网段,从而打通IDC到公有云容器的网络。
作为优选,所述公有云IP池由所述Calico插件根据公有云容器网段参数和混合云CIDR参数分配。
作为优选,还包括集群管理模块,用于接收用户界面输入的集群参数并根据所述集群参数部署所述Kubernetes集群;所述集群参数至少包括所述公有云容器网段参数和所述混合云CIDR参数。
作为优选,还包括部署在所述Kubernetes集群中的路由控制模块;所述路由控制模块包括路由创建单元,所述路由创建单元为加入Kubernetes集群的公有云节点在对应的公有云VPC网络中创建对应的路由。
作为优选,所述路由控制模块包括IP分配单元,所述IP分配单元为公有云上创建的容器分配对应的所述公有云IP池中的IP地址。
作为优选,部署在所述Kubernetes网络的主节点中的路由控制模块还包括服务监控单元;所述服务监控单元访问所述主节点的api-sever以获取ETCD信息。使得路由控制模块可以通过api-sevrer对路由和service进行监控。
作为优选,所述服务监控单元在监控到负载平衡信息更新时在指定的公有云VPC网络中创建对应的负载平衡服务。通过公有云的负载平衡也可以访问IDC环境中的应用。
本发明还提供一种混合云的网络部署方法,适用于加载有Calico插件的Kubernetes集群其特征在于,包括:
接收容器创建请求;
根据所述容器创建请求为公有云上创建的容器分配对应的所述公有云IP池中的IP地址;
其中,所述公有云IP池中的IP地址与Kubernetes集群的CDIR地址处于不同网段。
上述技术方案中,增加了对应公有云的IP池,IDC环境使用原生IP(即Kubernetes集群的CDIR地址),使得IDC和公有云容器使用不同的网段,从而打通IDC到公有云容器的网络。
进一步的,在接收容器创建请求之前,还包括:所述Calico插件根据混合云容器CIDR和公有云子网段,在calico-node中设置所述公有云IP池。
进一步地,在接收容器创建请求之前,还包括:接收公有云节点加入请求;
根据所述公有云节点加入请求在对应的公有云VPC网络中创建对应的路由。
本发明的有益效果:
本发明可以使Kubernetes像在单一云环境一样,控制pod在多个公有云和IDC环境上自动调度,并且相对于单一云环境,可以提供多入口流量,任一公有云环境或IDC环境挂掉了,不影响应用的使用。业务临时大出入,也可以使用公有云资源自动扩容,最终保持应用的稳定性和扩展性,应用可以自由指定云下云上的资源,根据实际情况,进行最优配置。
附图说明
图1 Calico插件的架构图。
图2本发明实施例一部署混合云的系统图。
具体实施方式
这里使用的术语仅用于描述特定实施例的目的,而不意图限制本发明。 除非另外定义,否则本文使用的所有术语具有与本发明所属领域的普通技术人员通常理解的相同的含义。 将进一步理解的是,常用术语应该被解释为具有与其在相关领域和本公开内容中的含义一致的含义。本公开将被认为是本发明的示例,并且不旨在将本发明限制到特定实施例。
如图2所示的一种混合云的网络架构,包括加载有Calico插件的Kubernetes集群、用于部署Kubernetes集群的集群管理模块、以及部署在Kubernetes中的路由控制模块。
集群管理模块用于接收用户界面输入的集群参数并根据集群参数部署Kubernetes集群。其中,集群参数至少包括公有云容器网段参数和混合云CIDR参数。用户在用户界面输入集群参数并传输到集群管理模块,集群管理模块根据接收到的集群参数部署Kubernetes集群。
Calico插件使用calico bgp模式,包括calico-kube-controller和calico-node。其中,calico-kube-controller部署在主节点中,由几个控制器监控关于Calico的配置信息并同步更新。calico-node部署在各节点中,用于将路由信息写入网络系统中并由bgp-client通告与自己有关的路由信息。公有云节点的calico-node设有一公有云IP池,用于为对应公有云上启动的容器提供IP地址,kubelet每启动一个容器,ip都从公有云对应的公有云IP池中分配。公有云IP池中的IP地址由Calico插件根据公有云容器网段参数和混合云CIDR参数分配,分配原则为:需要保证公有云IP池中的IP地址与Kubernetes集群的CIDR地址处于不同网段。
公有云中的路由信息通过路由控制模块创建,路由控制模块包括路由创建单元和IP分配单元。路由创建单元为加入Kubernetes集群的公有云节点在对应的公有云VPC网络中创建对应的路由。IP分配单元为公有云上创建的容器分配对应的公有云IP池中的IP地址。从而使得公有云和IDC之间的容器网络可以互通。
本实施例中,部署在Kubernetes网络的主节点中的路由控制模块还包括服务监控单元。服务监控单元访问主节点的api-sever以获取ETCD信息。路由控制模块对路由和service进行监控,间接通过api-sever获取ETCD中的对应的信息。服务监控单元在监控到负载平衡(loadbalancer)信息更新时在指定的公有云VPC网络中创建对应的负载平衡服务。
从应用的角度看,本实例部署的混合云如图1所示。阿里云的loadbalancer作为入口,应用分别部署在阿里云、腾讯云、IDC上,应用在任一方挂掉,都可以从阿里云的入口进行正常访问。
实施例二
一种混合云的网络部署方法,适用于实施例一所述的Kubernetes集群其特征在于,包括:
步骤S1,部署Kubernetes集群。根据用户界面输入的集群参数部署Kubernetes集群。在Kubernetes集群中部署路由控制模块并设置插件Calico使用calico bgp模式,在部署集群时需要预先配置好公有云容器网段,公有云容器网段需要与Kubernetes的CIDR不同。Calico插件根据混合云容器CIDR和公有云子网段,在calico-node中设置公有云IP池。通过增加了对应公有云的IP池,而IDC环境仍然使用原生的IP池。这样可以为IDC和公有云容器分配不同的网段,从而打通IDC到公有云的容器网络。
步骤S2,接收公有云节点加入请求。
步骤S3,根据公有云节点加入请求在对应的公有云VPC网络中创建对应的路由。路由控制模块在监控到每有一个公有云节点加入Kubernetes集群时,根据公有云IP池所在的网段,在对应的公有云VPC网络中创建对应的路由。
步骤S4,接收容器创建请求。
步骤S5,根据容器创建请求为公有云上创建的容器分配对应的公有云IP池中的IP地址。每有一个容器在公有云节点上创建出来,路由控制模块为为该容器分配对应的公有云IP池中的IP地址,从而使公有云VPC网络节点上创建的容器可以和IDC容器网络互通,达到在一个kubernetes集群的效果。
虽然描述了本发明的实施方式,但是本领域普通技术人员可以在所附权利要求的范围内做出各种变形或修改。
机译: 一种异步网络部署中直接发现的方法
机译: 一种异步网络部署中直接发现的方法
机译: 无线网络部署的辅助设备,便携式终端和无线网络部署的方法