CN110881007A - 一种容器集群网络接入的方法和装置 - Google Patents
一种容器集群网络接入的方法和装置 Download PDFInfo
- Publication number
- CN110881007A CN110881007A CN201811031487.4A CN201811031487A CN110881007A CN 110881007 A CN110881007 A CN 110881007A CN 201811031487 A CN201811031487 A CN 201811031487A CN 110881007 A CN110881007 A CN 110881007A
- Authority
- CN
- China
- Prior art keywords
- container
- network
- container cluster
- network address
- cluster
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种容器集群网络接入的方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:根据业务需求确定网络地址的数量,并且配置所述数量的网络地址;基于配置的网络地址,更新网络地址的路由策略;根据更新的路由策略,将用户请求分发到容器集群中对应的容器。该方法可根据业务需求动态配置IP,并且基于动态配置的IP的路由策略,将用户请求分发到容器集群中对应的容器,可用性更高,更灵活、更可靠。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种容器集群网络接入的方法和装置。
背景技术
容器技术虚拟化技术已经成为一种被大家广泛认可的容器技术服务器资源共享方式,容器技术可以在按需构建容器技术操作系统实例的过程当中,为系统管理员提供极大的灵活性。容器集群是程序镜像的运行态集合,主机是容器集群运行的宿主,通常一台主机上会运行若干个不同程序的容器。现有技术中,对于容器集群的网络接入(用户请求到容器集群的网络通路),是将容器网络和物理机网络打平,即在分配网络地址IP时,将每个容器作为一个物理机对待,需要在交换机上预留以太网端口。其中,以太网端口和IP一一对应,交换机上的一个以太网端口可以连接一个设备(物理机或容器),而一个设备具备一个全球唯一的Mac地址,交换机中会存储一份“Mac地址-IP对照表”,以实现不同设备将网络求情通过IP发送到对方。因此,需要预先对IP的数量进行规划,则预留以太网端口,在创建出容器后绑定该预先配置的IP,实现网络接入。
上述现有技术在实现过程中存在以下问题:需要对IP的配置进行预先规划,以及在交换机上预留以太网端口,消耗物理机所在网络的可用IP;由于容器创建时就为其申请一个IP地址,在配置服务的流量接入和负载均衡过程中,需要将新建容器IP手动加入,以实现容器流量接入。
发明内容
有鉴于此,本发明实施例提供一种容器集群网络接入的方法和装置,能够根据业务需求动态配置IP,并且基于动态配置的IP的路由策略,将用户请求分发到容器集群中对应的容器,减少资源浪费,可用性更高,更灵活、更可靠。
为实现上述目的,根据本发明实施例的一个方面,提供了一种容器集群网络接入的方法。
本发明实施例的容器集群网络接入的方法包括:根据业务需求确定网络地址的数量,并且配置所述数量的网络地址;基于配置的网络地址,更新网络地址的路由策略;根据更新的路由策略,将用户请求分发到容器集群中对应的容器。
可选地,配置所述数量的网络地址的步骤包括:基于容器集群主机上部署的flannel网络,确认所述容器集群主机的子网;根据所述容器集群主机的子网,配置所述数量的网络地址
可选地,基于配置的网络地址,更新网络地址的路由策略的步骤包括:基于监听容器集群的网络端点接口,确定变化的网络地址;将所述变化的网络地址与容器的对应关系更新到redis数据库
可选地,根据更新的路由策略,将用户请求分发到容器集群中对应的容器的步骤包括:通过动态网关技术,读取更新的路由策略;对外暴露所述更新的路由策略,将用户请求分发到容器集群中对应的容器。
可选地,所述容器集群为kubernetes容器集群。
为实现上述目的,根据本发明实施例的另一个方面,提供了一种容器集群网络接入的装置。
本发明实施例的容器集群网络接入的装置包括:网络地址动态配置模块,用于根据业务需求确定网络地址的数量,并且配置所述数量的网络地址;路由策略更新模块,用于基于配置的网络地址,更新网络地址的路由策略;容器流量分发模块,用于根据更新的路由策略,将用户请求分发到容器集群中对应的容器。
可选地,所述网络地址动态配置模块还用于,基于容器集群主机上部署的flannel网络,确认所述容器集群主机的子网;以及,根据所述容器集群主机的子网,配置所述数量的网络地址。
可选地,所述路由策略更新模块还用于,基于监听容器集群的网络端点接口,确定变化的网络地址;将所述变化的网络地址与容器的对应关系更新到redis数据库。
可选地,所述容器流量分发模块还用于,通过动态网关技术,读取更新的路由策略;以及,对外暴露所述更新的路由策略,将用户请求分发到容器集群中对应的容器。
可选地,所述容器集群为kubernetes容器集群。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种电子设备。
本发明实施例的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任一项的容器集群网络接入的方法。
为实现上述目的,根据本发明实施例的再一个方面,提供了一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现上述任一项的容器集群网络接入的方法。
上述发明中的一个实施例具有如下优点或有益效果:可根据业务需求动态配置网络地址IP,并且基于动态配置的IP的路由策略,将用户请求分发到容器集群中对应的容器,进而解决了现有技术中必须提前规划,以及在交换机上预留以太网端口的问题,减少资源浪费。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的容器集群网络接入的方法的主要流程的示意图;
图2是现有技术中依赖kube-proxy的网络接入方法的示意图;
图3是根据本发明实施例的kubernetes容器集群网络接入方法的示意图;
图4是根据本发明实施例的容器集群网络接入的装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性系统架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本发明实施例中,所涉及的技术术语解释如下:
Docker:一个开源的应用容器引擎;Docker容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架包括系统;
kubernetes:一个基于Docker的开源容器集群管理平台,实现基于Docker构建容器,利用Kubernetes能很方面管理多台Docker主机中的容器;
kubernetes service:是kubernetes对一组容器的逻辑抽象;通过Selector选择的一组Pods的服务抽象,其实就是一个微服务,提供了服务的LB和反向代理的能力,而kube-proxy的主要作用就是负责service的实现;
kube-proxy:管理service的访问入口,包括集群内Pod到Service的访问和集群外访问service;
Pod:kubernetes的最小操作单元,一个Pod可以由一个或多个容器组成;同一个Pod只能运行在同一个主机上,共享相同的volumes、network、namespace;
kubernetes endpoints:是kubernetes对kubernetes service中网络端点的抽象;
flannel(Flannel在集群中的每台主机上运行一个名为flanneld的代理程序,负责从预配置地址空间中为每台主机分配一个网段):一个针对kubernetes集群的主机网络规划服务;
iptables:一个配置Linux内核防火墙的命令行工具,可以修改、转发、重定向Linux主机上的数据包;
flannel网络:在搭建了kubernetes集群的主机上规划一套覆盖网络(OverlayNetwork),为每个主机指定一个独立网段,对运行于主机上的Docker容器在相应网段下分配IP;
kubernetes endpoints API:kubernetes提供了一组endpoints终端变更通知和查询的API,可以通过监听回调和主动查询获得容器集群最新的实例IP和端口信息;
动态网关技术:利用一个网络服务器Web server作为用户请求入口,按需求将请求转发到不同的目标,并支持转发目标的动态更新。常见实现方案有openresty(网络服务器)+lua(转发逻辑)+redis(高速缓存)等;
etcd:一个分布式k-v存储系统;
dockerd:docker容器在主机上的服务程序,可以配置容器的存储、网络等基础资源分配方式。
图1是根据本发明实施例的容器集群网络接入的方法的主要流程的示意图,如图1所示,本发明实施例的确定容器集群网络接入的方法主要包括:
步骤S101:根据业务需求确定网络地址的数量,并且配置数量的网络地址。具体的,基于容器集群主机上部署的flannel网络,确认容器集群主机的子网;根据容器集群主机的子网,配置数量的网络地址。
区别于现有技术中预先对IP的数量进行规划,以及在交换机上预留以太网端口,消耗物理机所在网络的可用IP,以实现网络接入,本发明实施例可根据业务需求动态配置网络地址的数量。在本发明实施例中,在容器集群主机上部署flannel的后台服务软件flanneld,则它会为每个主机划分一个子网subnet,并将这些主机上的docker配置为启动容器时从相应子网分配IP。以及,设置主机路由规则,使主机到容器、容器到容器均可通过flannel IP访问。每个主机的flanneld会将自己与所获取subnet的关联信息存入etcd中,例如,subnet 10.1.15.0/24所在主机可通过IP 192.168.0.100访问,subnet 10.1.16.0/24可通过IP 192.168.0.200访问。而且,正确启动flanneld和dockerd,程序会在主机上自动添加路由规则,无需人工设置。
基于部署的flannel网络,配置IP的具体过程包括:
1)在flannel集群配置连接的etcd中设置如/coreos.com/network/config'{"Network":"10.1.0.0/16"}'表示整个flannel网络在10.1.0.0/16网段下分配IP;
2)每台主机上flanneld程序启动后,会在前述的网段下为本机划分一个小网段如10.1.0.12/24,写入/run/flannel/subnet.env文件中;
3)每台主机上启动dockerd程序时参考/run/flannel/subnet.env文件指定--bip10.1.0.12/24参数,则该主机上启动的容器都会在此子网下分配IP。
步骤S102:基于配置的网络地址,更新网络地址的路由策略。基于监听容器集群的网络端点接口,确定变化的网络地址;将变化的网络地址与容器的对应关系更新到redis数据库。在该过程中,通过监听kubernetesendpoints API,将kubernetes service新增/变化的endpoints IP:port与service的对应关系更新到redis。监听该API得到的每条是一个endpoint“变化事件”信息,包括add、del和modify,其中包含service、IP、port、事件类型等可以对应。
步骤S103:根据更新的路由策略,将用户请求分发到容器集群中对应的容器。通过动态网关技术,读取更新的路由策略;对外暴露更新的路由策略,将用户请求分发到容器集群中对应的容器。容器集群为kubernetes容器集群。具体的,部署Openresty(Openresty是基于Nginx的一个软件包,内部包含各种可用的库)并将主机也加入flannel网络,编写lua(脚本语言)插件实现一个动态网关,该lua插件具体用于用户请求到达时转发到从redis读取service对应的最新IP:port。Openresty支持在请求到达nginx服务器的各阶段编写lua脚本实现用户自定义逻辑,可以将读取redis和转发的逻辑代码嵌入到对应service的nginx配置中。
图2是现有技术中依赖kube-proxy的网络接入方法的示意图;图3是根据本发明实施例的kubernetes容器集群网络接入方法的示意图。
如图2所示,现有技术中,在容器集群主机上部署和启动kube-proxy程序。用户创建kubernetes service(定义了一个Pod的逻辑集合和一个用于访问它们的策略),配置容器内应用程序监听的端口、service对外暴露的端口、service IP生成规则等。kube-proxy程序监听kubernetes endpoints API,将变化的endpoints信息与其对应的service IP:port转发规则写入iptables。最后,使用kubernetesNodePort/LoadBalancer等方案对外暴露serviceIP:port,请求经过iptables转发到达对应service容器。其中,为service的所有后端写入一条iptables规则,请求到service IP:port的流量会以随机方式重定向到后端pod。
现有技术依赖于kube-proxy维护主机iptables规则来实现容器网络接入,有两个方面的缺点:因为所有到达主机的内外部请求都要遍历匹配iptables规则,当集群内接入的service达到一定数量时,主机上的iptables规则数量巨大,导致网络性能下降;因为iptables本身是主机防火墙配置入口,同时使其作为集群流量入口的话,可能带来规则冲突、误删除等风险,同时运维成本加大。
如图3所示,本发明实施例实现了kubernetes容器集群网络接入,可以将用户请求接入到容器集群服务中。并且,解除了对kube-proxy的依赖,避免繁杂的iptables规则带来的维护成本和风险。在本发明实施例中,首先,在集群主机上部署flannel的后台服务软件flanneld,它会为每个主机划分一个子网,并将这些主机上的docker配置为启动容器时从相应子网分配IP。
还可通过自研模块监听kubernetesendpoints API,将kubernetes service新增或变化的endpoints IP:port与service的对应关系更新到redis数据库。如果减少的话,则释放对应的IP。部署openresty并将主机也加入flannel网络,编写lua(脚本语言)插件实现一个动态网关。对外暴露动态网关IP:port,动态网关将请求分发到对应的service容器。
本发明实施例,可根据业务需求动态配置IP,并且基于动态配置的IP的路由策略,将用户请求分发到容器集群中对应的容器,进而解决了现有技术中必须规划以及在交换机上预留以太网端口的问题,减少资源浪费。并且,基于flannel规划kubernetes集群网络,将动态网关与容器网络打平,不仅减少资源浪费,提高可用性,还对kube-proxy和iptables解依赖,避免可能的网络性能损失,降低iptables维护成本。本发明实施例还可通过自研模块监听kubernetes endpoints API,负责将service对应的最新后端实时更新到缓存;利用动态网关读取缓存,将用户请求按需转发到service对应的集群实例,提升了业务可用性和性能。以及,流量入口与kubernetes主机部署解耦合,提升集群高可用性和可运维性。
图4是根据本发明实施例容器集群网络接入的装置的主要模块的示意图,如图4所示,本发明实施例的容器集群网络接入的装置400包括网络地址动态配置模块401、路由策略更新模块402和容器流量分发模块403。
网络地址动态配置模块401用于,根据业务需求确定网络地址的数量,并且配置数量的网络地址。网络地址动态配置模块还用于,基于容器集群主机上部署的flannel网络,确认容器集群主机的子网;以及,根据容器集群主机的子网,配置数量的网络地址。区别于现有技术中预先对IP的数量进行规划,则预留以太网端口,消耗物理机所在网络的可用IP实现网络接入的方法,本技术方案根据业务需求动态配置网络地址的数量。在本发明实施例中,在容器集群主机上部署flannel的后台服务软件flanneld,则它会为每个主机划分一个子网subnet,并将这些主机上的docker配置为启动容器时从相应子网分配IP。并可设置主机路由规则,使主机到容器、容器到容器均可通过flannel IP访问。每个主机的flanneld会将自己与所获取subnet的关联信息存入etcd中。
路由策略更新模块402用于,基于配置的网络地址,更新网络地址的路由策略。路由策略更新模块还用于,基于监听容器集群的网络端点接口,确定变化的网络地址;将变化的网络地址与容器的对应关系更新到redis数据库。路由策略更新模块通过监听kubernetesendpoints API,将kubernetes service新增/变化的endpoints IP:port与service的对应关系更新到redis。
容器流量分发模块403用于,根据更新的路由策略,将用户请求分发到容器集群中对应的容器。容器流量分发模块还用于,通过动态网关技术,读取更新的路由策略;以及,对外暴露更新的路由策略,将用户请求分发到容器集群中对应的容器。容器集群为kubernetes容器集群。通过部署openresty并将主机也加入flannel网络,编写lua(脚本语言)插件——用户请求到达时转发到从redis读取service对应的最新IP:port——实现一个动态网关。openresty支持在请求到达nginx服务器的各阶段编写lua脚本实现用户自定义逻辑,可以将读取redis和转发的逻辑代码嵌入到对应service的nginx配置中。
本发明实施例,可根据业务需求动态配置IP,并且基于动态配置的IP的路由策略,将用户请求分发到容器集群中对应的容器,进而解决了现有技术中必须规划以及在交换机上预留以太网端口,消耗物理机所在网络的可用IP的问题,减少资源浪费。并且,基于flannel规划kubernetes集群网络,将动态网关与容器网络打平,不仅减少资源浪费,提高可用性,还对kube-proxy和iptables解依赖,避免可能的网络性能损失,降低iptables维护成本。本发明实施例通过监听kubernetes endpoints API,负责将service对应的最新后端实时更新到缓存;利用动态网关读取缓存,将用户请求按需转发到service对应的集群实例,提升了业务可用性和性能。以及,流量入口与kubernetes主机部署解耦合,提升集群高可用性和可运维性。
图5示出了可以应用本发明实施例的容器集群网络接入的方法或容器集群网络接入的装置的示例性系统架构500。
如图5所示,系统架构500可以包括终端设备501、502、503,网络504和服务器505。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果反馈给终端设备。
需要说明的是,本发明实施例所提供的容器集群网络接入的方法一般由服务器505执行,相应地,容器集群网络接入的装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备的计算机系统600的结构示意图。图6示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机系统600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括容器集群网络接入、路由策略更新模块和容器流量分发模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,网络地址动态配置模块还可以被描述为“根据业务需求确定网络地址的数量,并且配置所述数量的网络地址的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据业务需求确定网络地址的数量,并且配置数量的网络地址;基于配置的网络地址,更新网络地址的路由策略;根据更新的路由策略,将用户请求分发到容器集群中对应的容器。
本发明实施例,可根据业务需求动态配置网络地址IP,并且基于动态配置的IP的路由策略,将用户请求分发到容器集群中对应的容器,进而解决了现有技术中必须规划以及在交换机上预留以太网端口,消耗物理机所在网络的可用IP的问题,减少资源浪费。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种容器集群网络接入的方法,其特征在于,包括:
根据业务需求确定网络地址的数量,并且配置所述数量的网络地址;
基于配置的网络地址,更新网络地址的路由策略;
根据更新的路由策略,将用户请求分发到容器集群中对应的容器。
2.根据权利要求1所述的方法,其特征在于,配置所述数量的网络地址的步骤包括:
基于容器集群主机上部署的flannel网络,确认所述容器集群主机的子网;
根据所述容器集群主机的子网,配置所述数量的网络地址。
3.根据权利要求1所述的方法,其特征在于,基于配置的网络地址,更新网络地址的路由策略的步骤包括:
基于监听容器集群的网络端点接口,确定变化的网络地址;
将所述变化的网络地址与容器的对应关系更新到redis数据库。
4.根据权利要求1所述的方法,其特征在于,根据更新的路由策略,将用户请求分发到容器集群中对应的容器的步骤包括:
通过动态网关技术,读取更新的路由策略;
对外暴露所述更新的路由策略,将用户请求分发到容器集群中对应的容器。
5.根据权利要求1所述的方法,其特征在于,所述容器集群为kubernetes容器集群。
6.一种容器集群网络接入的装置,其特征在于,包括:
网络地址动态配置模块,用于根据业务需求确定网络地址的数量,并且配置所述数量的网络地址;
路由策略更新模块,用于基于配置的网络地址,更新网络地址的路由策略;
容器流量分发模块,用于根据更新的路由策略,将用户请求分发到容器集群中对应的容器。
7.根据权利要求6所述的装置,其特征在于,所述网络地址动态配置模块还用于,基于容器集群主机上部署的flannel网络,确认所述容器集群主机的子网;以及,根据所述容器集群主机的子网,配置所述数量的网络地址。
8.根据权利要求6所述的装置,其特征在于,所述路由策略更新模块还用于,基于监听容器集群的网络端点接口,确定变化的网络地址;将所述变化的网络地址与容器的对应关系更新到redis数据库。
9.根据权利要求6所述的装置,其特征在于,所述容器流量分发模块还用于,通过动态网关技术,读取更新的路由策略;以及,对外暴露所述更新的路由策略,将用户请求分发到容器集群中对应的容器。
10.根据权利要求6所述的装置,其特征在于,所述容器集群为kubernetes容器集群。
11.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-5中任一所述的方法。
12.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-5中任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811031487.4A CN110881007B (zh) | 2018-09-05 | 2018-09-05 | 一种容器集群网络接入的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811031487.4A CN110881007B (zh) | 2018-09-05 | 2018-09-05 | 一种容器集群网络接入的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110881007A true CN110881007A (zh) | 2020-03-13 |
CN110881007B CN110881007B (zh) | 2023-03-07 |
Family
ID=69727694
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811031487.4A Active CN110881007B (zh) | 2018-09-05 | 2018-09-05 | 一种容器集群网络接入的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110881007B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541765A (zh) * | 2020-04-21 | 2020-08-14 | 北京思特奇信息技术股份有限公司 | 一种用于多级路由调度的方法及系统 |
CN111885140A (zh) * | 2020-07-17 | 2020-11-03 | 江苏苏宁银行股份有限公司 | 一种基于Flannel网络的云应用混布方法和装置 |
CN111885005A (zh) * | 2020-06-29 | 2020-11-03 | 济南浪潮数据技术有限公司 | 一种容器云平台服务通信方法、装置、设备及介质 |
CN112202940A (zh) * | 2020-10-27 | 2021-01-08 | 杭州朗澈科技有限公司 | 一种kubernetes对外暴露Pod服务方式 |
CN112751913A (zh) * | 2020-12-22 | 2021-05-04 | 联奕科技股份有限公司 | 一种跨Kubernetes集群的网络通信方法及系统 |
CN113037881A (zh) * | 2021-02-05 | 2021-06-25 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes的云原生服务不间断的IP替换方法 |
CN113949707A (zh) * | 2021-09-30 | 2022-01-18 | 上海浦东发展银行股份有限公司 | 基于OpenResty和K8S的容器云服务发现和负载均衡方法 |
CN114866457A (zh) * | 2022-04-27 | 2022-08-05 | 猪八戒股份有限公司 | 一种基于Nginx与Lua的高性能动态路由转发方法、系统及设备 |
CN115134358A (zh) * | 2021-03-19 | 2022-09-30 | 顺丰科技有限公司 | 跨集群流量转发方法、装置、计算机设备和存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106878484A (zh) * | 2017-02-27 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种配置Docker集群容器外部IP的方法 |
CN107395781A (zh) * | 2017-06-29 | 2017-11-24 | 北京小度信息科技有限公司 | 网络通信方法及装置 |
CN107465765A (zh) * | 2017-09-21 | 2017-12-12 | 深圳市视维科技股份有限公司 | 一种基于容器云的智能应用网关实现方法 |
CN107566541A (zh) * | 2017-08-03 | 2018-01-09 | 携程旅游信息技术(上海)有限公司 | 容器网络资源分配方法、系统、存储介质和电子设备 |
US20180019948A1 (en) * | 2016-07-12 | 2018-01-18 | Cisco Technology, Inc. | Dynamically pinning micro-service to uplink port |
CN107666525A (zh) * | 2017-09-08 | 2018-02-06 | 北京京东尚科信息技术有限公司 | 集群容器ip分配的方法和装置 |
-
2018
- 2018-09-05 CN CN201811031487.4A patent/CN110881007B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180019948A1 (en) * | 2016-07-12 | 2018-01-18 | Cisco Technology, Inc. | Dynamically pinning micro-service to uplink port |
CN106878484A (zh) * | 2017-02-27 | 2017-06-20 | 郑州云海信息技术有限公司 | 一种配置Docker集群容器外部IP的方法 |
CN107395781A (zh) * | 2017-06-29 | 2017-11-24 | 北京小度信息科技有限公司 | 网络通信方法及装置 |
CN107566541A (zh) * | 2017-08-03 | 2018-01-09 | 携程旅游信息技术(上海)有限公司 | 容器网络资源分配方法、系统、存储介质和电子设备 |
CN107666525A (zh) * | 2017-09-08 | 2018-02-06 | 北京京东尚科信息技术有限公司 | 集群容器ip分配的方法和装置 |
CN107465765A (zh) * | 2017-09-21 | 2017-12-12 | 深圳市视维科技股份有限公司 | 一种基于容器云的智能应用网关实现方法 |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111541765A (zh) * | 2020-04-21 | 2020-08-14 | 北京思特奇信息技术股份有限公司 | 一种用于多级路由调度的方法及系统 |
CN111541765B (zh) * | 2020-04-21 | 2022-04-19 | 北京思特奇信息技术股份有限公司 | 一种用于多级路由调度的方法及系统 |
CN111885005A (zh) * | 2020-06-29 | 2020-11-03 | 济南浪潮数据技术有限公司 | 一种容器云平台服务通信方法、装置、设备及介质 |
CN111885005B (zh) * | 2020-06-29 | 2022-02-18 | 济南浪潮数据技术有限公司 | 一种容器云平台服务通信方法、装置、设备及介质 |
CN111885140B (zh) * | 2020-07-17 | 2023-03-24 | 江苏苏宁银行股份有限公司 | 一种基于Flannel网络的云应用混布方法和装置 |
CN111885140A (zh) * | 2020-07-17 | 2020-11-03 | 江苏苏宁银行股份有限公司 | 一种基于Flannel网络的云应用混布方法和装置 |
CN112202940A (zh) * | 2020-10-27 | 2021-01-08 | 杭州朗澈科技有限公司 | 一种kubernetes对外暴露Pod服务方式 |
CN112751913A (zh) * | 2020-12-22 | 2021-05-04 | 联奕科技股份有限公司 | 一种跨Kubernetes集群的网络通信方法及系统 |
CN113037881A (zh) * | 2021-02-05 | 2021-06-25 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes的云原生服务不间断的IP替换方法 |
CN115134358B (zh) * | 2021-03-19 | 2024-04-12 | 顺丰科技有限公司 | 跨集群流量转发方法、装置、计算机设备和存储介质 |
CN115134358A (zh) * | 2021-03-19 | 2022-09-30 | 顺丰科技有限公司 | 跨集群流量转发方法、装置、计算机设备和存储介质 |
CN113949707A (zh) * | 2021-09-30 | 2022-01-18 | 上海浦东发展银行股份有限公司 | 基于OpenResty和K8S的容器云服务发现和负载均衡方法 |
CN113949707B (zh) * | 2021-09-30 | 2024-04-30 | 上海浦东发展银行股份有限公司 | 基于OpenResty和K8S的容器云服务发现和负载均衡方法 |
CN114866457B (zh) * | 2022-04-27 | 2024-01-16 | 猪八戒股份有限公司 | 一种基于Nginx与Lua的高性能动态路由转发方法、系统及设备 |
CN114866457A (zh) * | 2022-04-27 | 2022-08-05 | 猪八戒股份有限公司 | 一种基于Nginx与Lua的高性能动态路由转发方法、系统及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110881007B (zh) | 2023-03-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110881007B (zh) | 一种容器集群网络接入的方法和装置 | |
CN107580083B (zh) | 一种容器ip地址分配的方法和系统 | |
US11658936B2 (en) | Resizing virtual private networks in provider network environments | |
US20220377045A1 (en) | Network virtualization of containers in computing systems | |
CN109889621B (zh) | 虚拟私有云服务的配置方法和装置 | |
US10320674B2 (en) | Independent network interfaces for virtual network environments | |
EP3170071B1 (en) | Self-extending cloud | |
JP2019528005A (ja) | クラウドコンピューティングシステムにおいて仮想マシンが物理サーバにアクセスするための方法、装置、およびシステム | |
CN107005471B (zh) | 通用客户驻地设备 | |
US9753786B2 (en) | Client server communication system | |
US10999326B1 (en) | Fine grained network security | |
CN111510515B (zh) | 一种区分混合应用环境的容器的方法及装置 | |
US11178218B2 (en) | Bidirectional communication clusters | |
US10333901B1 (en) | Policy based data aggregation | |
US11177974B2 (en) | Consistent provision of member node group information on virtual overlay network | |
WO2019100266A1 (zh) | 移动边缘主机服务通知方法和装置 | |
US20160057206A1 (en) | Application profile to configure and manage a software defined environment | |
JP2016116184A (ja) | 網監視装置および仮想ネットワーク管理方法 | |
US9760412B2 (en) | Client server communication system | |
CN113783914A (zh) | 数据处理方法、装置及设备 | |
KR102651239B1 (ko) | 가상화 기술을 이용한 통신 방법 및 이를 수행하는 전자 장치 | |
EP4106293A2 (en) | Network configuring method and apparatus for cloud mobile phone, device and storage medium | |
CN113904871B (zh) | 网络切片的接入方法、pcf实体、终端和通信系统 | |
CN115442129A (zh) | 一种管理集群访问权限的方法、装置和系统 | |
US10824476B1 (en) | Multi-homed computing instance processes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |