CN110198231A - 用于多租户的容器网络管理方法和系统以及中间件 - Google Patents
用于多租户的容器网络管理方法和系统以及中间件 Download PDFInfo
- Publication number
- CN110198231A CN110198231A CN201810433688.0A CN201810433688A CN110198231A CN 110198231 A CN110198231 A CN 110198231A CN 201810433688 A CN201810433688 A CN 201810433688A CN 110198231 A CN110198231 A CN 110198231A
- Authority
- CN
- China
- Prior art keywords
- tenant
- network
- capacitor network
- resource object
- service
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
- H04L41/0266—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using meta-data, objects or commands for formatting management information, e.g. using eXtensible markup language [XML]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/046—Network management architectures or arrangements comprising network management agents or mobile agents therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0281—Proxies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/561—Adding application-functional data or data for application control, e.g. adding metadata
Abstract
本发明公开了用于多租户的容器网络的管理方法和系统以及中间件,所述方法包括:创建容器网络的资源对象,并将资源对象对应的租户关联信息写入所述资源对象的元数据中;读取所述资源对象的元数据中的租户关联信息;根据所述租户关联信息向网络服务器请求网络资源,并建立所述资源对象与网络服务器的网络资源之间的映射关系;根据所述映射关系,利用所述网络服务器提供的服务实现容器网络的负载均衡和通信。容器的租户关联信息可通过元数据指定,目标的容器应用能按需绑定到租户,可和基础云的已有配置相协调,实现租户隔离。此外,网络中间件提供了容器云到基础云服务的对接,基础云的高级网络功能可被容器云使用。
Description
著作权声明
本公开的一部分包含受著作权保护的素材。著作权人不反对将本公开按照国家知识产权局公布的那样进行复制,但除此之外在任何情况下均保留所有著作权及相关的权利。特别是,保留与本公开中涉及的计算机程序指令有关的著作权及其相关权利。
技术领域
本发明涉及计算机网络和云计算技术领域,特别是涉及到一种用于多租户的容器网络管理方法和系统以及网络服务中间件装置。
背景技术
云计算资源通常采用由管理平台(例如,开源的云计算管理平台OpenStack)统一管理多项资源,并同时提供给多个租户使用的运行方式。其中多个租户之间数据的隐私和安全是重要的考虑因素。随着容器技术因其高度的可移植性和部署的便利性而在云计算中得到广泛应用,容器集群的管理和容器云与基础云及已有的资源配置管理系统(如CMDB(configuration management database配置管理数据库)和IP(Internet protocol网际协议)管理系统)的良好对接也成为亟待解决的问题。
建立在OpenStack基础上的开源项目Kubernetes(亦简记为K8s)是目前应用最广的容器集群管理系统之一,由于Kubernetes自身不提供通信和负载均衡等服务,需要借助外部的网络服务,OpenStack的开源项目提供了一个用于将OpenStack neutron集成到Kubernetes的网络服务中间件Kuryr-Kubernetes。就多租户管理而言,Kuryr-Kubernetes能为运行于物理机中的Kubernetes集群所管理的容器应用提供一个租户内单个负载均衡子网和单个容器通信子网的对接能力,该能力是通过全局静态配置文件的方式指定容器应用所属租户、单个负载均衡子网、单个容器通信子网和网络安全组,在创建Pod时由Kuryr-Kubernetes读取该配置实现的。
由于容器云中生产的所有容器只能运行于静态配置指定的单个租户的单个子网,不支持按需指定容器在同一租户的目标容器通信子网,也不支持将容器部署于目标租户,现有技术的方案非常不灵活。同时也不能对接云平台现有的资源配置管理系统(如CMDB系统和IP管理系统),无法实现容器的统一的网络资源管理。
发明内容
本发明旨在至少在一定程度上解决上述相关技术中的技术问题之一,提供一种能够对容器进行灵活配置,实现多租户安全隔离的多租户的容器网络管理系统和方法,以及增强容器网络的资源配置管理等能力,使得容器云能从网络维度友好地融入已有的基础云体系。
为了达到上述目的,根据本发明第一方面的实施例提出了一种用于多租户的容器网络管理方法,包括:创建容器网络的资源对象,并将资源对象对应的租户关联信息写入所述资源对象的元数据中;网络服务中间件读取所述资源对象的元数据中的租户关联信息;网络服务中间件根据所述租户关联信息向网络服务器请求网络资源,并建立所述资源对象与网络服务器的网络资源之间的映射关系;根据所述映射关系,利用所述网络服务器提供的服务实现容器网络的负载均衡和通信。
在一些实施例中,所述租户关联信息包括资源对象对应的租户名称、负载均衡子网、容器通信子网和安全组别中的一项或一项以上。
在一些实施例中,所述容器网络是基于Kubernetes管理系统,所述容器网络的资源对象包括Pod、服务、端点、副本控制器以及部署中的一项或一项以上。
在一些实施例中,所述资源对象对应的租户关联信息写入所述资源对象的元数据中的标签项和/或注解项。
在一些实施例中,所述资源对象的租户关联信息为根据基础云中的相应的租户信息设置。
根据本发明第二方面的实施例提出了一种用于多租户的容器网络管理系统的网络服务中间件装置,所述多租户的容器网络管理系统包括应用程序接口服务器和网络服务器,所述网络服务中间件装置包括:控制器模块,所述控制器模块用于与所述应用程序接口服务器通信,获取和更新资源对象的元数据信息中的租户关联信息,以及用于与网络服务器通信,根据所述租户关联信息向网络服务器请求网络资源,建立所述资源对象和网络服务器的网络资源之间的映射关系;容器网络接口模块,与所述控制器模块、容器网络的计算节点和网络服务器通信,用于实现计算节点的资源对象的管理和根据所述资源对象与网络服务器的网络资源之间的映射关系,利用网络服务器提供的服务实现负载均衡和通信。
在一些实施例中,所述租户关联信息包括资源对象对应的租户名称、负载均衡子网、容器通信子网和安全组别中的一项或一项以上。
在一些实施例中,所述容器网络是基于Kubernetes管理系统,所述容器网络的资源对象包括Pod、服务、端点、副本控制器以及部署中的一项或一项以上。
在一些实施例中,所述资源对象对应的租户关联信息写入所述资源对象的元数据中的标签项和/或注解项。
根据本发明第三方面的实施例提出了一种用于多租户的容器网络管理系统,包括应用程序接口服务器和网络服务器,还包括:根据本发明第二方面实施例所述的用于多租户的容器网络管理系统的网络服务中间件装置。
从技术角度,应用本发明的用于多租户的容器网络的管理方法和管理系统以及中间件装置,通过网络服务中间件将容器网络和网络服务器对接,容器的目标租户、负载均衡子网、容器通信子网、安全组等信息,可通过元数据信息被直接或间接地指定,使得目标的容器应用能按需绑定到不同的租户及其对应的负载均衡子网和容器通信子网,可以和基础云的已有配置相协调,从而实现同一租户内容器云内部容器之间、容器云中的容器与基础云的虚拟机和物理机之间、容器云中的容器与基础云外部的服务能正常通信,不同租户间的虚拟实体不能相互访问。同时,由于网络中间件相当于提供了容器云平台到基础云服务的对接,利用网络服务器的功能实现容器网络的大二层通信和四层负载均衡,并使得基础云高级网络功能的配置能够被容器云使用。例如,除负载均衡和通信之外,容器云中的容器应用还能使用基础云中如Security Group(安全组)、FWaaS(FireWall as a Service,防火墙即服务)、VPNaaS(VPN(虚拟专用网络)即服务)、QoS(Quality of Service,服务质量)等高级网络功能。
从产品角度,通过本发明,使得容器云在网络维度无缝对接企业基础云平台的现有业务模型,以低成本的方式为企业基础云平台添加容器即服务(CaaS)的能力打下坚实的基础。另外,基于此方案,容器云能复用基础云平台已有的强大的网络功能,丰富了容器云的使用场景,间接增强企业云平台产品的竞争力。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是一种典型的容器网络框架结构示意图;
图2是根据本发明实施例的用于多租户的容器网络管理方法的流程示意图;
图3是根据本发明实施例的用于多租户的容器网络管理系统的结构框图;
图4是根据本发明实施例的用于多租户的容器网络管理系统的细化结构框图;
图5是根据本发明实施例的用于多租户的容器网络管理系统的Pod创建时序示意图;
图6是根据本发明实施例的用于多租户的容器网络管理系统的负载均衡配置流程示意图;
图7是根据本发明实施例的于多租户的容器网络的数据面结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
为了便于对本发明的理解,首先对本发明可能涉及的一些相关技术的术语进行简单说明。这些术语中,在相关技术领域具有通用含义的,应根据其在相关技术领域的通用含义来解释。以下的简单说明仅仅是为了便于对本公开的阅读和理解,并非这些术语的定义,亦非试图以此限定这些术语的全部内涵和/或外延。
基础云,包含互联的计算机集群,作为企业云的底层基础,例如,可基于开源OpenStack定制优化实现,交付云计算IaaS(infrastructure as a service,基础设施即服务)的能力,其中包括网络服务能力。
容器云,主要由容器构成的云计算网络,例如,可基于开源的Kubernetes和Moby(Docker的社区项目)定制优化实现,交付云计算CaaS(communication as a service,通信即服务)能力,主要是持续集成、持续部署和面向应用的微服务能力。
容器通信子网,容器实际IP的归属网段,通常属于租户内部的私有网络,是一个OpenStack网络模型中的子网(subnet)。
负载均衡子网,负载均衡器中虚拟IP的归属网段,是一个OpenStack网络模型中子网(subnet)。
网络服务中间件,是指能使容器云对接基础云网络服务,复用基础云网络服务的组件集合。
租户(tenant),是指使用系统或计算机计算资源的一组用户,租户可以用于隔离对计算资源的访问。在多租户环境中,不同租户相互可以相互独立,不同租户对应的资源不能相互访问。在最新的open stack框架中,租户也可以理解为一个项目(project)。
例如,租户可以表示不同的外部企业或特定企业内的不同部门(例如,HR部门和财务部门)之类的不同的用户组织。这些用户组织中的每个用户组织可以与不同的分区相关联。租户全局唯一身份(租户ID)是特定用户在特定时刻与特定租户的关联。系统可以从用户身份例如通过参考用户身份仓库(store)来导出特定用户属于哪个租户。
Neutron是OpenStack的一个项目,旨在提供云计算环境下的网络服务功能。特别是为其它OpenStack的服务管理的接口设备之间提供网络即服务(NaaS,networking as aservice)功能。本申请中,Neutron有时也用于指代基于Neutron的网络服务器。
此外,关于Kubernetes中相关的各种术语,可按照其通用含义进行理解,具体可参见Kubernetes的官网提供的解释和说明,例如,参见网址https://kubernetes.io/,在此不再一一赘述,仅就本发明涉及的主要术语简介如下。
对象(object),Kubernetes对象是Kubernetes系统中的持久实体。Kubernetes使用这些实体来表示集群的状态。具体来说,他们可以描述:容器化应用正在运行(以及在哪些节点上),这些应用可用的资源以及关于这些应用如何运行的策略,如重新策略,升级和容错。每个Kubernetes对象都包含两个嵌套对象字段,用于管理Object的配置:ObjectSpec和ObjectStatus。Spec描述了对象所需的状态——希望Object具有的特性,Status描述了对象的实际状态,并由Kubernetes系统提供和更新。
Pod,Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程。一个Pod可封装一个或多个应用容器、存储资源、一个独立的网络IP以及管理控制容器运行方式的策略选项。
服务(service),Kubernetes Service定义了这样一种抽象:一个Pod的逻辑分组,一种可以访问它们的策略。这一组Pod能够被Service访问到,相关技术中Pod和service的关联通常是通过标签(label)实现的。Service可以视为是一组提供相同服务的Pod的对外接口。
元数据(metadata),包含一组由不同名称定义的属性,是用于描述资源对象的数据。包括标签、注解、命名空间等。
标签(label),是具有标识性的元数据。一个label可以看作是关联到对象上的一组键/值(key/value)。标签可以在创建一个对象的时候直接给与,也可以在后期随时修改,每一个对象可以拥有多个标签。
注解(annotation),是不具有标识性的元数据。用于将任何非标识的元数据附加到对象。客户端(如工具和库)可以检索此元数据。注解(annotation)可包含一组或多组键/值(key/value)。
命名空间(namespace),用于创建多个虚拟集群。命名空间(namespace)为名称(name)提供了一个范围。资源的名称在命名空间中具有唯一性。期望中,相同命名空间中的对象将具有相同的访问控制策略。
副本控制器(可包括Replication Controller及其升级版Replica Set),用于创建Pod和跨多个节点监视Pod,确保用户定义的Pod数量。
部署(deployment),deployment为Pod和副本控制器提供声明式更新。在deployment描述Pod和副本控制器的目标状态。由部署控制器(deployment controller)将实际状态改变到目标状态。
端点(endpoint),提供服务(service)和Pod之间的衔接,通过endpoint对Pod进行访问。
由于本发明涉及的技术发展异常迅速,许多术语出现在非常近的时间范围(几年之内),以至于在中文中尚未创建相应的词汇。并且,由于绝大部分程序语言采用英文字母作为文本载体,计算机软件领域的技术人员也惯于直接以英文单词或字母组合来表达某些术语。故此,对于部分为字母组合形式,且本领域并无相应的中文词汇与之对应的术语,本公开中将按照本领域技术人员的使用习惯采用原初的英文字母组合的形式加以表述。
例如“Neutron”,虽然此字母组合对应的英文单词neutron具有词义“中子”,但是在本领域中,使用中文的技术相关人员并不会用中子来称呼它,直接的翻译容易造成混淆,而从事云计算相关领域工作的技术人员尚未构造出相应的中文词汇来表示作为OpenStack项目的“Neutron”。因此为了避免不必要的混淆,使表述更加清楚和符合本领域技术人员的表达习惯,本公开中对于此类情况(例如Kubernetes,Pod,Docker和Rocket等)均不采用中文文字而是直接以字母组合来表示。
下面结合附图对本发明的方案进行详细说明。
为了使本发明的方案更易于理解和说明,首先对基于Kubernetes的容器网络进行简单介绍。图1是一种典型的基于Kubernetes的容器网络框架结构示意图。容器网络包括一个主节点(master)200和多个节点(node)300,以及客户端工具Kubectl 100。要说明的是,图1中示出的仅仅是基于Kubernetes的容器网络的一种架构形式,列举于此以便于对本发明的容器网络管理系统和方法进行说明,但本发明的容器网络管理系统和方法的适用范围并不局限于此种架构。
其中,Kubectl 100用于实现对Kubernetes API的调用,从而提供给用户对容器网络的访问接口。主节点200主要包括API服务器(API server)210,调度器(scheduler)220,控制器管理器(controller manager)230和资源状态存储器(etcd)240。每个节点300则包括节点管理单元Kubelet 310,代理服务器(kube-proxy)330和运行在容器运行环境下的多个Pod 320。每个Pod中包括多个容器321。
API服务器210用于提供Kubernetes API服务,作为系统管理指令的统一入口,对资源增删改查等操作均由API服务器处理后再提交到资源状态存储器240。调度器220用于将Pod部署到合适的节点上。控制器管理器(controller manager)230用于管理每个资源对应的控制器。资源状态存储器(etcd)240用于存储各个资源的状态。
节点管理单元Kubelet 310用于维护和管理节点300上的所有容器,以使Pod的运行状态和期望的状态一致。Kubernetes目前支持的容器运行环境包括Docker和Rocket等。代理服务器(kube-proxy)330用于实现Kubernetes中的服务发现和反向代理功能,即维护服务与Pod之间的映射关系。其中性能监控功能可以如图示的那样由某一Pod实现,也可以集成在Kubelet 310之中。
从图1的结构可见,Kubernetes本身并不提供负均衡和通信能力,需要利用外部的服务来实现,例如,可通过Neutron的网络服务实现。为此,OpenStack的开源项目提供了一个用于将Openstack Neutron集成到Kubernetes的网络服务中间件Kuryr-Kubernetes。其中,涉及到多租户应用的方面,Kuryr-Kubernetes仅仅提供了一个租户内单个负载均衡子网和单个容器通信子网的对接,并且,在Kuryr-Kubernetes的解决方案中,容器应用所属的租户、单个负载均衡子网、单个容器通信子网和网络安全组是通过全局静态配置文件来指定,在创建Pod时,通过读取该静态配置文件来实现计算节点的Pod与租户和负载均衡子网以及容器通信子网之间的关联。
这种基于静态配置文件的关联是固定不变的,仅支持单租户单子网,即容器云中生产的所有容器只能运行于静态配置指定的单个租户的单个子网,不支持按需指定容器在同一租户的目标容器通信子网,也不支持将容器部署于目标租户,解决方案不够灵活。同时,Kuryr-Kubernetes也不支持对接云平台现有的资源配置管理系统(如CMDB系统和IP管理系统)实现容器的统一的网络资源管理。
此外,从容器云和基础云的融合角度,也希望容器云能便利地与已有基础云平台的多租户多子网的业务模型在网络维度可以有机融合,使得包括容器云和基础云在内的综合云平台内的同一租户内的容器和虚拟机能通信,不同租户的容器和虚拟机不能通信。同时,也希望实现容器云和基础云的负载均衡虚拟IP的统一管理。
针对相关技术中存在的这些问题和需求,发明人提出了一种支持多租户容器资源灵活配置的容器网络管理方法,以及用于实现所述管理方法的容器网络管理系统和网络服务中间件。本发明的主要思想包括,提供容器云和基础云的灵活和无缝对接,使容器云的资源对象可以按照基础云已有的逻辑(例如租户设置)进行相应配置。采用的主要手段则包括:改变相关技术中全局静态的租户网络的元数据配置方式,代之以提供一种可以对每个资源对象动态的定义其租户关联信息的方法。使租户关联信息可以以具体资源对象的元数据方式进行局部的配置,并且可以更改。并在此基础上建立容器网络资源和网络服务器的网络资源之间的映射。
图2是根据本发明实施例的容器网络管理方法的流程示意图。如图2所示,本实施例的容器网络管理方法包括步骤S100到S400。
在步骤S100,容器网络的资源对象被创建,并且该资源对象对应的租户关联信息被写入所述资源对象的元数据中。
其中,租户关联信息可以包括资源对象对应的租户名称、负载均衡子网、容器通信子网和安全组别等,可将其中的一项或多项以及全部写入到资源对象的元数据中。由于资源对象的元数据可以在创建时写入,并且在资源对象的生命周期中可以被随时读取和修改,因此相应地,写入其中的租户关联信息可以在资源对象创建时根据需要进行设定,并且可以在随后的应用中动态地被修改。这就摆脱了使用全局静态配置文件设定租户关联和资源对象的关联的弊端。
在一些实施例中,所述资源对象对应的租户关联信息可写入所述资源对象的元数据中的标签(label)项和/或注解(annotation)项。通常标签(label)项和注解(annotation)项都是采用键/值对的形式。具体实施中,标签项和注解项二者的区别在于,标签(label)可用于选择对象并查找满足某些条件的对象集合。相比之下,注解(annotation)不用于标识和选择对象。而注解(annotation)中的元数据结构自由度更大,并且可以包括标签不允许使用的字符。并且,通常来说,标签项更适用于的修改更频繁的场景。而注解项为描述提供更大的自由度,也更适用于修改不频繁的场景。在大部分应用中,租户关联信息属于修改不频繁的情况,并且需要比较多的描述,因此,使用元数据的注解(annotation)项来写入租户关联信息可以适合更多的应用场景。
在一些实施例中,所述容器网络可以是基于Kubernetes管理系统,所述容器网络的资源对象则可包括Pod、服务(service)、端点(endpoint)、副本控制器(ReplicationController或其升级版Replica Set)以及部署(deployment)中的一项或一项以上。
下面以Kubernetes中Service和Replication Controller资源对象的具体数据结构为例,说明写入元数据中的租户关联信息。其中,以将租户关联信息写入注解项为例,粗体字部分为对应的注解项annotations的定义。
数据结构1:
数据结构1示出了资源对象——服务(service)的元数据信息的一个实施例。对于本service对象,在注解项annotations下,键(key)“itcloud/tenant”表示为本service对象定义的所属租户,其值(value)为“itcloud”,即本资源对象关联于租户“itcloud”。键“itcloud/lbSubnet”表示为本service对象定义的负载均衡子网,其值为“dev_lb_subnet_01”,即本资源对象关联于负载均衡子网“dev_lb_subnet_01”。
数据结构2:
数据结构2示出了资源对象——副本控制器(Replication Controller)的元数据信息的一个具体实施例。对于本副本控制器对象,在注解项annotations下,键(key)“itcloud/tenant”表示为本副本控制器对象定义的Pod所属租户,其值为“itcloud”,即本资源对象关联于租户“itcloud”。键“itcloud/PodSubnet”表示为本副本控制器对象定义的容器通信子网,其值为“dev_pod_subnet_01”,即本资源对象关联于容器通信子网“dev_pod_subnet_01”。键“itcloud/podSecurityGroup”表示为本副本控制器对象定义的安全组,其值为“AllowHttps”,即本资源对象关联于安全组“AllowHttps”。
要说明的是,为了使容器云的资源对象和基础云内的配置相对应,资源对象的元数据中的租户、子网和安全组等信息可以设定为对应于预先在基础云内创建的租户、子网和安全组。从而实现根据基础云的已有配置,对容器云的资源对象进行相应配置,对租户的数据和访问控制实现统一管理。
在步骤S200,读取所述资源对象的元数据信息。可以由网络服务中间件读取所述资源对象的元数据信息,网络服务中间件是指能使容器云对接基础云网络服务,复用基础云网络服务的组件集合。网络服务中间件通过读取所述资源对象的元数据信息,可以获取其中的租户关联信息。如上述步骤S100中所述,元数据的租户关联信息可用于指定资源对象所属的租户,以及指定与基础云中该租户配置的通信子网和负载均衡子网以及安全组等相应的通信子网和负载均衡子网以及安全组等配置,即,租户关联信息可将容器云中的资源对象关联到某个指定租户。通过读取租户关联信息,即可为容器云中的资源按照所属租户进行对应进行配置。
在步骤S300,根据所述元数据信息向网络服务器请求网络资源,并建立所述资源对象与网络服务器上的网络资源之间的映射关系。本步骤同样可由网络服务中间件来实现。由于容器云中的资源对象需要借助网络服务器(例如Neutron)提供的服务(例如Caas服务)实现负载均衡和通信,为了实现不同租户之间的数据和通信隔离,需要将容器网络的资源对象映射到网络服务器上。例如,实现容器网络的资源对象的IP地址与网络服务器上的网络资源的IP地址之间的映射。
在步骤S400,利用所述网络服务器提供的服务实现容器网络的负载均衡和通信。通常来说,利用网络服务器提供的服务可实现的是基于四层的负载均衡和大二层的通信。现有技术中,对于网络服务器(例如Neutron)的实现与架构有很多具体的方案,这些方案都可用于本发明,本发明对此并无特殊的要求。利用网络服务器提供的服务实现容器网络的负载均衡和通信其关键在于建立容器网络的资源对象与网络服务器的资源之间的关联关系,亦即根据在步骤S100中所述的租户关联关系,根据容器网络的资源对象所属的租户为其对应相应的网络服务资源。其余的具体细节则可采用相关技术中的网络服务器管理方法来实现。步骤S200到S400的具体实现将在后文结合附图3-7进行详细说明。
通过本发明,容器的目标租户、负载均衡子网、容器通信子网、安全组等信息,可通过元数据信息被直接或间接地指定,使得目标的容器应用能按需绑定到不同的租户及其对应的负载均衡子网和容器通信子网,可以和基础云的已有配置相协调,从而实现同一租户内容器云内部容器之间、容器云中的容器与基础云的虚拟机和物理机之间、容器云中的容器与基础云外部的服务能正常通信,不同租户间的虚拟实体不能相互访问。同时,由于网络中间件相当于提供了容器云平台到基础云服务的对接,使得基础云高级网络功能的配置能够被容器云使用。例如,除负载均衡和通信之外,容器云中的容器应用还能使用基础云中如Security Group(安全组)、FWaaS(FireWall as a Service,防火墙即服务)、VPNaaS(VPN(虚拟专用网络)即服务)、QoS(Quality of Service,服务质量)等高级网络功能。
关于以上容器网络管理方法的更多的细节,特别是步骤S200到S400的具体实施方式,将在下文结合用于多租户的容器网络管理系统的实施例进行进一步的说明。本发明的方法可以结合容器网络管理系统中构建相应的网络服务中间件来实现。
为了实现上述用于多租户的容器网络管理方法,本发明进一步提供了一种用于多租户的容器网络管理系统。
所述容器网络管理系统可包括一个或多个计算设备,所述计算设备包括处理器和存储器,所述存储器上存储有包括可在所述处理器上运行的计算机程序指令的应用程序。所述应用程序可以划分为多个程序模块,用于实现容器网络管理系统各个组成部分的相应功能。其中,程序的模块的划分是逻辑上的而非物理上的,每个程序模块可以运行在一个或多个计算设备上,一个计算设备上也可以运行一个或一个以上的程序模块。以下对本发明的容器网络管理系统按照程序模块的功能逻辑划分进行详细说明。
图3是根据本发明实施例的容器网络管理系统结构示意图。容器网络管理系统可包括:应用程序接口服务器400,网络服务器600和网络服务中间件装置500。其中,容器网络接口服务器400用于提供容器网络的管理统一接口,网络服务器用于提供云计算环境下的网络服务功能。在相关技术中,有一些成熟的系统和组件可以用来实现容器网络接口服务器400和网络服务器600。例如,在基于Kubernetes的容器网络应用中,API Server(参见图1中的应用程序接口服务器210)即可用来实现容器网络接口服务器400。而网络服务器600则可以基于Neutron实现。网络服务中间件装置500用于通过容器网络接口服务器400获取所述容器网络中资源对象的元数据,读取元数据中的租户关联信息,根据所述租户关联信息向网络服务器600请求网络资源,并建立所述资源对象与网络服务器的网络资源之间的映射关系,进而利用所述网络服务器提供的服务实现容器网络的负载均衡和通信。
具体而言,参见图4,网络服务中间件装置500可包括:控制器模块510和容器网络接口模块520。
其中,控制器模块510用于与用容器网络接口服务器400通信,获取资源对象的元数据信息,并获取和更新中的租户关联信息;以及用于与网络服务器600通信,根据所述租户关联信息向网络服务器请求网络资源,建立所述资源对象和网络服务器的网络资源之间的映射关系。
容器网络接口模块520,与所述控制器模块510、容器网络的计算节点和网络服务器600通信,用于实现计算节点的资源对象的管理和根据所述资源对象与网络服务器的网络资源之间的映射关系,利用网络服务器提供的服务实现负载均衡和通信。
一般来说,为了实现同租户的资源整合和不同租户之间的访问隔离,租户关联信息可包括资源对象对应的租户名称、负载均衡子网、容器通信子网和安全组别等中的一项或多项。在一些实施例中,所述容器网络是基于Kubernetes管理系统,所述容器网络的资源对象可包括Pod、服务、端点、副本控制器以及部署中的一项或一项以上。所述资源对象对应的租户关联信息写入到所述资源对象的元数据中的标签项和/或注解项。
在一些实施例中,容器网络管理系统可进一步包括资源配置管理系统700,此时网络服务中间件装置500可进一步用于将资源对象的相关IP信息发送到所述资源配置管理子系统700和注册虚拟IP。例如,这部分功能可由控制器模块510实现。
本发明系统中的各个模块的功能和作用的实现过程具体详情可参见上述方法中对应步骤的实现过程,在此不再赘述。对于中间件装置和管理系统实施例而言,由于其基本对应于方法实施例,所以相关未尽之处可参见方法实施例的部分说明。
下面结合图4对本发明的网络服务中间件装置和容器网络管理系统用于Kubernetes平台的容器网络的具体实施例进行详细说明。图4是根据本发明实施例的用于多租户的容器网络管理系统的细化结构框图。
其中,基于Kubernetes平台的容器网络的架构可以是参见图1所示的形式或其它形式。容器网络接口服务器400可由Kubernetes提供的应用程序接口服务器(API Server)来实现。网络服务器600则可以基于Neutron实现,在相关实施例中也称为Neutron服务器。
控制器模块510一方面的功能在于对接Kubernetes的API服务器和Neutron服务器。对接API服务器时,包括从API服务器获取资源对象的租户、负载均衡子网、容器通信子网等租户关联信息和持久化资源对象(例如Pod等)的网络资源状态至Kubernetes。对接Neutron服务器时,其主要功能包括根据获取的资源对象的网络元数据信息到Neutron申请网络资源。由于Pod是Kubernetes创建或部署的最小/最简单的基本单位也是Kubernetes的核心资源对象,实际应用中,绝大部分的对资源对象的操作,都是针对Pod进行的。因此,本公开中,也以Pod为例,结合图4图5对容器网络的管理系统的运作进行详细说明。
控制器模块510另一方面的功能是与资源配置管理子系统700通信。一般来说,相关技术中,资源配置管理子系统700主要包括配置管理数据库(CMDB)和IP管理子系统。控制器模块510可用于发起登记注册动作,登记负载均衡器和虚拟IP、Pod和Pod IP等的相互关系。
在通过Kubernetes生产容器应用时,实质上是配对生产服务(Service)、端点(EndPoint)、副本控制器(ReplicationController/Replica Set)或部署(Deployment)、Pod资源对象。其中Pod资源对象是由副本控制器或Deployment间接生成。副本控制器和Deployment主要用于实现应用内Pod的冗余、扩/缩容和滚动升级等能力。通常,一个应用包含一个或多个Pod,每个Pod都是由运行同样镜像的容器集合组成,Pod作为容器网络的运行的核心单位。本发明提供的网络服务中间件500的主要功能包括解决应用中Pod的负载均衡和大二层通信问题。而在负载均衡和通信过程中,期望的情况是可实现单租户内多子网支持、多租户隔离、以及支持多功能的容器网络。
为此,容器网络接口模块520可设置为与容器网络的计算节点通信,通过与节点管理单元Kubelet 310和Pod的通信,实现在Pod创建后为Pod设置网络命名空间,向控制器模块为Pod请求端口等Pod管理功能。本实施例中,网络服务中间件500基于Neutron的Network(网络)、Subnet(子网)、Port(端口)模型为Pod解决大二层的网络通信问题。而在负载均衡的问题上,由于Kubernetes的数据模型对象为Service和Endpoint,Neutron的数据模型对象为LoadBalancer(负载均衡器)、Listener(监听器)、Pool(池)和Member(成员),网络服务中间件500需将两者映射,最终通过Neutron的负载均衡服务组件提供数据平面的负载均衡能力,如此提供的负载均衡一般来说是四层的负载均衡。
进一步地,可设置网络服务器代理模块530和虚拟交换机机540,通过网络服务器代理模块(Neutron agent)530获取网络资源信息或者上报资源状态到网络服务器600。
图5是根据本发明实施例的用于多租户的容器网络管理系统的Pod创建时序示意图。下面结合图4,图5对网络服务中间件500的控制器模块510和网络接口模块520与Neutron组件和Kubernetes的组件协同为应用容器设置网络信息的过程进行详细描述。在一个实施例中,所述容器网络的设置过程可包括以下操作:
1)监听Pod资源对象的变动。节点管理单元Kubelet运行在每个计算节点(computenode),启动后通过Kubernetes的API Server 400一直监听Pod资源对象的变动,例如增加、删除、更改等事件。
2)创建Pod,并将Pod对应的租户关联信息写入到元数据中。在容器云中,Pod可以通过客户端工具Kubectl创建,当Pod被客户端创建时,将Pod所属租户、容器通信子网、安全组等写入元数据信息,例如可写入元数据中的标签项(label)或注解项(annotation)。这些信息是实现容器网络资源配置的关键信息。
3)客户端工具Kubectl监听Pod的运行状态。
4)为Pod绑定目标节点,发送Pod创建事件。应用程序接口服务器(Kubernetes APIServer)持久化Pod信息,结合内部调度器和控制器管理器为新Pod绑定目标计算节点,并将Pod添加事件发送到节点管理单元Kubelet。
5)设置Pod内基础容器的网络命名空间、Pod ID、Kubernetes命名空间等信息。目标计算节点的节点管理单元Kubelet进程监听到Pod创建事件,启动Pod创建流程,调用容器网络接口模块520,设置Pod内基础容器的网络命名空间、Pod ID、Kubernetes命名空间等信息。
6)容器网络接口模块申请网络资源,容器网络接口模块520受到请求后,启动申请网络资源流程。
7)请求控制器模块为Pod申请网络资源。容器网络接口模块520从请求中获取Pod所属的Kubernetes命名空间、Pod ID、网络命名空间、基础容器ID等信息,并携带获取的信息请求控制器模块510为Pod申请网络资源,例如,端口(Port),其中,包含IP地址、Mac地址等网络资源信息。
8)发起新的Pod资源变动请求。容器网络接口模块520发送申请网络资源请求后,向应用程序接口服务器发起监听新Pod资源变化请求。
9)获取Pod元数据中的租户关联信息。控制器模块510收到新Pod的资源创建请求后,根据Pod的Kubernetes命名空间和Pod ID请求Kubernetes API Server获取Pod元数据中的租户关联信息,可包括所属租户、负载均衡子网、容器通信子网、安全组等信息。
10)返回元数据信息。应用程序接口服务器将获取的租户关联信息返回到控制器模块510。
11)创建Pod的网络资源。控制器模块510携带租户关联信息与基础容器ID请求网络服务器(Neutron Server)为Pod创建和分配资源。
12)查询网络资源创建状态。控制器模块510轮询Neutron Server获取网络资源创建状态。
13)设置网络资源信息到应用程序接口服务器。控制器模块510将Neutron Server分配的网络资源信息持久化到新Pod中。
14)发送Pod状态更新事件。Kubernetes API Server发送Pod状态更新事件到容器网络接口模块520。
15)获取Pod的网络资源信息,执行虚拟交换机配置。当容器网络接口模块520监听到Pod状态变化时,获取Pod的网络资源信息执行虚拟交换机端的配置流程,设置端口vlan(虚拟局域网)信息。
16)配置Pod的网络命名空间。容器网络接口模块520执行新Pod的基础容器的网络命名空间的配置流程,设置端口IP、Mac地址、内核路由表等。
17)向网络服务器发送Pod设置成功通知。容器网络接口模块520向NeutronServer发送通知:Pod的网络信息已设置成功,可激活使用,上报虚拟交换机的端口激活状态。
18)查询网络资源状态。控制器模块510通过查询,从Neutron Server获得Pod对应的网络资源(例如,端口)的最新状态。
19)设置网络资源激活状态。控制器模块510得知Pod对应的端口状态已激活后,将信息通过Kubernetes API Server持久化。
20)通知网络资源激活状态。Kubernetes API Server发送端口状态激活结果到容器网络接口模块520。
21)返回基础容器网络的创建结果。容器网络接口模块520结束Pod的基础容器的网络设置流程,通知节点管理单元Kubelet网络部分的流程已执行完毕,返回基础容器网络的创建结果。
22)创建Pod内余下的容器。节点管理单元Kubelet收到通知后,执行Pod内余下容器的创建过程。
23)返回Pod创建结果到Kubernetes API Server。节点管理单元Kubelet将Pod的创建结果写回Kubernetes API Server持久化。
24)返回Pod创建结果到客户端。客户端得到Pod创建流程的最终状态。
以上过程仅仅是作为Pod创建过程的一个具体实例,说明其主要思路。本领域技术人员应当理解,其中的各个小步骤可在不脱离本发明核心思想的范围内进行省略、修改或替换。
负载均衡服务创建的流程与Pod类似,参见图6,负载均衡服务创建流程与Pod的部分区别在于其创建可由控制器模块510监听Kubernetes API Server实现,无须与Kubelet和容器网络接口模块520交互。同时,控制器模块510通知Neutron Server执行基础云端的负载均衡服务的创建流程。图6是根据本发明实施例的用于多租户的容器网络管理系统的负载均衡配置流程示意图。
其中,由控制器模块监听应用程序接口服务器的负载均衡服务资源对象的创建,提取资源对象的元数据中的租户关联信息,并据以向资源配置管理系统700注册虚拟IP,和向网络服务器请求相应的网络资源。网络服务器将相关信息写入消息队列(MQ,messagequeue),负载均衡管理单元通过监听消息队列来获取负载均衡资源对象的相关信息,并将之对应到外部负载均衡的虚拟IP。从而实现外部负载均衡的虚拟IP和各个服务的Pod的真实IP之间的映射。例如,参见图6所示,对于指定的服务(例如服务1)可实现其包含的不同Pod(例如Pod1,Pod2)的真实IP(IP1,IP2)到外部负载均衡的虚拟IP之间的映射。
此外,在一些实施例中,由于在创建负载均衡服务时,虚拟IP是由Kubernetes APIServer分配的。为了使虚拟IP的网段配置与基础云和资源配置管理系统中一致,实际执行创建负载均衡服务时,控制器模块监听到Kubernetes API Server中服务对象的变化后,可将Kubernetes API Server分配給负载均衡服务的虚拟IP和Pod的固资号注册到CMDB和IP系统,以实现网络资源的统一管理。
图7是根据本发明实施例的用于多租户的容器网络的数据面结构示意图。其中,所有租户共享外部子网810,每个租户对应的资源集合由一个最大的虚线框820内的范围表示,多层的虚线框对应表示多个租户。参见图7,每个租户内部可设有单独的软件路由器821,用路由器命名空间表示。路由器命名空间分别连接到负载均衡子网822、容器通信子网823和外部子网810。其中,容器通信子网823可以配置有一个或多个。在具体应用中,租户内部的Pod之间通信可以经过路由器找到对应的负载均衡服务的虚拟IP,然后再通过软件路由器821寻址到具体的Pod。当外部应用要想访问租户内部的容器应用时,可以为租户内部的应用对应的负载均衡服务绑定浮动IP,绑定后访问路径大致为浮动IP—>虚拟IP—>具体的Pod IP。本实施例中,由于每个租户使用独立的路由器,本质的独立的OS(操作系统)网络命名空间,从而实现了租户隔离。
从技术角度,应用本发明的用于多租户的容器网络的管理方法和管理系统,通过网络服务中间件将容器网络和网络服务器对接,容器的目标租户、负载均衡子网、容器通信子网、安全组等信息,可通过元数据信息被直接或间接地指定,使得目标的容器应用能按需绑定到不同的租户及其对应的负载均衡子网和容器通信子网,可以和基础云的已有配置相协调,从而实现同一租户内容器云内部容器之间、容器云中的容器与基础云的虚拟机和物理机之间、容器云中的容器与基础云外部的服务能正常通信,不同租户间的虚拟实体不能相互访问。同时,由于网络中间件相当于提供了容器云平台到基础云服务的对接,利用网络服务器的功能实现容器网络的大二层通信和四层负载均衡,并使得基础云高级网络功能的配置能够被容器云使用。例如,除负载均衡和通信之外,容器云中的容器应用还能使用基础云中如Security Group(安全组)、FWaaS(FireWall as a Service,防火墙即服务)、VPNaaS(VPN(虚拟专用网络)即服务)、QoS(Quality of Service,服务质量)等高级网络功能。
从产品角度,通过本发明,使得容器云在网络维度无缝对接企业基础云平台的现有业务模型,以低成本的方式为企业基础云平台添加容器即服务(CaaS)的能力打下坚实的基础。另外,基于此方案,容器云能复用基础云平台已有的强大的网络功能,丰富了容器云的使用场景,间接增强企业云平台产品的竞争力。
在本发明的一些实施例中还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明第一方面实施例所述的用于多租户的容器网络管理的方法。
本发明的一些实施例中还提供了一种计算设备,该计算设备包括存储器、处理器及存储在存储器上并可在处理器上运行的应用程序,处理器执行所述应用程序时,实现根据本发明第一方面实施例所述的用于多租户的容器网络管理的方法。
本发明的一些实施例中还提供了一种计算机程序产品,当所述计算机程序产品中的指令由处理器执行时,根据本发明第一方面实施例所述的用于多租户的容器网络管理的方法。
上述存储介质,计算设备和计算机程序产品,其相关部分的具体实施方式可以从相应的本发明的用于多租户的容器网络的管理方法和系统以及网络控制中间件的实施例中获得,并与相应的本发明的用于多租户的容器网络的管理方法和系统具有相似的有益效果,在此不再赘述。
需要说明的是,在本说明书的描述中,流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,例如两个,三个等,除非另有明确具体的限定。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种用于多租户的容器网络的管理方法,其特征在于,包括:
创建容器网络的资源对象,并将资源对象对应的租户关联信息写入所述资源对象的元数据中;
读取所述资源对象的元数据中的租户关联信息;
根据所述租户关联信息向网络服务器请求网络资源,并建立所述资源对象与网络服务器的网络资源之间的映射关系;
根据所述映射关系,利用所述网络服务器提供的服务实现容器网络的负载均衡和通信。
2.根据权利要求1所述的用于多租户的容器网络管理方法,其特征在于,所述租户关联信息包括资源对象对应的租户名称、负载均衡子网、容器通信子网和安全组别中的一项或一项以上。
3.根据权利要求1所述的用于多租户的容器网络管理方法,其特征在于,所述容器网络是基于Kubernetes管理系统,所述容器网络的资源对象包括Pod、服务、端点、副本控制器以及部署中的一项或一项以上。
4.根据权利要求1或3所述的用于多租户的容器网络管理方法,其特征在于,所述资源对象对应的租户关联信息写入所述资源对象的元数据中的标签项和/或注解项。
5.根据权利要求1所述的用于多租户的容器网络管理方法,其特征在于,所述资源对象的租户关联信息为根据基础云中的相应的租户信息设置。
6.一种用于多租户的容器网络管理系统的网络服务中间件装置,所述多租户的容器网络管理系统包括应用程序接口服务器和网络服务器,其特征在于,所述网络服务中间件装置包括:
控制器模块,所述控制器模块用于与所述应用程序接口服务器通信,获取和更新资源对象的元数据信息中的租户关联信息,以及用于与网络服务器通信,根据所述租户关联信息向网络服务器请求网络资源,建立所述资源对象和网络服务器的网络资源之间的映射关系;
容器网络接口模块,与所述控制器模块、容器网络的计算节点和网络服务器通信,用于实现计算节点的资源对象的管理和根据所述资源对象与网络服务器的网络资源之间的映射关系,利用网络服务器提供的服务实现负载均衡和通信。
7.根据权利要求6所述的用于多租户的容器网络管理系统的中间件装置,其特征在于,所述租户关联信息包括资源对象对应的租户名称、负载均衡子网、容器通信子网和安全组别中的一项或一项以上。
8.根据权利要求6所述的用于多租户的容器网络管理系统的中间件装置,其特征在于,所述容器网络是基于Kubernetes管理系统,所述容器网络的资源对象包括Pod、服务、端点、副本控制器以及部署中的一项或一项以上。
9.根据权利要求6或8所述的用于多租户的容器网络管理系统,其特征在于,所述资源对象对应的租户关联信息写入所述资源对象的元数据中的标签项和/或注解项。
10.一种用于多租户的容器网络管理系统,包括应用程序接口服务器和网络服务器,其特征在于,还包括:根据权利6-9中任意一项所述的网络服务中间件装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810433688.0A CN110198231B (zh) | 2018-05-08 | 2018-05-08 | 用于多租户的容器网络管理方法和系统以及中间件 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810433688.0A CN110198231B (zh) | 2018-05-08 | 2018-05-08 | 用于多租户的容器网络管理方法和系统以及中间件 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110198231A true CN110198231A (zh) | 2019-09-03 |
CN110198231B CN110198231B (zh) | 2022-02-25 |
Family
ID=67751375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810433688.0A Active CN110198231B (zh) | 2018-05-08 | 2018-05-08 | 用于多租户的容器网络管理方法和系统以及中间件 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110198231B (zh) |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110855746A (zh) * | 2019-10-12 | 2020-02-28 | 重庆金融资产交易所有限责任公司 | 中间件管理方法、电子装置及存储介质 |
CN110888736A (zh) * | 2019-11-15 | 2020-03-17 | 北京浪潮数据技术有限公司 | 一种基于容器云平台的应用管理方法、系统及相关组件 |
CN111010457A (zh) * | 2019-12-04 | 2020-04-14 | 紫光云(南京)数字技术有限公司 | 基于服务类型的eip分类方法及分类系统 |
CN111049796A (zh) * | 2019-10-25 | 2020-04-21 | 中国通信服务股份有限公司 | 一种基于Open vSwitch实现Overlay多租户CNI容器网络的方法 |
CN111404951A (zh) * | 2020-03-23 | 2020-07-10 | 星环信息科技(上海)有限公司 | 一种云网络的租户创建方法、计算机设备及存储介质 |
CN111431985A (zh) * | 2020-03-18 | 2020-07-17 | 紫光云技术有限公司 | 一种云服务异构子系统间资源状态同步的方法 |
CN111506412A (zh) * | 2020-04-22 | 2020-08-07 | 上海德拓信息技术股份有限公司 | 基于Airflow的分布式异步任务构建、调度系统及方法 |
CN111818188A (zh) * | 2020-09-09 | 2020-10-23 | 杭州朗澈科技有限公司 | 一种Kubernetes集群的负载均衡可用性提升方法和装置 |
CN112039985A (zh) * | 2020-08-28 | 2020-12-04 | 中移(杭州)信息技术有限公司 | 一种异构云管理方法及系统 |
CN112104486A (zh) * | 2020-08-31 | 2020-12-18 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器的网络端点切片的方法及其系统 |
CN112346821A (zh) * | 2020-12-01 | 2021-02-09 | 新华智云科技有限公司 | 基于kubernetes的应用配置管理方法与系统 |
WO2021042846A1 (zh) * | 2019-09-04 | 2021-03-11 | 南京中兴软件有限责任公司 | 网络隔离策略管理方法和网络隔离策略管理系统 |
CN112565416A (zh) * | 2020-12-03 | 2021-03-26 | 杭州谐云科技有限公司 | 基于云原生的大规模边缘安卓设备纳管系统及其纳管方法 |
CN112637328A (zh) * | 2020-12-21 | 2021-04-09 | 上海商汤智能科技有限公司 | 云服务方法、装置、设备及存储介质 |
CN112671820A (zh) * | 2020-08-17 | 2021-04-16 | 紫光云技术有限公司 | 一种基于容器实现公有云负载均衡服务的方法 |
CN112702211A (zh) * | 2020-12-30 | 2021-04-23 | 浪潮云信息技术股份公司 | 一种基于Kubernetes的网络服务网格系统 |
CN112799775A (zh) * | 2020-12-29 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 一种节点属性传递方法以及相关装置 |
CN112910937A (zh) * | 2019-11-19 | 2021-06-04 | 北京金山云网络技术有限公司 | 容器集群中的对象调度方法、装置、服务器和容器集群 |
CN112995273A (zh) * | 2021-01-28 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 网络打通方案生成方法、装置、计算机设备和存储介质 |
CN113037655A (zh) * | 2021-03-02 | 2021-06-25 | 浪潮云信息技术股份公司 | 一种实现多cpu架构容器和虚机网络互通的方法 |
CN113094771A (zh) * | 2021-03-23 | 2021-07-09 | 橙色云互联网设计有限公司 | 对设计对象匹配应用程序的方法、装置及存储介质 |
CN113364727A (zh) * | 2020-03-05 | 2021-09-07 | 北京金山云网络技术有限公司 | 容器集群系统、容器控制台和服务器 |
CN113489770A (zh) * | 2021-06-30 | 2021-10-08 | 深圳壹账通智能科技有限公司 | 容器间的通信方法、电子设备和计算机可读存储介质 |
CN113626134A (zh) * | 2021-06-29 | 2021-11-09 | 广东浪潮智慧计算技术有限公司 | 一种资源复制方法、装置、设备以及计算机可读存储介质 |
CN113821268A (zh) * | 2020-06-18 | 2021-12-21 | 复旦大学 | 一种与OpenStack Neutron融合的Kubernetes网络插件方法 |
CN113918273A (zh) * | 2020-07-10 | 2022-01-11 | 华为技术有限公司 | 一种容器组的创建方法和装置 |
CN114143321A (zh) * | 2021-11-26 | 2022-03-04 | 中国电信集团系统集成有限责任公司 | 一种基于跨idc环境的多租户应用配置分发系统 |
CN114157569A (zh) * | 2020-08-17 | 2022-03-08 | 中国电信股份有限公司 | 集群系统及其构建方法和构建装置 |
CN114205230A (zh) * | 2021-12-13 | 2022-03-18 | 中国电信股份有限公司 | 云原生网元的配置方法、系统、介质及电子设备 |
CN114615268A (zh) * | 2022-03-28 | 2022-06-10 | 阿里巴巴(中国)有限公司 | 基于Kubernetes集群的服务网络、监控节点、容器节点及设备 |
CN116467113A (zh) * | 2023-06-20 | 2023-07-21 | 深圳富联富桂精密工业有限公司 | 异常处理方法、装置、电子设备及计算机可读存储介质 |
CN116633775A (zh) * | 2023-07-24 | 2023-08-22 | 安超云软件有限公司 | 一种多容器网络接口的容器通信方法及系统 |
CN117076142A (zh) * | 2023-10-17 | 2023-11-17 | 阿里云计算有限公司 | 多租户资源池配置方法和多租户服务系统 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105323282A (zh) * | 2014-07-28 | 2016-02-10 | 神州数码信息系统有限公司 | 一种面向多租户的企业应用部署与管理系统 |
CN105554015A (zh) * | 2015-12-31 | 2016-05-04 | 北京轻元科技有限公司 | 多租户容器云计算系统的管理网络及方法 |
CN106506648A (zh) * | 2016-11-10 | 2017-03-15 | 东软集团股份有限公司 | 负载均衡服务管理方法及系统 |
CN106888254A (zh) * | 2017-01-20 | 2017-06-23 | 华南理工大学 | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 |
EP3282356A1 (en) * | 2016-08-11 | 2018-02-14 | Entit Software LLC | Container monitoring configuration deployment |
CN107864131A (zh) * | 2017-11-03 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种实现Kubernetes集群多租户网络隔离的方法及系统 |
CN107947961A (zh) * | 2017-10-17 | 2018-04-20 | 上海数讯信息技术有限公司 | 基于SDN的Kubernetes网络管理系统与方法 |
-
2018
- 2018-05-08 CN CN201810433688.0A patent/CN110198231B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105323282A (zh) * | 2014-07-28 | 2016-02-10 | 神州数码信息系统有限公司 | 一种面向多租户的企业应用部署与管理系统 |
CN105554015A (zh) * | 2015-12-31 | 2016-05-04 | 北京轻元科技有限公司 | 多租户容器云计算系统的管理网络及方法 |
EP3282356A1 (en) * | 2016-08-11 | 2018-02-14 | Entit Software LLC | Container monitoring configuration deployment |
CN106506648A (zh) * | 2016-11-10 | 2017-03-15 | 东软集团股份有限公司 | 负载均衡服务管理方法及系统 |
CN106888254A (zh) * | 2017-01-20 | 2017-06-23 | 华南理工大学 | 一种基于Kubernetes的容器云架构及其各模块之间的交互方法 |
CN107947961A (zh) * | 2017-10-17 | 2018-04-20 | 上海数讯信息技术有限公司 | 基于SDN的Kubernetes网络管理系统与方法 |
CN107864131A (zh) * | 2017-11-03 | 2018-03-30 | 郑州云海信息技术有限公司 | 一种实现Kubernetes集群多租户网络隔离的方法及系统 |
Non-Patent Citations (1)
Title |
---|
陆钢等: "《电信运营商对容器技术的探索和思考》", 《电信科学》 * |
Cited By (53)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021042846A1 (zh) * | 2019-09-04 | 2021-03-11 | 南京中兴软件有限责任公司 | 网络隔离策略管理方法和网络隔离策略管理系统 |
CN110855746A (zh) * | 2019-10-12 | 2020-02-28 | 重庆金融资产交易所有限责任公司 | 中间件管理方法、电子装置及存储介质 |
CN111049796A (zh) * | 2019-10-25 | 2020-04-21 | 中国通信服务股份有限公司 | 一种基于Open vSwitch实现Overlay多租户CNI容器网络的方法 |
CN111049796B (zh) * | 2019-10-25 | 2022-01-07 | 中国通信服务股份有限公司 | 一种基于Open vSwitch实现Overlay多租户CNI容器网络的方法 |
CN110888736A (zh) * | 2019-11-15 | 2020-03-17 | 北京浪潮数据技术有限公司 | 一种基于容器云平台的应用管理方法、系统及相关组件 |
CN112910937A (zh) * | 2019-11-19 | 2021-06-04 | 北京金山云网络技术有限公司 | 容器集群中的对象调度方法、装置、服务器和容器集群 |
CN112910937B (zh) * | 2019-11-19 | 2022-12-23 | 北京金山云网络技术有限公司 | 容器集群中的对象调度方法、装置、服务器和容器集群 |
CN111010457A (zh) * | 2019-12-04 | 2020-04-14 | 紫光云(南京)数字技术有限公司 | 基于服务类型的eip分类方法及分类系统 |
CN111010457B (zh) * | 2019-12-04 | 2022-07-15 | 紫光云(南京)数字技术有限公司 | 基于服务类型的弹性公网ip分类方法 |
CN113364727A (zh) * | 2020-03-05 | 2021-09-07 | 北京金山云网络技术有限公司 | 容器集群系统、容器控制台和服务器 |
CN113364727B (zh) * | 2020-03-05 | 2023-04-18 | 北京金山云网络技术有限公司 | 容器集群系统、容器控制台和服务器 |
CN111431985B (zh) * | 2020-03-18 | 2023-04-21 | 紫光云技术有限公司 | 一种云服务异构子系统间资源状态同步的方法 |
CN111431985A (zh) * | 2020-03-18 | 2020-07-17 | 紫光云技术有限公司 | 一种云服务异构子系统间资源状态同步的方法 |
CN111404951A (zh) * | 2020-03-23 | 2020-07-10 | 星环信息科技(上海)有限公司 | 一种云网络的租户创建方法、计算机设备及存储介质 |
CN111404951B (zh) * | 2020-03-23 | 2021-06-29 | 星环信息科技(上海)股份有限公司 | 一种云网络的租户创建方法、计算机设备及存储介质 |
CN111506412B (zh) * | 2020-04-22 | 2023-04-25 | 上海德拓信息技术股份有限公司 | 基于Airflow的分布式异步任务构建、调度系统及方法 |
CN111506412A (zh) * | 2020-04-22 | 2020-08-07 | 上海德拓信息技术股份有限公司 | 基于Airflow的分布式异步任务构建、调度系统及方法 |
CN113821268A (zh) * | 2020-06-18 | 2021-12-21 | 复旦大学 | 一种与OpenStack Neutron融合的Kubernetes网络插件方法 |
CN113918273A (zh) * | 2020-07-10 | 2022-01-11 | 华为技术有限公司 | 一种容器组的创建方法和装置 |
CN112671820A (zh) * | 2020-08-17 | 2021-04-16 | 紫光云技术有限公司 | 一种基于容器实现公有云负载均衡服务的方法 |
CN114157569A (zh) * | 2020-08-17 | 2022-03-08 | 中国电信股份有限公司 | 集群系统及其构建方法和构建装置 |
CN112039985A (zh) * | 2020-08-28 | 2020-12-04 | 中移(杭州)信息技术有限公司 | 一种异构云管理方法及系统 |
CN112104486A (zh) * | 2020-08-31 | 2020-12-18 | 中国—东盟信息港股份有限公司 | 一种基于Kubernetes容器的网络端点切片的方法及其系统 |
CN111818188A (zh) * | 2020-09-09 | 2020-10-23 | 杭州朗澈科技有限公司 | 一种Kubernetes集群的负载均衡可用性提升方法和装置 |
CN112346821A (zh) * | 2020-12-01 | 2021-02-09 | 新华智云科技有限公司 | 基于kubernetes的应用配置管理方法与系统 |
CN112346821B (zh) * | 2020-12-01 | 2023-09-26 | 新华智云科技有限公司 | 基于kubernetes的应用配置管理方法与系统 |
CN112565416A (zh) * | 2020-12-03 | 2021-03-26 | 杭州谐云科技有限公司 | 基于云原生的大规模边缘安卓设备纳管系统及其纳管方法 |
CN112565416B (zh) * | 2020-12-03 | 2022-05-10 | 杭州谐云科技有限公司 | 基于云原生的大规模边缘安卓设备纳管系统及其纳管方法 |
CN112637328A (zh) * | 2020-12-21 | 2021-04-09 | 上海商汤智能科技有限公司 | 云服务方法、装置、设备及存储介质 |
CN112799775A (zh) * | 2020-12-29 | 2021-05-14 | 杭州涂鸦信息技术有限公司 | 一种节点属性传递方法以及相关装置 |
CN112702211A (zh) * | 2020-12-30 | 2021-04-23 | 浪潮云信息技术股份公司 | 一种基于Kubernetes的网络服务网格系统 |
CN112702211B (zh) * | 2020-12-30 | 2022-06-24 | 浪潮云信息技术股份公司 | 一种基于Kubernetes的网络服务网格系统 |
CN112995273B (zh) * | 2021-01-28 | 2022-03-04 | 腾讯科技(深圳)有限公司 | 网络打通方案生成方法、装置、计算机设备和存储介质 |
CN112995273A (zh) * | 2021-01-28 | 2021-06-18 | 腾讯科技(深圳)有限公司 | 网络打通方案生成方法、装置、计算机设备和存储介质 |
CN113037655A (zh) * | 2021-03-02 | 2021-06-25 | 浪潮云信息技术股份公司 | 一种实现多cpu架构容器和虚机网络互通的方法 |
CN113094771B (zh) * | 2021-03-23 | 2021-10-12 | 橙色云互联网设计有限公司 | 对设计对象匹配应用程序的方法、装置及存储介质 |
CN113094771A (zh) * | 2021-03-23 | 2021-07-09 | 橙色云互联网设计有限公司 | 对设计对象匹配应用程序的方法、装置及存储介质 |
CN113626134A (zh) * | 2021-06-29 | 2021-11-09 | 广东浪潮智慧计算技术有限公司 | 一种资源复制方法、装置、设备以及计算机可读存储介质 |
CN113626134B (zh) * | 2021-06-29 | 2024-02-13 | 广东浪潮智慧计算技术有限公司 | 一种资源复制方法、装置、设备以及计算机可读存储介质 |
CN113489770B (zh) * | 2021-06-30 | 2022-08-19 | 深圳壹账通智能科技有限公司 | 容器间的通信方法、电子设备和计算机可读存储介质 |
CN113489770A (zh) * | 2021-06-30 | 2021-10-08 | 深圳壹账通智能科技有限公司 | 容器间的通信方法、电子设备和计算机可读存储介质 |
CN114143321A (zh) * | 2021-11-26 | 2022-03-04 | 中国电信集团系统集成有限责任公司 | 一种基于跨idc环境的多租户应用配置分发系统 |
CN114143321B (zh) * | 2021-11-26 | 2023-08-25 | 中电信数智科技有限公司 | 一种基于跨idc环境的多租户应用配置分发系统 |
CN114205230A (zh) * | 2021-12-13 | 2022-03-18 | 中国电信股份有限公司 | 云原生网元的配置方法、系统、介质及电子设备 |
CN114205230B (zh) * | 2021-12-13 | 2023-12-15 | 中国电信股份有限公司 | 云原生网元的配置方法、系统、介质及电子设备 |
CN114615268A (zh) * | 2022-03-28 | 2022-06-10 | 阿里巴巴(中国)有限公司 | 基于Kubernetes集群的服务网络、监控节点、容器节点及设备 |
CN114615268B (zh) * | 2022-03-28 | 2023-09-12 | 阿里巴巴(中国)有限公司 | 基于Kubernetes集群的服务网络、监控节点、容器节点及设备 |
CN116467113B (zh) * | 2023-06-20 | 2023-12-05 | 深圳富联富桂精密工业有限公司 | 异常处理方法、装置、电子设备及计算机可读存储介质 |
CN116467113A (zh) * | 2023-06-20 | 2023-07-21 | 深圳富联富桂精密工业有限公司 | 异常处理方法、装置、电子设备及计算机可读存储介质 |
CN116633775A (zh) * | 2023-07-24 | 2023-08-22 | 安超云软件有限公司 | 一种多容器网络接口的容器通信方法及系统 |
CN116633775B (zh) * | 2023-07-24 | 2023-12-19 | 安超云软件有限公司 | 一种多容器网络接口的容器通信方法及系统 |
CN117076142A (zh) * | 2023-10-17 | 2023-11-17 | 阿里云计算有限公司 | 多租户资源池配置方法和多租户服务系统 |
CN117076142B (zh) * | 2023-10-17 | 2024-01-30 | 阿里云计算有限公司 | 多租户资源池配置方法和多租户服务系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110198231B (zh) | 2022-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110198231A (zh) | 用于多租户的容器网络管理方法和系统以及中间件 | |
US10700991B2 (en) | Multi-cluster resource management | |
CN105740048B (zh) | 一种镜像管理方法、装置及系统 | |
CN105684357B (zh) | 虚拟机中地址的管理 | |
CN109344000B (zh) | 区块链网络服务平台、恢复工具及其故障处理方法、存储介质 | |
WO2018086580A1 (zh) | 一种可扩展的异构云平台适配方法及其系统 | |
CA2914802C (en) | Distributed lock management in a cloud computing environment | |
CN102103518B (zh) | 一种在虚拟化环境中管理资源的系统及其实现方法 | |
US9946578B2 (en) | Managing the persistent data of a pre-installed application in an elastic virtual machine instance | |
CN103237046B (zh) | 支持混合云存储应用的分布式文件系统及实现方法 | |
CN109189334B (zh) | 一种区块链网络服务平台及其扩容方法、存储介质 | |
CN105897946A (zh) | 一种访问地址的获取方法及系统 | |
US9122716B1 (en) | Database upgrade management | |
CN106663033B (zh) | 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法 | |
CN103827832B (zh) | 用于在事务中间件机器环境中持久化事务记录的系统与方法 | |
US8346856B2 (en) | Client environment creation system, client environment creation method, client environment creation program and storage medium | |
CN103685608A (zh) | 一种自动配置安全虚拟机ip地址的方法及装置 | |
CN109462511B (zh) | 网络的建立方法及装置 | |
CN109906597A (zh) | 向和从云网络中存储和取回受限制的数据集和非受限制的数据集 | |
WO2023040502A1 (zh) | 用户服务注册 | |
CN111158859A (zh) | 基于麒麟操作系统的应用管理系统及其实现与使用方法 | |
CN109992956A (zh) | 容器的安全策略的处理方法和相关装置 | |
CN110457263A (zh) | 一种数据存储方法和装置 | |
US20230195695A1 (en) | File Sharing Method and Terminal Device | |
CN110489203A (zh) | 一种容器调度框架系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
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 |