本发明实施例涉及网络,具体涉及一种容器网络管理方法、容器网络插件以及相关设备。
背景技术:
::1、容器是一种轻量级、可移植、自包含的软件打包技术,使应用程序可以在几乎任何地方以相同的方式运行。随着容器技术的不断发展,应用容器化已经成为大势所趋。容器网络技术作为容器底层技术之一,为容器提供ip地址管理、网络连通、网络隔离乃至流量可视化等功能。2、而容器网络接口(container network interface,cni)是容器网络的标准的、通用的接口,可以理解为容器网络的标准化协议。cni用于连接容器管理系统和网络插件,其中,容器管理系统例如应用容器引擎(docker)系统、容器编排引擎(k8s)系统、统一容器管理(mesos)系统等。现有的容器网络的实现方案有多种,例如flannel、calico、kube-ovn、weave、ipvlan等。3、发明人在实施现有技术的过程中发现:现有的cni方案的容器网络管理与业务管理需求的适配度不佳,存在容器ip无法固定、容器网络的可用性以及性能不高等问题,由此导致应用容器化的用户体验不佳。技术实现思路1、鉴于上述问题,本发明实施例提供了一种容器网络管理方法、容器网络插件以及相关设备,用于解决现有技术中存在的容器网络的可用性以及性能不佳的问题。2、根据本发明实施例的一个方面,提供了一种容器网络管理方法,所述方法基于容器网络插件,所述容器网络插件包括虚拟网桥;所述容器网络插件应用于容器集群的主机节点上;所述主机节点上部署有至少一个容器;所述方法包括:3、获取容器创建请求;所述容器创建请求中包括待占用ip地址;4、当根据预设的ip资源池确定所述待占用ip地址未被占用时,在所述容器集群中创建所述待占用ip地址对应的目标容器;其中,所述ip资源池中包括多个自定义类型对象的对象属性;一个所述对象属性中包括一个可选ip地址的占用状态信息;5、监听所述容器集群的网络资源变化信息;所述网络资源变化信息中包括各个所述容器的ip地址变化信息;6、根据所述网络资源变化信息对所述主机节点的网络栈协议以及所述虚拟网桥的流表规则分别进行配置,以使得所述虚拟网桥为所述容器进行流量转发;其中,所述网络栈协议用于表征所述至少一个容器的ip地址之间的路由关系;所述流表规则用于表征所述虚拟网桥与所述容器的ip地址之间的路由关系。7、在一种可选的方式中,一个所述主机节点上部署有至少一个所述虚拟网桥;一个所述虚拟网桥上挂载有至少一个虚拟网卡;所述至少一个容器对应于至少一个vlan;所述网络栈协议包括路由表规则以及iptables规则;其中,所述路由表规则用于表征各个所述容器的ip地址位于的vlan之间的第一路由关系;所述iptables规则用于表征各个所述容器的所述ip地址与所述虚拟网卡的网卡地址之间的转换关系;所述流表规则用于表征所述网卡地址与所述vlan之间的第二路由关系。8、在一种可选的方式中,所述第一路由关系包括当发送方与接收方的ip地址位于同vlan内时,数据包从所述发送方的ip地址发送至所述虚拟网桥,以通过所述虚拟网桥将所述数据包转发至所述接收方的ip地址;所述第二路由关系包括当发送方与接收方的ip地址位于不同vlan内时,将所述数据包从所述发送方的ip地址发送至所述虚拟网卡,以通过所述虚拟网卡将所述数据包发送至所述接收方的ip地址。9、在一种可选的方式中,所述虚拟网桥包括生产网虚拟网桥以及管理网虚拟网桥;所述生产网虚拟网桥上挂载有多张生产网虚拟网卡;所述管理网虚拟网桥上挂载有多张管理网虚拟网卡;所述生产网虚拟网桥连接的容器所位于的第一vlan与所述管理网虚拟网桥连接的容器所位于的第二vlan之间相互隔离。10、在一种可选的方式中,所述占用状态信息包括分配及占用状态以及占用容器信息;所述方法还包括:11、获取ip预分配请求;所述ip预分配请求中包括待分配ip信息以及用户标识;12、根据所述待分配ip信息创建所述用户标识对应的所述ip资源池;其中,在所述ip资源池中,将所述分配及占用状态标记为已分配未占用,将所述占用容器信息标记为空;13、在所述在所述容器集群中创建所述待占用ip地址对应的目标容器之后,包括:14、将所述待占用ip地址对应的所述分配及占用状态标记为已分配已占用,将所述待占用ip地址对应的所述占用容器信息标记为所述目标容器的容器标识。15、在一种可选的方式中,所述方法还包括:16、根据所述网络资源变化信息对所述ip资源池进行实时更新;其中,当确定所述目标容器已删除时,在所述ip资源池中将所述目标容器对应的所述可选ip地址的所述分配及占用状态标记为已分配未使用,将所述目标容器对应的所述可选ip地址的所述占用容器信息标记为空。17、在一种可选的方式中,所述方法还包括:18、当确定所述目标容器删除后重建时,将所述目标容器对应的所述可选ip地址的所述分配及占用状态标记为已分配已占用,将所述占用容器信息标记为所述目标容器的容器标识。19、根据本发明实施例的另一方面,提供了一种容器网络插件,所述容器网络插件包括虚拟网桥;所述容器网络插件应用于容器集群的主机节点上;所述主机节点上部署有至少一个容器;所述容器网络插件包括:20、网络配置模块,用于获取容器创建请求;所述容器创建请求中包括待占用ip地址;21、所述网络配置模块,还用于当根据预设的ip资源池确定所述待占用ip地址未被占用时,在所述容器集群中创建所述待占用ip地址对应的目标容器;其中,所述ip资源池中包括多个自定义类型对象的对象属性;一个所述对象属性中包括一个可选ip地址的占用状态信息;22、所述网络配置模块,还用于监听所述容器集群的网络资源变化信息;所述网络资源变化信息中包括各个所述容器的ip地址变化信息;23、所述网络配置模块,还用于根据所述网络资源变化信息对所述主机节点的网络栈协议以及所述虚拟网桥的流表规则分别进行配置;其中,所述网络栈协议用于表征所述至少一个容器的ip地址之间的路由关系;所述流表规则用于表征所述虚拟网桥与所述至少容器的ip地址之间的路由关系;24、所述虚拟网桥,用于根据所述流表规则为所述容器进行流量转发。25、根据本发明实施例的另一方面,提供了一种容器网络管理设备,包括:26、处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;27、所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如前述任意一项所述的容器网络管理方法实施例的操作。28、根据本发明实施例的又一方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使容器网络管理设备执行前述任意一项所述的容器网络管理方法实施例的操作。29、本发明实施例通过获取容器创建请求;所述容器创建请求中包括待占用ip地址;当根据预设的ip资源池确定所述待占用ip地址未被占用时,在所述容器集群中创建所述待占用ip地址对应的目标容器;其中,所述ip资源池中包括多个自定义类型对象的对象属性;一个所述对象属性中包括一个可选ip地址的占用状态信息。从而能够对表征ip资源的自定义类类型对象的对象属性的维持来实现有状态的固定容器ip的管理。在容器创建后,实时监听所述容器集群的网络资源变化信息;所述网络资源变化信息中包括各个所述容器的ip地址变化信息。最后根据所述网络资源变化信息对所述主机节点的网络栈协议以及所述虚拟网桥的流表规则分别进行配置,以使得所述虚拟网桥为所述容器进行流量转发;其中,所述网络栈协议用于表征所述至少一个容器的ip地址之间的路由关系;所述流表规则用于表征所述虚拟网桥与所述容器的ip地址之间的路由关系,从而实现跨主机、跨容器的访问。本发明实施例能够一方面实现容器与固定ip的绑定,方便对于容器的运维,另一方面,能够通过根据容器集群的网络资源的变化对主机节点的网络栈协议以及虚拟网桥的流表规则实时更新,由此实现虚拟网桥根据流表规则为容器进行对应路由的流量转发,实现容器集群的跨主机、跨容器的网络配置。30、上述说明仅是本发明实施例技术方案的概述,为了能够更清楚了解本发明实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本发明实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。当前第1页12当前第1页12