CN113127145B - 信息处理方法、装置以及存储介质 - Google Patents

信息处理方法、装置以及存储介质 Download PDF

Info

Publication number
CN113127145B
CN113127145B CN202010041861.XA CN202010041861A CN113127145B CN 113127145 B CN113127145 B CN 113127145B CN 202010041861 A CN202010041861 A CN 202010041861A CN 113127145 B CN113127145 B CN 113127145B
Authority
CN
China
Prior art keywords
container instance
port mapping
port
target container
change operation
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.)
Active
Application number
CN202010041861.XA
Other languages
English (en)
Other versions
CN113127145A (zh
Inventor
马奥
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
China Mobile Suzhou Software Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd, China Mobile Suzhou Software Technology Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN202010041861.XA priority Critical patent/CN113127145B/zh
Publication of CN113127145A publication Critical patent/CN113127145A/zh
Application granted granted Critical
Publication of CN113127145B publication Critical patent/CN113127145B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种信息处理方法、装置以及存储介质。其中,方法包括:监控容器实例资源和端口映射配置资源;根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作;控制所述目标容器实例所在的节点执行所述端口映射变更操作,并得到相应的变更操作记录信息;利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则。采用本发明的方案,能够在不影响容器实例状态的前提下实现端口映射的动态配置,进一步使得容器实例的数量不会受到节点数量的限制,并使得负载均衡器达到容器实例细粒度的流量控制。

Description

信息处理方法、装置以及存储介质
技术领域
本发明涉及云计算技术,尤其涉及一种信息处理方法、装置以及存储介质。
背景技术
在云计算的场景中,通常会对应用进行容器化改造,并利用Kubernetes的容器编排能力,解决应用的自动化部署以及大规模可伸缩问题。
然而,相关技术中,基于Kubernetes的信息处理方法尚需优化。
发明内容
为解决相关技术问题,本发明实施例提供一种信息处理方法、装置以及存储介质。
本发明实施例的技术方案是这样实现的:
本发明实施例提供了一种信息处理方法,包括:
监控容器实例资源和端口映射配置资源;
根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作;
控制所述目标容器实例所在的节点执行所述端口映射变更操作,并得到相应的变更操作记录信息;
利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则。
上述方案中,监控到容器实例资源中关于第一容器实例的更新情况;所述确定目标容器实例以及针对所述目标容器实例的端口映射变更操作,包括:
将所述第一容器实例确定为目标容器实例;
在所述关于第一容器实例的更新情况为添加所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作;
在所述关于第一容器实例的更新情况为删除所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作;
在所述关于第一容器实例的更新情况为重启所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作。
上述方案中,监控到端口映射配置资源中关于第一端口映射配置信息的更新情况;所述确定目标容器实例以及针对所述目标容器实例的端口映射变更操作,包括:
根据所述第一端口映射配置信息对应的第一标识信息,在所述容器实例资源中确定与所述第一标识信息对应的第二容器实例,将所述第二容器实例确定为目标容器实例;
在所述关于第一端口映射配置信息的更新情况为添加所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作;
在所述关于第一端口映射配置信息的更新情况为删除所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作;
在所述关于第一端口映射配置信息的更新情况为修改所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作。
上述方案中,所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作,所述控制所述目标容器实例所在的节点执行所述端口映射变更操作,包括:
发送添加端口映射请求至所述目标容器实例所在的节点;所述添加端口映射请求用于控制所述节点根据本机端口的使用情况,为所述目标容器实例分配空闲的第一端口,并创建所述第一端口和所述目标容器实例的端口之间的转发规则,以完成所述第一端口和所述目标容器实例的端口之间的端口映射。
上述方案中,所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作,所述控制所述目标容器实例所在的节点执行所述端口映射变更操作,包括:
发送删除端口映射请求至所述目标容器实例所在的节点;所述删除端口映射请求用于控制所述节点根据所述删除端口映射请求确定所述目标容器实例占用的第二端口,释放所述第二端口,并删除所述第二端口和所述目标容器实例的端口之间的转发规则。
上述方案中,所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作,所述控制所述目标容器实例所在的节点执行所述端口映射变更操作,包括:
发送修改端口映射请求至所述目标容器实例所在的节点;所述修改端口映射请求用于控制所述节点根据所述修改端口映射请求确定所述目标容器实例占用的第三端口,释放所述第三端口,删除所述第三端口和所述目标容器实例的端口之间的转发规则,并根据本机端口的使用情况,为所述目标容器实例分配空闲的第四端口,创建所述第四端口和所述目标容器实例的端口之间的转发规则,以完成所述第四端口和所述目标容器实例的端口之间的端口映射。
上述方案中,所述利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则,包括:
利用所述变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则包含的流量转发目标地址。
本发明实施例还提供了一种信息处理装置,包括:
监控单元,用于监控容器实例资源和端口映射配置资源;
第一处理单元,用于根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作;
第二处理单元,用于控制所述目标容器实例所在的节点执行所述端口映射变更操作,并得到相应的变更操作记录信息;
第三处理单元,用于利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则。
本发明实施例还提供了一种信息处理装置,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;
其中,所述处理器用于运行所述计算机程序时,执行上述任一方法的步骤。
本发明实施例还提供了一种存储介质,所述介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
本发明实施例提供的信息处理方法、装置以及存储介质,监控容器实例资源和端口映射配置资源;根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作;控制所述目标容器实例所在的节点执行所述端口映射变更操作,并得到相应的变更操作记录信息;利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则。本发明实施例的方案,根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况确定针对目标容器实例的端口映射变更操作,控制所述目标容器实例所在的节点执行所述端口映射变更操作,得到变更操作记录信息,并利用得到的变更操作记录信息更新负载均衡器中与所述目标容器实例对应的负载均衡规则;如此,通过将容器实例配置与端口映射配置分离,能够在不影响容器实例状态的前提下实现端口映射的动态配置,进一步使得容器实例的数量不会受到节点数量的限制,并使得负载均衡器达到了容器实例细粒度的流量控制。
附图说明
图1为相关技术中利用hostPort属性为外部客户端提供访问服务的配置结构示意图;
图2为本发明实施例信息处理方法的流程示意图;
图3为本发明应用实施例涉及的组件以及各组件的连接结构示意图;
图4为本发明应用实施例中宿主机负载均衡器与容器实例的连接结构示意图;
图5为本发明实施例信息处理装置的结构示意图;
图6为本发明实施例信息处理装置的硬件组成结构示意图。
具体实施方式
以下结合说明书附图及实施例对本发明的技术方案作进一步详细的阐述。
相关技术中,进行了容器化改造后的应用一般需要通过专用的容器网络进行管理,比如Kubernetes。一个应用会在Kubernetes中扩展为多个容器实例,这些容器实例需要为外部(即Kubernetes集群的外部网络)客户端提供访问服务;目前,Kubernetes中的容器实例可以采用以下四种方式来为外部客户端提供访问服务:
方式一:利用节点端口(NodePort)类型的服务(Service)对象为外部客户端提供访问服务。
具体地,在Kubernetes集群中的每个节点上提供一个相同的静态端口,并通过iptables或IP虚拟服务器(IPVS,IP Virtual Server)实现负载均衡功能;外部客户端可以通过一个静态端口访问全部的容器实例。
方式二:利用Kubernetes Ingress为外部客户端提供访问服务。
具体地,Ingress是一个应用程序接口(API,Application ProgrammingInterface)对象,用来管理Kubernetes集群中外部客户端访问Kubernetes集群内部的服务;Ingress可以提供负载均衡、安全套接层(SSL,Secure Sockets Layer)卸载和虚拟主机的功能。这种方式通过Nginx对Kubernetes集群的外部流量进行转发,外部客户端可以通过访问Nginx地址来访问后端的容器实例。
方式三:通过为容器实例设置宿主机端口(hostPort)属性来为外部客户端提供访问服务。
具体地,通过为容器实例设置hostPort属性,将容器实例的某些端口映射到容器实例的宿主机(即Kubernetes集群中容器实例所在的节点)的固定端口上,外部客户端可以通过访问宿主机的固定端口来访问后端的容器实例。这种方式使得容器实例和节点一一对应。Kubernetes中hostPort的配置结构如图1所示,端口映射的配置包含在容器实例的配置中,即在配置容器实例的同时配置相应容器实例与自身所在节点之间的端口映射,Kubernetes的APIServer组件将容器实例的配置发送到各个节点的Kubelet组件,由各个节点的Kubelet组件调用相应的容器网络接口(CNI,Container Network Interface)组件完成iptables配置,最终完成端口映射。
方式四:利用软件定义网络(SDN,Software Defined Network)技术为外部客户端提供访问服务。
具体地,利用SDN技术,使得容器实例使用与宿主机相同的网络。这种方式无需对Kubernetes集群的外部流量进行宿主机网络到容器网络的转换,并且,可以直接由宿主机的负载均衡器提供功能强大、性能稳定的负载均衡服务。
然而,实际应用中,采用上述四种方式为外部客户端提供访问服务时,实现的负载均衡功能效果有限,无法达到容器实例细粒度的流量控制。
具体地,对于方式一,由于负载均衡功能是通过iptables或IPVS实现的,所以负载均衡功能较为简单,并且会受到iptables规则数量或IPVS规则数量的限制,在容器实例规模增大时,转发性能有限;对于方式二,在实现负载均衡功能时,容易产生单节点故障;对于方式三,这种方式并不存在负载均衡的功能;而对于方式四,实现负载均衡功能时技术实施难度较大,并且,由于容器实例使用与宿主机相同的网络,占用了宿主机的网络资源,因此,需要提前进行容器实例和宿主机之间的网络规划,否则会导致宿主机网络与容器实例网络之间的网络冲突以及路由信息的复杂化。
因此,为了提供更强大的负载均衡功能,同时考虑到系统的高可用(HighAvailability),在为外部客户端提供访问服务时,通常会在系统前端再添加一层宿主机的负载均衡器,以在提供高可用的同时,提供一些更专业的负载功能。
在使用方式一和方式二为外部客户端提供访问服务,并在系统前端添加了一层宿主机的负载均衡器时,由于添加的负载均衡器仅能够将Kubernetes集群的外部流量转发到宿主机,所以无法通过宿主机的负载均衡器进行容器实例细粒度的流量控制,不能灵活配置。
而在使用方式三为外部客户端提供访问服务,并在系统前端添加了一层宿主机的负载均衡器时,虽然添加的负载均衡器可以实现容器实例细粒度的流量控制,但是,由于属于同一应用的容器实例在进行端口映射时的目的端口相同,所以一个节点只能用于一个容器实例的端口映射,容器实例的数量受到节点数量的限制;另外,更新端口映射的配置会使得容器实例的配置也发生变化,导致容器实例的重启,如此,限制了端口配置的灵活性;也就是说,使用方式三结合宿主机的负载均衡器实现的负载均衡功能仍然存在容器实例的数量受限以及更新端口映射配置导致容器实例重启的问题,不能灵活配置。
基于此,在本发明的各种实施例中,根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况确定针对目标容器实例的端口映射变更操作,控制所述目标容器实例所在的节点执行所述端口映射变更操作,得到变更操作记录信息,并利用得到的变更操作记录信息更新负载均衡器中与所述目标容器实例对应的负载均衡规则;如此,通过将容器实例配置与端口映射配置分离,能够在不影响容器实例状态的前提下实现端口映射的动态配置,进一步使得容器实例的数量不会受到节点数量的限制,并使得负载均衡器达到了容器实例细粒度的流量控制。
本发明实施例提供了一种信息处理方法,如图2所示,所述方法包括以下步骤:
步骤201:监控容器实例资源和端口映射配置资源;
步骤202:根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作;
步骤203:控制所述目标容器实例所在的节点执行所述端口映射变更操作,并得到相应的变更操作记录信息;
步骤204:利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则。
在步骤201中,实际应用时,容器实例资源和端口映射配置资源存储在Kubernetes的APIServer组件中;容器实例资源基于Kubernetes的容器实例模板进行存储;端口映射配置资源可以以自定义资源(CRD,Custom Resources Definition)的形式进行存储。
实际应用时,用户对一个应用(后续的描述中记作第一应用)进行了容器化改造后会得到多个容器实例,在利用Kubernetes对所述多个容器实例进行管理时,可以在容器实例资源中基于容器实例模板创建每个容器实例对应的容器实例信息,得到多个容器实例信息;其中,针对所述多个容器实例中的每个容器实例,相应容器实例对应的容器实例信息至少包含所述相应容器实例的名称、所述相应容器实例的状态(开启或关闭)、所述第一应用的名称以及所述第一应用的类型。同时,针对所述多个容器实例中处于开启状态的容器实例,可以在端口映射配置资源中创建所述处于开启状态的容器实例对应的端口映射配置信息;所述端口映射配置信息可以包含:配置ID、所述第一应用的名称、所述第一应用的类型、容器实例端口、容器实例名称、容器实例端口监听的协议、容器实例所在节点的IP地址以及容器实例所在节点的端口;其中,所述容器实例端口以及所述容器实例所在节点的端口用于进行端口映射,以提供外部客户端的访问服务;所述容器实例端口监听的协议可以是传输控制协议(TCP,Transmission Control Protocol)或用户数据报协议(UDP,UserDatagram Protocol)等常用协议;所述第一应用的名称以及所述第一应用的类型可以作为容器实例信息和端口映射配置信息的标识信息,如此,能够关联容器实例资源存储的信息和端口映射配置资源存储的信息。另外,由于多个处于开启状态的容器实例同属于第一应用,所以所述多个处于开启状态的容器实例对应的多个端口映射配置信息可以存储为一个文件(用户可以根据需要自定义格式,比如树状结构的文件),由用户在所述文件中统一设置所述第一应用的名称、所述第一应用的类型、容器实例端口以及容器实例端口监听的协议,如此,能够节省存储资源,方便用户操作。
这里,通过分别设置了容器实例资源和端口映射配置资源,实现了容器实例配置和端口映射配置的分离;如此,用户可以根据需要自行设置Kubernetes集群中节点的数量,使得容器实例的数量不会受到节点数量的限制;另外,由于容器实例的配置和端口映射的配饰是分离的,所以容器实例端口映射发生变化时不会导致容器实例的重启。
在步骤202中,实际应用时,容器实例资源的更新情况可以包括:添加容器实例、删除容器实例以及重启容器实例;容器实例资源的更新情况可以是用户对容器实例进行配置导致的,当然,也存在容器实例因系统错误等原因自动重启的情况。针对不同的容器实例资源的更新情况,可以确定容器实例资源的更新情况对应的容器实例(后续的描述中记作目标容器实例),并确定针对目标容器实例的端口映射变更操作。
具体地,在容器实例资源的更新情况为添加容器实例的情况下,可以将添加的容器实例确定为目标容器实例,并确定针对目标容器实例的端口映射变更操作为添加端口映射的操作;在容器实例资源的更新情况为删除容器实例的情况下,可以将删除的容器实例确定为目标容器实例,并确定针对目标容器实例的端口映射变更操作为删除端口映射的操作;在容器实例资源的更新情况为重启容器实例的情况下,可以将重启的容器实例确定为目标容器实例,并确定针对目标容器实例的端口映射变更操作为修改端口映射的操作。
基于此,在一实施例中,监控到容器实例资源中关于第一容器实例的更新情况时,所述确定目标容器实例以及针对所述目标容器实例的端口映射变更操作,可以包括:
将所述第一容器实例确定为目标容器实例;
在所述关于第一容器实例的更新情况为添加所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作;
在所述关于第一容器实例的更新情况为删除所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作;
在所述关于第一容器实例的更新情况为重启所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作。
实际应用时,所述修改端口映射操作为添加端口映射操作与删除端口映射操作的结合,即先执行删除端口映射操作,再执行添加端口映射操作。
在步骤202中,实际应用时,端口映射配置资源的更新情况可以包括:添加端口映射配置信息、删除端口映射配置信息以及修改端口映射配置信息;端口映射配置资源的更新情况可以是用户对端口配置资源信息进行编辑导致的,当然,也存在端口映射配置资源根据Kubernetes集群中节点发送的变更操作记录信息进行自动更新的情况。针对不同的端口映射配置资源的更新情况,可以确定端口映射配置资源的更新情况对应的容器实例(目标容器实例),并确定针对目标容器实例的端口映射变更操作。
具体地,在端口映射配置资源的更新情况为添加端口映射配置信息的情况下,可以将添加的端口映射配置信息对应的容器实例确定为目标容器实例,并确定针对目标容器实例的端口映射变更操作为添加端口映射的操作;在端口映射配置资源的更新情况为删除端口映射配置信息的情况下,可以将删除的端口映射配置信息对应的容器实例确定为目标容器实例,并确定针对目标容器实例的端口映射变更操作为删除端口映射的操作;在端口映射配置资源的更新情况为修改端口映射配置信息的情况下,可以将修改的端口映射配置信息对应的容器实例确定为目标容器实例,并确定针对目标容器实例的端口映射变更操作为修改端口映射的操作。
基于此,在一实施例中,监控到端口映射配置资源中关于第一端口映射配置信息的更新情况时,所述确定目标容器实例以及针对所述目标容器实例的端口映射变更操作,可以包括:
根据所述第一端口映射配置信息对应的第一标识信息,在所述容器实例资源中确定与所述第一标识信息对应的第二容器实例,将所述第二容器实例确定为目标容器实例;
在所述关于第一端口映射配置信息的更新情况为添加所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作;
在所述关于第一端口映射配置信息的更新情况为删除所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作;
在所述关于第一端口映射配置信息的更新情况为修改所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作。
实际应用时,所述第一标识信息可以是所述第一端口映射配置信息对应的容器实例所属应用的名称以及应用类型(即上述第一应用的名称以及第一应用的类型),也可以是所述第一端口映射配置信息对应的容器实例名称。举例来说,假设用户修改所述第一端口映射配置信息时,具体修改了容器实例端口,由于同属于一个应用的全部容器实例的容器实例端口是相同的,所以所述第一标识信息需设置为第一端口映射配置信息对应的容器实例所属应用的名称以及应用类型,并在所述容器实例资源中确定与所述第一端口映射配置信息对应的容器实例所属应用的名称和应用类型对应的多个第二容器实例,将每个第二容器实例都确定为一个目标容器实例;假设用户修改所述第一端口映射配置信息时,具体修改了容器实例所在节点的端口,由于同属于一个应用的全部容器实例的容器实例所在节点的端口可以不相同,所以所述第一标识信息需设置为所述第一端口映射配置信息对应的容器实例名称,并在所述容器实例资源中确定与所述第一端口映射配置信息对应的容器实例名称对应的一个第二容器实例,将所述第二容器实例确定为目标容器实例。
在步骤202中,实际应用时,存在容器实例资源的更新和端口映射配置资源的更新并不对应端口映射操作的情况;比如,用户添加的容器实例的状态为关闭状态;再比如,用户修改的端口映射配置信息为容器实例端口监听的协议;因此,在监控到容器实例资源的更新情况或端口映射配置资源的更新情况时,还需要判断所述容器实例资源的更新情况或端口映射配置资源的更新情况是否对应端口映射操作。
基于此,在一实施例中,监控到容器实例资源中关于第一容器实例的更新情况时,所述方法还可以包括:
判断所述关于第一容器实例的更新情况是否对应有端口映射操作;
在所述关于第一容器实例的更新情况对应有端口映射操作时,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作。
在一实施例中,监控到端口映射配置资源中关于第一端口映射配置信息的更新情况时,所述方法还可以包括:
判断所述关于第一端口映射配置信息的更新情况是否对应有端口映射操作;
在所述关于第一端口映射配置信息的更新情况对应有端口映射操作时,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作。
实际应用时,如果监控到容器实例资源中关于第一容器实例的更新情况,可以通过判断所述第一容器实例对应的第一容器实例信息包含的第一容器实例状态是否为开启状态,确定所述关于第一端口映射配置信息的更新情况是否对应有端口映射操作;在所述第一容器实例为开启状态时,确定所述关于第一端口映射配置信息的更新情况对应有端口映射操作;在所述第一容器实例为关闭状态时,确定所述关于第一端口映射配置信息的更新情况未对应有端口映射操作。当然,也可以通过判断所述端口映射配置资源中是否存在与所述第一容器实例的名称对应的端口映射配置信息,确定所述关于第一端口映射配置信息的更新情况是否对应有端口映射操作;在所述端口映射配置资源中存在与所述第一容器实例的名称对应的端口映射配置信息时,确定所述关于第一端口映射配置信息的更新情况对应有端口映射操作;在所述端口映射配置资源中不存在与所述第一容器实例的名称对应的端口映射配置信息时,确定所述关于第一端口映射配置信息的更新情况未对应有端口映射操作。
在步骤203中,实际应用时,当所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作时,所述控制所述目标容器实例所在的节点执行所述端口映射变更操作,可以包括:
发送添加端口映射请求至所述目标容器实例所在的节点;所述添加端口映射请求用于控制所述节点根据本机端口的使用情况,为所述目标容器实例分配空闲的第一端口,并创建所述第一端口和所述目标容器实例的端口之间的转发规则,以完成所述第一端口和所述目标容器实例的端口之间的端口映射。
这里,所述目标容器实例所在的节点在接收到所述添加端口映射请求后,根据本机端口的使用情况,为所述目标容器实例随机分配一个空闲的端口(第一端口),并创建所述第一端口和所述目标容器实例的端口之间的转发规则,以完成所述第一端口和所述目标容器实例的端口之间的端口映射;同时,在为所述目标容器实例分配第一端口后,基于分配的第一端口生成变更操作记录信息,并将所述变更操作记录信息返回;如此,可以利用所述目标容器实例所在的节点返回的与所述添加端口映射操作相对应的变更操作记录信息更新负载均衡器中与所述目标容器实例对应的负载均衡规则。
在步骤203中,实际应用时,当所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作时,所述控制所述目标容器实例所在的节点执行所述端口映射变更操作,可以包括:
发送删除端口映射请求至所述目标容器实例所在的节点;所述删除端口映射请求用于控制所述节点根据所述删除端口映射请求确定所述目标容器实例占用的第二端口,释放所述第二端口,并删除所述第二端口和所述目标容器实例的端口之间的转发规则。
这里,所述目标容器实例所在的节点在接收到所述删除端口映射请求后,根据所述删除端口映射请求确定所述目标容器实例当前占用的端口(第二端口),释放第二端口,并删除所述第二端口和所述目标容器实例的端口之间的转发规则;同时,在释放第二端口后,基于释放的第二端口生成变更操作记录信息,并将所述变更操作记录信息返回;如此,可以利用所述目标容器实例所在的节点返回的与所述删除端口映射操作相对应的变更操作记录信息更新负载均衡器中与所述目标容器实例对应的负载均衡规则。
在步骤203中,实际应用时,当所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作时,所述控制所述目标容器实例所在的节点执行所述端口映射变更操作,可以包括:
发送修改端口映射请求至所述目标容器实例所在的节点;所述修改端口映射请求用于控制所述节点根据所述修改端口映射请求确定所述目标容器实例占用的第三端口,释放所述第三端口,删除所述第三端口和所述目标容器实例的端口之间的转发规则,并根据本机端口的使用情况,为所述目标容器实例分配空闲的第四端口,创建所述第四端口和所述目标容器实例的端口之间的转发规则,以完成所述第四端口和所述目标容器实例的端口之间的端口映射。
这里,所述目标容器实例所在的节点在接收到所述修改端口映射请求后,先根据所述修改端口映射请求确定所述目标容器实例当前占用的端口(第三端口),释放第三端口,并删除所述第三端口和所述目标容器实例的端口之间的转发规则;然后,再根据本机端口的使用情况,为所述目标容器实例随机分配一个空闲的端口(第四端口),并创建所述第四端口和所述目标容器实例的端口之间的转发规则,以完成所述第四端口和所述目标容器实例的端口之间的端口映射;同时,在为所述目标容器实例分配第四端口后,基于释放的第三端口和分配的第四端口生成变更操作记录信息,并将所述变更操作记录信息返回;如此,可以利用所述目标容器实例所在的节点返回的与所述修改端口映射操作相对应的变更操作记录信息更新负载均衡器中与所述目标容器实例对应的负载均衡规则。
实际应用时,如果监控到的是容器实例资源的更新情况,可以在容器实例资源中确定所述目标容器实例的名称,并根据所述目标容器实例的名称在端口映射配置资源中确定所述目标容器实例所在的节点;当然,如果监控到的是端口映射配置资源的更新情况,可以直接在端口映射配置资源中确定所述目标容器实例所在的节点。这里,所述容器实例资源中的容器实例信息还可以包含容器实例的IP地址;因此,还可以用容器实例的IP地址替换容器实例的名称,即根据所述目标容器实例的IP地址在端口映射配置资源中确定所述目标容器实例所在的节点。
实际应用时,所述添加端口映射请求、所述删除端口映射请求以及所述修改端口映射请求至少包含所述目标容器实例的IP地址;所述目标容器实例所在的节点可以根据所述添加端口映射请求、所述删除端口映射请求或所述修改端口映射请求在自身运行的至少一个容器实例中确定目标容器实例。
实际应用时,运行有容器实例的节点存储有历史变更操作记录信息,所述历史变更操作记录信息包含所述节点的历史端口分配信息和历史端口释放信息,并具体包含容器实例的端口、容器实例的IP地址、节点的端口以及节点的IP地址;在所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作或修改端口映射操作的情况下,所述目标容器实例所在的节点根据所述删除端口映射请求或所述修改端口映射请求确定所述目标容器实例占用的端口,可以包括:
所述目标容器实例所在的节点根据所述删除端口映射请求或所述修改端口映射请求确定所述目标容器实例的IP地址;
所述目标容器实例所在的节点根据所述目标容器实例的IP地址在所述历史变更操作记录信息中查询所述目标容器当前占用的端口。
这里,所述第二端口和所述第三端口即所述目标容器当前占用的端口。
实际应用时,所述转发规则可以包含相互映射的容器实例端口和宿主机端口,创建目标容器实例的端口和目标容器实例所在节点的端口之间的转发规则,可以完成目标容器实例的端口和目标容器实例所在节点的端口之间的端口映射;删除目标容器实例的端口和目标容器实例所在节点的端口之间的转发规则,可以释放目标容器实例所在节点的端口,即取消目标容器实例的端口和目标容器实例所在节点的端口之间的端口映射;容器实例端口可以由用户根据需要设置,所述转发规则可以是iptables规则或IPVS规则。
在步骤204中,实际应用时,所述利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则,可以包括:
利用所述变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则包含的流量转发目标地址。
这里,所述负载均衡器为Kubernetes集群中宿主机层面的专业负载均衡器,可以是硬件负载均衡器,比如F5负载均衡器或Array负载均衡器等;也可以是软件负载均衡器,比如Nginx、Linux虚拟服务器(LVS,Linux Virtual Server)或HAProxy等。所述负载均衡器用于基于负载均衡规则将Kubernetes集群的外部流量负载到运行有容器实例的节点的端口;具体地,一个应用对应多个负载均衡规则,所述多个负载均衡规则存储在所述负载均衡器中;针对所述多个负载均衡规则中的每个负载均衡规则,相应负载均衡规则对应属于所述应用的一个容器实例(后续的描述中记作第三容器实例);所述相应负载均衡规则包含流量转发目标地址,所述流量转发目标地址包含所述第三容器实例所在节点的IP地址以及所述第三容器实例的端口在所述第三容器实例所在节点映射的端口;如此,在更新负载均衡器中与所述目标容器实例对应的负载均衡规则包含的流量转发目标地址后,所述负载均衡器能够基于更新后的负载均衡规则将Kubernetes集群的外部流量负载到目标容器实例中,保证了容器实例间的负载均衡。
本发明实施例提供的信息处理方法,监控容器实例资源和端口映射配置资源;根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作;控制所述目标容器实例所在的节点执行所述端口映射变更操作,并得到相应的变更操作记录信息;利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则;如此,通过将容器实例配置与端口映射配置分离,能够在不影响容器实例状态的前提下实现端口映射的动态配置,进一步使得容器实例的数量不会受到节点数量的限制,并使得负载均衡器达到了容器实例细粒度的流量控制。
下面结合应用实施例对本发明再作进一步详细的描述。
图3为本应用实施例提供的信息处理方法涉及的Kubernetes网络中的组件以及各组件的连接结构示意图;如图3所示,本应用实施例提供的信息处理方法涉及的Kubernetes网络中的组件包括:Kubernetes的APIServer组件301、控制器302、端口资源管理组件303、规则组件304以及宿主机负载均衡器305。
具体地,APIServer组件301用于存储容器实例资源和端口映射配置资源,并对外提供针对容器实例资源和端口映射配置资源的增加、删除、修改的服务;所述端口映射配置资源是通过CRD资源的方式存储的;所述端口映射配置资源可以包含以下信息:需要映射的容器实例端口、容器实例端口监听的协议、容器实例端口所属应用的名称、容器实例端口所属应用的类型和配置ID等。实际应用时,当创建应用的容器实例时,会在容器实例模块中以标签的形式记录容器实例所属应用的名称以及容器实例所属应用的类型;也就是说,容器实例资源和端口映射配置资源可以通过容器实例所属应用的名称以及容器实例所属应用的类型进行对应。
控制器302用于同时监控APIServer组件301中的容器实例资源和端口映射配置资源,根据容器实例资源的变化或端口映射配置资源的变化调用各个宿主机(运行有容器实例的节点)的端口资源管理组件303,以进行端口映射的添加或删除。
端口资源管理组件303部署在Kubernetes集群的各个节点上,用于存储本机特定范围内(可以由用户根据需要设置)端口的使用情况,并管理本机特定范围内的端口分配与释放。
规则组件304同样部署在Kubernetes集群的各个节点上,是实现端口映射的添加或删除的组件;规则组件304用于根据从自身所在节点的端口资源管理组件303接收的端口分配结果,创建或删除与所述端口分配结果对应的转发规则,以完成端口映射的添加或删除;规则组件304可以为Kubernetes集群的外部客户端提供转发规则的RESTful接口,以实现基于转发规则的数据流量转发;实际应用时,所述转发规则可以是iptables规则或IPVS规则。
宿主机负载均衡器305(即上述负载均衡器)存储有负载均衡规则,用于基于负载均衡规则实现容器实例细粒度的流量控制。
实际应用时,宿主机负载均衡器305能够基于控制器302实现自动化的配置,即控制器302将容器实例对应的宿主机端口动态的配置到宿主机负载均衡器305中。具体地,一个应用对应一组负载均衡规则,对于这一组负载均衡规则,每条负载均衡规则对应所述应用的一个后端容器实例,所述负载均衡规则包含的转发目标地址为对应的容器实例所在节点的IP地址以及对应的容器实例在所在节点映射的端口(即hostPort);控制器302能够维护负载均衡规则的有效性,也就是说,在端口资源管理组件303完成端口的分配和释放后,端口资源管理组件303将相应的分配结果发送给控制器302;控制器302再将所述分配结果发送给宿主机负载均衡器305,以使宿主机负载均衡器305根据所述分配结果更新相应的负载均衡策略;如此,宿主机负载均衡器305基于控制器302对容器实例端口的自动配置,实现了容器实例细粒度的流量控制,保证了容器实例间的负载均衡。宿主机负载均衡器305与容器实例的连接结构如图4所示,外部流量通过宿主机负载均衡器305转发到代表单个容器实例的宿主机端口上。
本应用实施例提供的信息处理方法具体是这样实现的:
当控制器302监控到APIServer组件301中的容器实例资源发生变化时,控制器302判断端口映射配置资源中是否存在与变化的容器实例资源相对应的端口映射配置资源;若存在,控制器302利用与变化的容器实例资源相对应的端口映射配置资源确定变化的容器实例资源所在的节点,调用所述节点的端口资源管理组件303,以完成端口映射的变更;端口资源管理组件303在完成端口映射的变更后,生成变更记录发送给控制器302;控制器302将收到的所述变更记录发送给宿主机负载均衡器305,以使宿主机负载均衡器305根据所述变更记录更新所述变化的容器实例资源对应的负载均衡策略。
当控制器302监控到APIServer组件301中的端口映射配置资源发生变化时,控制器302在容器实例资源中确定与变化的端口映射配置资源相对应的容器实例资源,调用与变化的端口映射配置资源相对应的容器实例资源(可以是多个容器实例)所在节点的端口资源管理组件303,以完成端口映射的变更;端口资源管理组件303在完成端口映射的变更后,生成变更记录发送给控制器302;控制器302将收到的所述变更记录发送给宿主机负载均衡器305,以使宿主机负载均衡器305根据所述变更记录更新所述变化的容器实例资源对应的负载均衡策略。
这里,控制器302在调用端口资源管理组件303时,会向端口资源管理组件303发送请求信息,所述请求信息可以包括需要映射的容器实例IP地址以及端口映射配置数据等;所述容器实例IP地址可以在容器实例资源中查询得到。
当端口资源管理组件303接收到控制器302发送的添加端口映射的请求时,根据本机端口的使用情况为所述请求对应的容器实例分配空闲的端口,并记录分配结果,将所述分配结果发送到自身所在节点的规则组件304中,以进行端口映射的添加。这里,所述分配结果至少包含映射的端口与IP地址(即节点的端口和节点的IP地址)、以及被映射的端口与IP地址(即容器实例的端口和容器实例的IP地址);所述分配结果可以在需要释放端口时使用。
当端口资源管理组件303接收到控制器302发送的删除端口映射的请求时,在自身存储的历史分配结果中查询所述请求消息对应的历史分配结果,根据历史分配结果确定需要释放的端口,对确定的需要释放的端口进行释放;并将所述历史分配结果发送到自身所在节点的规则组件304中,以进行端口映射的删除。
这里,本应用实施例提供的信息处理方法的具体实现过程与图2所示的信息处理方法中步骤201至步骤204的具体实现过程相同,这里不多赘述。
本应用实施例提供的信息处理方法,具备以下优点:
第一,通过分别设置了容器实例资源和端口映射配置资源,实现了容器实例配置和端口映射配置的分离以及端口映射的动态配置;用户可以根据需要自行设置Kubernetes集群中节点的数量,解决了容器数量受节点数量限制的问题,即解决了容器实例网络到宿主机网络可能存在的规模瓶颈问题;另外,由于容器实例的配置和端口映射的配饰是分离的,所以还避免了容器实例端口映射变化导致容器实例的重启。
第二,通过宿主机负载均衡器达到容器实例级别细粒度的流量控制,为容器实例提供强大的安全功能、流量控制功能和管理功能。
为了实现本发明实施例的方法,本发明实施例还提供了一种信息处理装置,如图5所示,信息处理装置500包括监控单元501、第一处理单元502、第二处理单元503和第三处理单元504;其中,
所述监控单元501,用于监控容器实例资源和端口映射配置资源;
所述第一处理单元502,用于根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作;
所述第二处理单元503,用于控制所述目标容器实例所在的节点执行所述端口映射变更操作,并得到相应的变更操作记录信息;
所述第三处理单元504,用于利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则。
在一实施例中,所述监控单元501监控到容器实例资源中关于第一容器实例的更新情况时,所述第一处理单元502,具体用于:
将所述第一容器实例确定为目标容器实例;
在所述关于第一容器实例的更新情况为添加所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作;
在所述关于第一容器实例的更新情况为删除所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作;
在所述关于第一容器实例的更新情况为重启所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作。
在一实施例中,所述监控单元501监控到端口映射配置资源中关于第一端口映射配置信息的更新情况时,所述第一处理单元502,具体用于:
根据所述第一端口映射配置信息对应的第一标识信息,在所述容器实例资源中确定与所述第一标识信息对应的第二容器实例,将所述第二容器实例确定为目标容器实例;
在所述关于第一端口映射配置信息的更新情况为添加所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作;
在所述关于第一端口映射配置信息的更新情况为删除所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作;
在所述关于第一端口映射配置信息的更新情况为修改所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作。
在一实施例中,所述第一处理单元502确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作时,所述第二处理单元503,具体用于:
发送添加端口映射请求至所述目标容器实例所在的节点;所述添加端口映射请求用于控制所述节点根据本机端口的使用情况,为所述目标容器实例分配空闲的第一端口,并创建所述第一端口和所述目标容器实例的端口之间的转发规则,以完成所述第一端口和所述目标容器实例的端口之间的端口映射。
在一实施例中,所述第一处理单元502确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作时,所述第二处理单元503,具体用于:
发送删除端口映射请求至所述目标容器实例所在的节点;所述删除端口映射请求用于控制所述节点根据所述删除端口映射请求确定所述目标容器实例占用的第二端口,释放所述第二端口,并删除所述第二端口和所述目标容器实例的端口之间的转发规则。
在一实施例中,所述第一处理单元502确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作时,所述第二处理单元503,具体用于:
发送修改端口映射请求至所述目标容器实例所在的节点;所述修改端口映射请求用于控制所述节点根据所述修改端口映射请求确定所述目标容器实例占用的第三端口,释放所述第三端口,删除所述第三端口和所述目标容器实例的端口之间的转发规则,并根据本机端口的使用情况,为所述目标容器实例分配空闲的第四端口,创建所述第四端口和所述目标容器实例的端口之间的转发规则,以完成所述第四端口和所述目标容器实例的端口之间的端口映射。
在一实施例中,所述第三处理单元504,还用于:
利用所述变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则包含的流量转发目标地址。
其中,所述监控单元501、所述第一处理单元502、所述第二处理单元503和所述第三处理单元504的功能相当于上述应用实施例中控制器302的功能。
实际应用时,所述监控单元501、所述第一处理单元502、所述第二处理单元503和所述第三处理单元504可由信息处理装置500中的处理器结合通信接口实现;所述处理器可以是中央处理器(CPU,Central Processing Unit)、数字信号处理器(DSP,Digital SignalProcessor)、微控制单元(MCU,Microcontroller Unit)或可编程门阵列(FPGA,Field-Programmable Gate Array)。
需要说明的是:上述实施例提供的信息处理装置500在进行端口映射时,仅以上述各程序模块的划分进行举例说明,实际应用时,可以根据需要而将上述处理分配由不同的程序模块完成,即将终端的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的装置与信息处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
基于上述设备的硬件实现,本发明实施例还提供了一种信息处理装置,图6为本发明实施例的信息处理装置的硬件组成结构示意图,如图6所示,信息处理装置60包括存储器63、处理器62及存储在存储器63上并可在处理器62上运行的计算机程序,所述处理器62执行所述程序时实现上述一个或多个技术方案提供的方法。
具体地,位于信息处理装置60的处理器62执行所述程序时实现:监控容器实例资源和端口映射配置资源;根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作;控制所述目标容器实例所在的节点执行所述端口映射变更操作,并得到相应的变更操作记录信息;利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则。
需要说明的是,位于信息处理装置60的处理器62执行所述程序时实现的具体步骤已在上文详述,这里不再赘述。
可以理解,信息处理装置60还包括通信接口61,所述通信接口61用于和其它设备进行信息交互;同时,信息处理装置60中的各个组件通过总线系统64耦合在一起。可理解,总线系统64配置为实现这些组件之间的连接通信。总线系统64除包括数据总线之外,还包括电源总线、控制总线和状态信号总线等。
可以理解,本实施例中的存储器63可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,ReadOnly Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,RandomAccess Memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
上述本发明实施例揭示的方法可以应用于处理器62中,或者由处理器62实现。处理器62可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器62中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器62可以是通用处理器、DSP,或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器62可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器,处理器62读取存储器中的信息,结合其硬件完成前述方法的步骤。
本发明实施例还提供了一种存储介质,具体为计算机存储介质,更具体的为计算机可读存储介质。其上存储有计算机指令,即计算机程序,该计算机指令被处理器执行时上述一个或多个技术方案提供的方法。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和智能设备,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是:“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
另外,本发明实施例所记载的技术方案之间,在不冲突的情况下,可以任意组合。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。

Claims (8)

1.一种信息处理方法,其特征在于,包括:
监控容器实例资源和端口映射配置资源;
根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作;
控制所述目标容器实例所在的节点执行所述端口映射变更操作,并得到相应的变更操作记录信息;
利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则
其中,所述监控到容器实例资源中关于第一容器实例的更新情况;所述确定目标容器实例以及针对所述目标容器实例的端口映射变更操作,包括:
将所述第一容器实例确定为目标容器实例;
在所述关于第一容器实例的更新情况为添加所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作;
在所述关于第一容器实例的更新情况为删除所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作;
在所述关于第一容器实例的更新情况为重启所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作;
所述监控到端口映射配置资源中关于第一端口映射配置信息的更新情况;所述确定目标容器实例以及针对所述目标容器实例的端口映射变更操作,包括:
根据所述第一端口映射配置信息对应的第一标识信息,在所述容器实例资源中确定与所述第一标识信息对应的第二容器实例,将所述第二容器实例确定为目标容器实例;
在所述关于第一端口映射配置信息的更新情况为添加所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作;
在所述关于第一端口映射配置信息的更新情况为删除所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作;
在所述关于第一端口映射配置信息的更新情况为修改所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作。
2.根据权利要求1所述的方法,其特征在于,所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作,所述控制所述目标容器实例所在的节点执行所述端口映射变更操作,包括:
发送添加端口映射请求至所述目标容器实例所在的节点;所述添加端口映射请求用于控制所述节点根据本机端口的使用情况,为所述目标容器实例分配空闲的第一端口,并创建所述第一端口和所述目标容器实例的端口之间的转发规则,以完成所述第一端口和所述目标容器实例的端口之间的端口映射。
3.根据权利要求1所述的方法,其特征在于,所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作,所述控制所述目标容器实例所在的节点执行所述端口映射变更操作,包括:
发送删除端口映射请求至所述目标容器实例所在的节点;所述删除端口映射请求用于控制所述节点根据所述删除端口映射请求确定所述目标容器实例占用的第二端口,释放所述第二端口,并删除所述第二端口和所述目标容器实例的端口之间的转发规则。
4.根据权利要求1所述的方法,其特征在于,所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作,所述控制所述目标容器实例所在的节点执行所述端口映射变更操作,包括:
发送修改端口映射请求至所述目标容器实例所在的节点;所述修改端口映射请求用于控制所述节点根据所述修改端口映射请求确定所述目标容器实例占用的第三端口,释放所述第三端口,删除所述第三端口和所述目标容器实例的端口之间的转发规则,并根据本机端口的使用情况,为所述目标容器实例分配空闲的第四端口,创建所述第四端口和所述目标容器实例的端口之间的转发规则,以完成所述第四端口和所述目标容器实例的端口之间的端口映射。
5.根据权利要求1所述的方法,其特征在于,所述利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则,包括:
利用所述变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则包含的流量转发目标地址。
6.一种信息处理装置,其特征在于,包括:
监控单元,用于监控容器实例资源和端口映射配置资源;
第一处理单元,用于根据监控到的容器实例资源的更新情况或端口映射配置资源的更新情况,确定目标容器实例以及针对所述目标容器实例的端口映射变更操作;
第二处理单元,用于控制所述目标容器实例所在的节点执行所述端口映射变更操作,并得到相应的变更操作记录信息;
第三处理单元,用于利用得到的变更操作记录信息,更新负载均衡器中与所述目标容器实例对应的负载均衡规则;
其中,所述监控单元监控到容器实例资源中关于第一容器实例的更新情况时,所述第一处理单元,具体用于:
将所述第一容器实例确定为目标容器实例;
在所述关于第一容器实例的更新情况为添加所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作;
在所述关于第一容器实例的更新情况为删除所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作;
在所述关于第一容器实例的更新情况为重启所述第一容器实例时,确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作;
所述监控单元监控到端口映射配置资源中关于第一端口映射配置信息的更新情况时,所述第一处理单元,具体用于:
根据所述第一端口映射配置信息对应的第一标识信息,在所述容器实例资源中确定与所述第一标识信息对应的第二容器实例,将所述第二容器实例确定为目标容器实例;
在所述关于第一端口映射配置信息的更新情况为添加所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为添加端口映射操作;
在所述关于第一端口映射配置信息的更新情况为删除所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为删除端口映射操作;
在所述关于第一端口映射配置信息的更新情况为修改所述第一端口映射配置信息时,确定所述针对所述目标容器实例的端口映射变更操作为修改端口映射操作。
7.一种信息处理装置,其特征在于,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;
其中,所述处理器用于运行所述计算机程序时,执行权利要求1至5任一项所述方法的步骤。
8.一种存储介质,所述介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5任一项所述方法的步骤。
CN202010041861.XA 2020-01-15 2020-01-15 信息处理方法、装置以及存储介质 Active CN113127145B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010041861.XA CN113127145B (zh) 2020-01-15 2020-01-15 信息处理方法、装置以及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010041861.XA CN113127145B (zh) 2020-01-15 2020-01-15 信息处理方法、装置以及存储介质

Publications (2)

Publication Number Publication Date
CN113127145A CN113127145A (zh) 2021-07-16
CN113127145B true CN113127145B (zh) 2022-12-13

Family

ID=76771381

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010041861.XA Active CN113127145B (zh) 2020-01-15 2020-01-15 信息处理方法、装置以及存储介质

Country Status (1)

Country Link
CN (1) CN113127145B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105979009A (zh) * 2016-07-06 2016-09-28 乾云众创(北京)信息科技研究院有限公司 一种针对云应用容器的增加负载自动均衡方法
CN106790595A (zh) * 2016-12-29 2017-05-31 上海理想信息产业(集团)有限公司 一种Docker容器主动负载均衡装置及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105979009A (zh) * 2016-07-06 2016-09-28 乾云众创(北京)信息科技研究院有限公司 一种针对云应用容器的增加负载自动均衡方法
CN106790595A (zh) * 2016-12-29 2017-05-31 上海理想信息产业(集团)有限公司 一种Docker容器主动负载均衡装置及方法

Also Published As

Publication number Publication date
CN113127145A (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
US20240223612A1 (en) Method and system for virtual machine aware policy management
CN110198231B (zh) 用于多租户的容器网络管理方法和系统以及中间件
US10659471B2 (en) Method for virtual machine to access physical server in cloud computing system, apparatus, and system
US10375015B2 (en) Methods and system for allocating an IP address for an instance in a network function virtualization (NFV) system
US9749145B2 (en) Interoperability for distributed overlay virtual environment
US9999030B2 (en) Resource provisioning method
US10397132B2 (en) System and method for granting virtualized network function life cycle management
US11570277B2 (en) Configuration method and apparatus
CN111857873A (zh) 一种实现云原生容器网络的方法
CN109981493B (zh) 一种用于配置虚拟机网络的方法和装置
CN114095430B (zh) 一种访问报文的处理方法、系统及工作节点
US11316916B2 (en) Packet processing method, related device, and computer storage medium
CN111585887A (zh) 基于多个网络的通信方法、装置、电子设备及存储介质
US20220350637A1 (en) Virtual machine deployment method and related apparatus
US20230205505A1 (en) Computer system, container management method, and apparatus
CN113127145B (zh) 信息处理方法、装置以及存储介质
CN112468308A (zh) 虚拟局域网业务管理方法、虚拟局域网全局管理设备
EP4102788A1 (en) Storage system and request processing method, and switch
CN112565158B (zh) 数据访问方法、装置、系统、电子设备及计算机可读介质
US11909624B2 (en) Communication method, apparatus, device, system, and computer-readable storage medium
WO2024037619A1 (zh) 一种基于云计算技术的虚拟实例创建方法和云管理平台
CN113746653B (zh) 网关配置方法、客户机、服务器和存储介质
CN118694746A (zh) Pod的IP地址分配的方法、装置、介质及电子设备
CN117319204A (zh) 一种日志管理方法及系统
CN116633901A (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