The invention discloses a method and system for the distribution of IP address of a container, which relates to the field of computer technology. One embodiment of the method includes: according to the first distribution demand container part IP address in the address pool and the corresponding binding corresponding relationship; the received IP address allocation request, determine the container to be assigned IP address and IP address binding relationship is there; if there is, it will the vessel is to be allocated IP address binding IP address assigned to the container; otherwise, the container will not bind the IP address allocation total address pool to the allocation of IP address. This implementation can bind the IP address to the container, and then ensure that the container is restarted or migrated to the same IP address, ensuring that the service is not interrupted.
【技术实现步骤摘要】
一种容器IP地址分配的方法和系统
本专利技术涉及计算机
,尤其涉及一种容器IP地址分配的方法和系统。
技术介绍
容器是与系统其他部分隔离开的一系列进程,从一个模版镜像运行,并由该镜像提供支持进程所需的全部文件。其中,Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何运行的Linux机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口。现如今,Docker的应用也越来越广泛,无论是从github上的代码活跃度,还是Redhat在RHEL6.5中集成对Docker的支持,就连Google的omputeEngine也支持Docker在其之上运行。Kubernetes是Google开源的容器集群管理系统,是Docker生态圈中重要一员,其提供应用部署、维护、扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用。而Kubernetes如何灵活的配置容器的IP地址无疑是构建网络的重要问题。目前有Flannel、Calico-cni等方法用于Kubernetes的网络管理。Flannel配合Docker,让集群中的所有节点重新规划IP地址的使用规则,从而使得不同节点上的容器能够获得“同属一个内网”且“不重复的”IP地址,并让属于不同节点上的容器能够直接通过内网IP通信。但是在设计网络时,如果需要规定每台物理机或者某几台物理机上的容器IP范围需要对etcd服务器进行配置。而且,Flannel将TCP数据包装在另一种网络包里面进行路由转发和通信,默认的节点间数据通信方 ...
【技术保护点】
一种容器IP地址分配的方法,其特征在于,包括:根据第一分配需求将总地址池中的部分IP地址与对应的容器建立一一对应的绑定关系;接收到分配IP地址的请求的情况下,判断待分配IP地址的容器是否与IP地址有绑定关系;如果有,则将所述待分配IP地址的容器所绑定的IP地址分配给该容器;否则,将所述总地址池中未绑定的IP地址分配给所述待分配IP地址的容器。
【技术特征摘要】
1.一种容器IP地址分配的方法,其特征在于,包括:根据第一分配需求将总地址池中的部分IP地址与对应的容器建立一一对应的绑定关系;接收到分配IP地址的请求的情况下,判断待分配IP地址的容器是否与IP地址有绑定关系;如果有,则将所述待分配IP地址的容器所绑定的IP地址分配给该容器;否则,将所述总地址池中未绑定的IP地址分配给所述待分配IP地址的容器。2.根据权利要求1所述的方法,其特征在于,所述根据第一分配需求将总地址池中的部分IP地址与对应的容器建立一一对应的绑定关系的步骤包括:根据第一分配需求从总地址池中读取出部分IP地址,并且根据第一分配需求确定出待绑定IP地址的容器的绑定标签;将所述绑定标签与读取出的IP地址建立一对一的对应关系;将所述对应关系记录在静态分配列表中;所述判断待分配IP地址的容器是否与IP地址有绑定关系的步骤包括:判断待分配IP地址的容器是否具有绑定标签;所述将所述待分配IP地址的容器所绑定的IP地址分配给该容器的步骤包括:获取待分配IP地址的容器的绑定标签;根据所述绑定标签在所述静态分配列表中查找出对应的IP地址;将所述IP地址分配给所述待分配IP地址的容器。3.根据权利要求1所述的方法,其特征在于,所述根据第一分配需求将总地址池中的部分IP地址与对应的容器建立一一对应的绑定关系的步骤之前,还包括:根据预先确定的IP地址数量配置总地址池;然后将所述总地址池存储在etcd的数据库中。4.根据权利要求1所述的方法,其特征在于,所述根据第一分配需求将总地址池中的部分IP地址与对应的容器建立一一对应的绑定关系的步骤之前,还包括:根据第二分配需求为指定的物理机通过配置文件配置指定地址池,并且所述指定地址池中的IP地址全部包含在所述总地址池中;所述将所述总地址池中未绑定的IP地址分配给所述待分配IP地址的容器的步骤包括:判断所述待分配IP地址的容器所在的物理机是否配置了指定地址池;如果没有,则将所述总地址池中未绑定的IP地址分配给所述待分配IP地址的容器;否则,将所述指定地址池中未绑定的IP地址分配给所述待分配IP地址的容器。5.根据权利要求4所述的方法,其特征在于,所述将所述总地址池中未绑定的IP地址分配给所述待分配IP地址的容器的步骤还包括:判断所述指定地址池与其他物理机的指定地址池是否有交集;如果有交集,则输出报错信息;否则,将所述指定地址池中未分配列表中的IP地址分配给所述待分配IP地址的容器,并且将所述IP地址从未分配列表中移除,以及将所述IP地址与获取所述IP地址的容器对应地记录在已分配列表中。6.根据权利要求1所述的方法,其特征在于,所述将所述待分配IP地址的容器所绑定的IP地址分配给该容器的步骤包括:根据当前绑定的IP地址的顺序确定位于第一位的IP地址,然后将该IP地址分配给该容器;所述将所述总地址池中未绑定的IP地址分配给所述待分配IP地址的容器的步骤包括:根据总地址池中未绑定的IP地址的顺序确定位于第一位的IP地址,然后将该IP地址分配给该容器。7.根据权利要求1所述的方法,其特征在于,将IP地址分配给容器之后,还包括:根据已分配的IP地址,为获取该IP地址的容器创建一对veth-pair。8.一种容器IP地址分配的系统,其特征在于,包括:配置模块,用于根据第一分配需求将总地址池中的部分IP地址与对应的容器建立一一对应的绑定关系...
【专利技术属性】
技术研发人员:沈娟,刘海锋,
申请(专利权)人:北京京东尚科信息技术有限公司,北京京东世纪贸易有限公司,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。