CN114500523A - 一种基于容器云平台的固定ip应用发布方法 - Google Patents
一种基于容器云平台的固定ip应用发布方法 Download PDFInfo
- Publication number
- CN114500523A CN114500523A CN202111427570.5A CN202111427570A CN114500523A CN 114500523 A CN114500523 A CN 114500523A CN 202111427570 A CN202111427570 A CN 202111427570A CN 114500523 A CN114500523 A CN 114500523A
- Authority
- CN
- China
- Prior art keywords
- fixed
- application
- container
- resource pool
- resource
- 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
- 238000000034 method Methods 0.000 title claims abstract description 27
- 241000322338 Loeseliastrum Species 0.000 claims abstract description 18
- 230000027455 binding Effects 0.000 claims abstract description 4
- 230000000875 corresponding effect Effects 0.000 claims description 55
- 230000003068 static effect Effects 0.000 claims description 13
- BKCJZNIZRWYHBN-UHFFFAOYSA-N Isophosphamide mustard Chemical compound ClCCNP(=O)(O)NCCCl BKCJZNIZRWYHBN-UHFFFAOYSA-N 0.000 claims description 6
- 108010026228 mRNA guanylyltransferase Proteins 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 4
- 230000008859 change Effects 0.000 claims description 2
- 238000011084 recovery Methods 0.000 abstract description 4
- 238000013507 mapping Methods 0.000 abstract description 2
- 238000007726 management method Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- 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
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/54—Organization of routing tables
-
- 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/58—Association of routers
- H04L45/586—Association of routers of virtual routers
-
- 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
-
- 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
Abstract
本发明涉及一种基于容器云平台的固定IP应用发布方法,包括:部署Calico作为Kubernetes集群网络插件,并为各Kubernetes业务集群分配动态IP资源池和固定IP资源池,并部署关于固定IP管理自定义资源的自定义对象;变更窗口期前,用户登录多数据中心容器云管理平台进行应用模板构建,并将构建的应用模板设定为可发布状态,通过选择可发布状态的应用模板,结合动态IP资源池、固定IP资源池以及关于固定IP管理自定义资源的自定义进行发布操作。与现有技术相比,本发明具有无需绑定特定主机且无需映射主机特定端口、IP分配和回收效率高、易用性可有效提升等优点。
Description
技术领域
本发明涉及云容器技术领域,尤其是涉及一种基于容器云平台的固定IP应用发布方法。
背景技术
随着容器云平台技术的基本成熟,Kubernetes以其强大的编排能力和拓展能力已成为容器管理领域的事实标准。越来越多的业务***开始或已经从传统物理机、虚拟机向基于Kubernetes技术的容器云平台进行迁移。Kubernetes所提出的集群内所有容器(Pod)可以互联互通的扁平化网络模型要求一容器一IP(IP-Per-Pod),基于此机制实现的Kubernetes容器集群网络插件一般会配置集群虚拟容器IP资源池,因此容器地址有两个典型的特征:
1.容器地址为虚拟地址,无法从集群外部路由直达,即集群外用户无法通过容器IP直接访问集群内容器;
2.容器地址会伴随容器的生命周期变化(创建、重建、销毁等)而变化,即容器地址为动态IP,非固定(静态)IP。
然而由于历史原因,在业务***从传统服务器向容器迁移的过程中,很多应用包括有状态服务、访问策略控制、服务发现、点对点文件传输等都是以IP作为实例唯一标识,如何满足这些应用在不重构或改造的情况下进行平滑迁移的需求,这就要求容器(Pod)实例的IP能够固定并且可从Kubernetes集群外访问直通,也就是说容器云平台需要支持固定容器IP的应用发布方法。
现有的技术方案一般有三种:
一、采用hostPort的发布方式,直接将容器的端口与所调度的节点上的端口进行映射,用户可以在集群外通过宿主机的IP加端口来访问集群内的容器。
二、在应用发布后为应用创建并绑定一个NodePort类型的路由服务(service),并为该路由服务指定一个规定范围内的端口号(30000~32767),用户在集群外可以通过集群内任意主机的IP加指定的NodePort端口访问到对应的容器。
三、采用特定的Kubernetes集群CNI网络插件,通过一定的配置实现容器网络与传统物理网络的二层或三层拉通,容器地址使用真实的物理IP,从而使得容器IP在集群外可路由可达。基于此,用户在进行应用发布时在资源配置文件(YAML)中通过注解(anotation)显示的声明容器IP或IP段进行固定IP的应用发布操作。
然而上述三种方案存在以下问题:
方案一:hostPort+指定计算节点的发布方式
1、应用每次发布、更新时都可能被调度到不同的计算节点上,所以从集群外通过宿主机的IP访问容器时,访问地址可能会发生变化,用户必须自己维护容器与所在宿主机的对应关系;
2、外部访问需要使用计算节点的主机端口,用户需要维护应用在主机上的映射端口,避免主机端口使用冲突;
3、容器与计算节点绑定,故障场景下容器自迁移范围受限,客观上限制了Kubernetes的调度能力和容器的自愈能力。
方案二:常规发布+绑定NodePort服务
1、NodePort路由服务的创建需要遵循特定的端口范围,无法满足应用想要的常用端口,针对必须使用特殊端口的应用***不满足使用需求;
2、NodePort路由服务向后端应用容器进行流量转发依赖Kubeproxy和IPVS实现,是一种基于TCP的4层负载均衡方式,对于基于HTTP的7层访问控制尤其有路由规则控制需求的应用访问场景无法有效支持;
3、用户必须维护NodePort路由服务端口与应用的对应关系。
方案三:CNI网络插件+使用YAML固定容器IP发布
1、固定IP的分配、更新、回收等操作需要人工手动进行,主要依赖平台管理员以表格的形式记录和维护,发生重复分配等错误的概率较高;
2、YAML作为创建Kubernetes资源对象的配置文件,各种资源的定义属性众多,纷繁复杂,用户使用门槛、维护成本较高。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种基于容器云平台的固定IP应用发布方法。
本发明的目的可以通过以下技术方案来实现:
一种基于容器云平台的固定IP应用发布方法,该方法结合Calico与Kubernetes实现,该方法包括:
部署Calico作为Kubernetes集群网络插件,并为各Kubernetes业务集群分配动态IP资源池和固定IP资源池,并部署关于固定IP管理自定义资源的自定义对象;
变更窗口期前,用户登录多数据中心容器云管理平台进行应用模板构建,并将构建的应用模板设定为可发布状态,通过选择可发布状态的应用模板,结合动态IP资源池、固定IP资源池以及关于固定IP管理自定义资源的自定义进行发布操作。
在本发明方法中,所述固定IP资源池设有独立的固定IP控制器,所述固定IP控制器用于监听Kubernetes集群的API请求,进行固定IP的分配并更新固定IP资源定义中记录的IP使用状态。所述关于固定IP管理自定义资源的自定义对象包括所述固定IP控制器固定IP资源定义,所述固定IP资源定义用于记录已分配的固定IP的使用状态并将使用状态存储至集群的ETCD数据库的。
所述动态IP资源池用于提供非固定IP发布方式下Calico IPAM为容器自动分配的IP,所述固定IP资源池用于提供固定IP发布方式下所述固定IP控制器为预发布容器自动分配的IP。
进一步地,所述动态IP资源池和所述固定IP资源池均为真实IP网段,二者通过BGP协议与物理网络进行路由信息交换。
进一步地,变更窗口期前,用户登录多数据中心容器云管理平台进行应用模板构建的具体内容为:
a1)用户登录容器云平台进入模板管理页面,选择新建应用模板,在表单界面中填写应用名称,选择计划发布的业务集群,选定固定IP的发布模式并填写计划发布的实例数量。
a2)容器云平台根据用户选择的业务集群向对应Kubernetes业务集群的APIServer发送固定IP获取请求,改请求为前端的异步请求。
a3)当所述固定IP控制器监听到固定IP获取请求,则根据应用名称查询是否有对应的StaticIP CR记录,若没有,则创建一条新的CR记录,所述StaticIP CR记录为固定IP分配的数据记录。
a4)所述固定IP控制器通过数据比对算法比对固定IP资源池和StaticIP CR数据记录中IP的条目,并根据用户填写的计划发布的实例数量从固定IP资源池中随机获取对应数量的未记录在StaticIP CR记录中的IP,并将其返回至前端。
优选地,采用随机分配算法从固定IP资源池中随机获取对应数量的未记录在StaticIP CR记录中的IP,并将其返回至前端。
a5)前端将获取到的固定IP控制器分配的IP自动填充至建模表单,同时固定IP控制器将这些新分配出去的IP更新至相应的StaticIP CR记录中,并将这些IP在StaticIP CR记录里的状态更新为已分配。
其中,将构建的应用模板进行上架的具体内容为:
用户根据获取到的IP提前申请开通相应的防火墙策略,并根据应用模板的创建引导完成配置填充后,将模板置为可发布状态,等待变更窗口期进行应用发布操作。
进一步地,通过选择可发布状态的应用模板,结合动态IP资源池、固定IP资源池以及关于固定IP管理自定义资源的自定义进行发布操作的具体步骤包括:
b1)容器云平台根据用户选择的应用模板,将表单信息自动转换成可与Kubernetes集***互的YAML配置,将可发布状态的应用模板中分配的IP作为配置的一部分,以anotation注解的形式通过报文传递给对应Kubernetes业务集群的API Server进行应用发布;相应Kubernetes业务集群的资源控制器监听到应用创建的请求后,开始创建应用容器。
b2)Calico IPAM根据YAML配置中指定的IP和实例数量执行容器与IP的绑定动作。
b3)固定IP控制器监听Kubernetes资源和对应容器实例的变化,并作出对应动作。
进一步地,步骤b3)中,作出的对应动作包括:
b31)若容器实例不为零,则将StaticIP CR记录中对应IP的状态更新为已使用状态,并关联容器实例对应的命名空间、应用***、应用容器以及容器所在计算节点,以供集群管理员随时监控IP使用状态;
b32)若容器实例为零,且存在对应的ReplicaSet或StatefulSet资源对象,则将StaticIP CR记录中对应IP的状态重新更新为已分配状态,并清除CR记录中对应的应用容器以及容器所在计算节点;
b33)若容器实例为零,且不存在对应的ReplicaSet或StatefulSet资源对象,则清除对应的StaticIP CR记录。
本发明提供的基于容器云平台的固定IP应用发布方法,相较于现有技术至少包括如下有益效果:
一、本发明采用Calico作为Kubernetes集群网络插件,打通了容器网络与物理网络,通过规划动态静态两个子网,满足不同发布模式下一容器一IP的需求,也确保了固定IP的访问模式下被访问容器无需绑定特定主机且无需映射主机特定端口。
二、通过拓展Kubernetes资源对象,以自定义资源定义的方式自主实现了对固定IP控制器和固定IP资源定义,配合容器云平台的应用发布功能和集群子网管理功能实现了容器IP生命周期的自动化管理,避免了固定IP的人工分配和记录,有效提升了IP分配和回收的效率,并从根源上解决了过往发生的IP漏发、重分等问题。
三、通过对Kubernetes原生的资源定义进行规约,将复杂的资源配置封装成引导式的、表单化的UI模板,用户在前端页面通过元素点选、字段填充等简单操作即可完成应用建模,并一键化进行应用发布,无需再手工编写和维护属性繁多的YAML文件,降低了使用门槛,提升了易用性。
附图说明
图1为实施例中本发明基于容器云平台的固定IP应用发布方法的流程示意图;
图2为实施例中本发明基于容器云平台的固定IP应用发布方法的IP应用发布原理图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
实施例
本发明涉及一种基于容器云平台的固定IP应用发布方法,该方法基于Kubernetes和Calico技术实现,如图1所示,本发明方法分为两个阶段,具体过程包括:
一、集群部署阶段,该阶段包括下列步骤:
S101:部署Calico作为Kubernetes集群网络插件。
Calico是一个纯三层的数据中心网络方案,支持使用BGP(Border GatewayProtocol)动态协议进行路由交换。BGP模式下Calico使用Kubernetes集群的各个计算节点作为虚拟路由器来维护主机上的容器路由信息表,继而通过BGP协议向整个Calico网络内传播实现集群内容器路由信息的相互交换,在配置路由反射器(Route Reflector)并与开启BGP协议的物理网络核心交换机(或路由器)建立BGP邻居的情况下,可将容器IP向整个物理网络进行宣告并进行路由交换从而实现集群内容器向集群外暴露,即集群外向集群内容器的路由可达。
S102:为各个Kubernetes业务集群分配IP资源池,包括动态IP资源池和静态IP资源池两种,即两个subnet子网。
在本发明中,静态IP资源池设有独立的自主设计的静态(固定)IP控制器(StaticIPcontrller)。
在本发明中,其中一个IP资源池是动态IP资源池(DynamicIPPool),该动态IP资源池作为常规发布(非固定IP发布)方式下Calico IPAM为容器自动分配IP使用。第二个是静态(固定)IP资源池(StaticIPPool),该静态IP资源池作为固定IP发布方式下本发明自主设计的静态(固定)IP控制器(StaticIPcontrller)为预发布容器自动分配IP使用。两个子网均为事先规划好的真实IP网段,可通过BGP协议与物理网络进行路由信息交换。
S103:在各Kubernetes业务集群中部署本发明中关于固定IP管理自定义资源定义对象(CRD,Custom Resource Defination),包括静态(固定)IP控制器StaticIPController和静态IP资源定义(StaticIPCRD,Static Custom Resource Definition)。
作为按照Kubernetes规范自主开发的资源定义拓展,StaticIPCRD用来记录已分配的固定IP的使用状态并存储到集群的ETCD数据库,StaticIPController通过监听Kubernetes的API请求进行固定IP的分配并更新StaticIPCRD中记录的IP使用状态。
二、应用部署阶段,该阶段包括下列步骤:
S201:变更窗口期前,用户在多数据中心容器云管理平台(以下简称容器云平台或CMP)进行应用建模。如图2所示,具体流程为:
1.1)用户登录容器云平台进入模板管理页面,选择新建应用模板,在引导式、可视化的表单界面中填写应用名称、选择计划发布的业务集群、选定固定IP的发布模式并填写计划发布的实例数量。
1.2)平台根据用户选择的业务集群向对应Kubernetes业务集群的API Server发送固定IP获取请求,此请求是一个前端的异步请求,不影响用户进行应用建模的其他操作。
1.3)StaticIPController监听到该请求,根据应用名称查询是否有对应的StaticIP CR数据记录,若没有,则创建一条新的CR记录。在本发明中,CR(CustomResource),对应上述自定义的CRD(Custom Resource Definition),即一条静态IP分配的数据记录。
1.4)StaticIPController通过数据比对算法比对StaticIPPool和StaticIP CR中IP的条目,并根据用户填写的计划发布的实例数量使用随机分配算法从StaticIPPool中随机获取对应数量的未在StaticIP CR记录中的IP,并将其返回给前端。
1.5)前端将获取到的StaticIPController分配的IP自动填充到建模表单,同时StaticIPController会将这些新分配出去的IP更新到相应的StaticIP CR记录中,此时这些IP在StaticIP CR记录里的状态为assigned(已分配),不会关联任何命名空间、应用***和应用容器。
1.6)用户可根据获取到的IP提前申请开通相应的防火墙策略。
1.7)用户根据应用模板的创建引导完成其他诸如容器规格、容器镜像、健康检查等配置填充后,可将模板置为上架状态(即可发布状态)等待变更窗口期进行应用发布操作。
S202、变更窗口期内,用户登录容器云平台进入应用管理页面,选择S201已上架的应用模板进行一键发布操作。详细步骤包括:
2.1)容器云平台根据用户选择的应用模板,将表单信息自动转换成可与Kubernetes集***互的YAML配置,S201中分配的IP作为配置的一部分,以anotation注解(例如cni.projectcalico.org/ipAddrs或cni.projectcalico.org/ipv4pools等)的形式通过报文传递给对应Kubernetes业务集群的API Server进行应用发布;cni.projectcalico.org/ipAddrs适用于单个容器固定IP,cni.projectcalico.org/ipv4pools适用于多个容器固定IP,平台将根据用户计划创建的实例数量自动选择注解方式。
2.2)相应Kubernetes业务集群的资源控制器监听到应用创建的请求,开始创建应用容器。
2.3)应用容器创建阶段,Calico IPAM会根据YAML配置中指定的IP和实例数量执行容器与IP的绑定动作;即使应用容器发生重启、迁移等情况Calico也会执行IP与容器的重新绑定,确保容器始终使用固定IP。
2.4)StaticIPController监听Kubernetes资源和对应容器实例的变化,并作出对应动作。具体的对应操作包括:
2.4.1)若容器实例不为0,则将StaticIP CR记录中对应IP的状态更新为used(已使用),并关联容器实例对应的命名空间、应用***和应用容器、容器所在计算节点等信息方便集群管理员随时监控IP使用状态。
2.4.2)若容器实例为0,但存在对应的ReplicaSet或StatefulSet资源对象,则将StaticIP CR记录中对应IP的状态重新更新为assigned(已分配),并清除CR记录中对应的应用容器、容器所在计算节点等信息。
2.4.3)若容器实例为0,且不存在对应的ReplicaSet或StatefulSet资源对象,则清除对应的StaticIP CR记录。
综上所述,本发明采用Calico作为Kubernetes集群网络插件,打通了容器网络与物理网络,通过规划动态静态两个子网,满足不同发布模式下一容器一IP的需求,也确保了固定IP的访问模式下被访问容器无需绑定特定主机且无需映射主机特定端口。通过拓展Kubernetes资源对象,以自定义资源定义(CRD,CustomResourceDefination)的方式自主实现了StaticIPController和StaticIPCRD,配合容器云平台的应用发布功能和集群子网管理功能实现了容器IP生命周期的自动化管理,避免了固定IP的人工分配和记录,有效提升了IP分配和回收的效率,并从根源上解决了过往发生的IP漏发、重分等问题。
另外,本发明通过对Kubernetes原生的资源定义进行规约,将复杂的资源配置封装成引导式的、表单化的UI模板,用户在前端页面通过元素点选、字段填充等简单操作即可完成应用建模,并一键化进行应用发布,无需再手工编写和维护属性繁多的YAML文件,降低了使用门槛,提升了易用性。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的工作人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种基于容器云平台的固定IP应用发布方法,其特征在于,包括:
部署Calico作为Kubernetes集群网络插件,并为各Kubernetes业务集群分配动态IP资源池和固定IP资源池,并部署关于固定IP管理自定义资源的自定义对象;
变更窗口期前,用户登录多数据中心容器云管理平台进行应用模板构建,并将构建的应用模板设定为可发布状态,通过选择可发布状态的应用模板,结合动态IP资源池、固定IP资源池以及关于固定IP管理自定义资源的自定义进行发布操作。
2.根据权利要求1所述的基于容器云平台的固定IP应用发布方法,其特征在于,所述固定IP资源池设有独立的固定IP控制器,所述固定IP控制器监听Kubernetes集群的API请求,进行固定IP的分配并更新固定IP资源定义中记录的IP使用状态。
3.根据权利要求2所述的基于容器云平台的固定IP应用发布方法,其特征在于,所述关于固定IP管理自定义资源的自定义对象包括所述固定IP控制器和用以记录已分配的固定IP的使用状态并将使用状态存储至集群的ETCD数据库的固定IP资源定义。
4.根据权利要求3所述的基于容器云平台的固定IP应用发布方法,其特征在于,所述动态IP资源池用于提供非固定IP发布方式下Calico IPAM为容器自动分配的IP,所述固定IP资源池用于提供固定IP发布方式下所述固定IP控制器为预发布容器自动分配的IP。
5.根据权利要求1所述的基于容器云平台的固定IP应用发布方法,其特征在于,所述动态IP资源池和所述固定IP资源池均为真实IP网段,二者通过BGP协议与物理网络进行路由信息交换。
6.根据权利要求3所述的基于容器云平台的固定IP应用发布方法,其特征在于,变更窗口期前,用户登录多数据中心容器云管理平台进行应用模板构建的具体内容为:
a1)用户登录容器云平台进入模板管理页面,选择新建应用模板,在表单界面中填写应用名称,选择计划发布的业务集群,选定固定IP的发布模式并填写计划发布的实例数量;
a2)容器云平台根据用户选择的业务集群向对应Kubernetes业务集群的API Server发送固定IP获取请求,改请求为前端的异步请求;
a3)当所述固定IP控制器监听到固定IP获取请求,则根据应用名称查询是否有对应的StaticIP CR记录,若没有,则创建一条新的CR记录,所述StaticIP CR记录为固定IP分配的数据记录;
a4)所述固定IP控制器通过数据比对算法比对固定IP资源池和StaticIP CR数据记录中IP的条目,并根据用户填写的计划发布的实例数量从固定IP资源池中随机获取对应数量的未记录在StaticIP CR记录中的IP,并将其返回至前端;
a5)前端将获取到的固定IP控制器分配的IP自动填充至建模表单,同时固定IP控制器将这些新分配出去的IP更新至相应的StaticIP CR记录中,并将这些IP在StaticIP CR记录里的状态更新为已分配。
7.根据权利要求6所述的基于容器云平台的固定IP应用发布方法,其特征在于,将构建的应用模板进行上架的具体内容为:
用户根据获取到的IP提前申请开通相应的防火墙策略,并根据应用模板的创建引导完成配置填充后,将模板置为可发布状态,等待变更窗口期进行应用发布操作。
8.根据权利要求7所述的基于容器云平台的固定IP应用发布方法,其特征在于,通过选择可发布状态的应用模板,结合动态IP资源池、固定IP资源池以及关于固定IP管理自定义资源的自定义进行发布操作的具体步骤包括:
b1)容器云平台根据用户选择的应用模板,将表单信息自动转换成可与Kubernetes集***互的YAML配置,将可发布状态的应用模板中分配的IP作为配置的一部分,以anotation注解的形式通过报文传递给对应Kubernetes业务集群的API Server进行应用发布;相应Kubernetes业务集群的资源控制器监听到应用创建的请求后,开始创建应用容器;
b2)Calico IPAM根据YAML配置中指定的IP和实例数量执行容器与IP的绑定动作;
b3)固定IP控制器监听Kubernetes资源和对应容器实例的变化,并作出对应动作。
9.根据权利要求8所述的基于容器云平台的固定IP应用发布方法,其特征在于,步骤b3)中,作出的对应动作包括:
b31)若容器实例不为零,则将StaticIP CR记录中对应IP的状态更新为已使用状态,并关联容器实例对应的命名空间、应用***、应用容器以及容器所在计算节点,以供集群管理员随时监控IP使用状态;
b32)若容器实例为零,且存在对应的ReplicaSet或StatefulSet资源对象,则将StaticIP CR记录中对应IP的状态重新更新为已分配状态,并清除CR记录中对应的应用容器以及容器所在计算节点;
b33)若容器实例为零,且不存在对应的ReplicaSet或StatefulSet资源对象,则清除对应的StaticIP CR记录。
10.根据权利要求6所述的基于容器云平台的固定IP应用发布方法,其特征在于,步骤a4)中,采用随机分配算法从固定IP资源池中随机获取对应数量的未记录在StaticIP CR记录中的IP,并将其返回至前端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111427570.5A CN114500523B (zh) | 2021-11-29 | 2021-11-29 | 一种基于容器云平台的固定ip应用发布方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111427570.5A CN114500523B (zh) | 2021-11-29 | 2021-11-29 | 一种基于容器云平台的固定ip应用发布方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114500523A true CN114500523A (zh) | 2022-05-13 |
CN114500523B CN114500523B (zh) | 2024-04-26 |
Family
ID=81493117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111427570.5A Active CN114500523B (zh) | 2021-11-29 | 2021-11-29 | 一种基于容器云平台的固定ip应用发布方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114500523B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168057A (zh) * | 2022-09-02 | 2022-10-11 | 浙江大华技术股份有限公司 | 基于k8s集群的资源调度方法及装置 |
CN115225612A (zh) * | 2022-06-29 | 2022-10-21 | 济南浪潮数据技术有限公司 | 一种k8s集群预留ip的管理方法、装置、设备及介质 |
CN115473766A (zh) * | 2022-08-22 | 2022-12-13 | 苏州思萃工业互联网技术研究所有限公司 | 一种基于分布式网关的vip实现方法和*** |
CN116170341A (zh) * | 2022-12-23 | 2023-05-26 | 中国联合网络通信集团有限公司 | 虚拟化平台监控方法、设备、***及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580083A (zh) * | 2017-09-20 | 2018-01-12 | 北京京东尚科信息技术有限公司 | 一种容器ip地址分配的方法和*** |
WO2020212998A1 (en) * | 2019-04-17 | 2020-10-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Network address allocation in a virtual layer 2 domain spanning across multiple container clusters |
CN111857873A (zh) * | 2020-07-15 | 2020-10-30 | 浪潮云信息技术股份公司 | 一种实现云原生容器网络的方法 |
-
2021
- 2021-11-29 CN CN202111427570.5A patent/CN114500523B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107580083A (zh) * | 2017-09-20 | 2018-01-12 | 北京京东尚科信息技术有限公司 | 一种容器ip地址分配的方法和*** |
WO2020212998A1 (en) * | 2019-04-17 | 2020-10-22 | Telefonaktiebolaget Lm Ericsson (Publ) | Network address allocation in a virtual layer 2 domain spanning across multiple container clusters |
CN111857873A (zh) * | 2020-07-15 | 2020-10-30 | 浪潮云信息技术股份公司 | 一种实现云原生容器网络的方法 |
Non-Patent Citations (1)
Title |
---|
SPIKE CURTIS: "spire-demo/20-calico.yaml", pages 1 - 774, Retrieved from the Internet <URL:https://github.com/projectcalico/spire-demo/blob/master/20-calico.yaml> * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115225612A (zh) * | 2022-06-29 | 2022-10-21 | 济南浪潮数据技术有限公司 | 一种k8s集群预留ip的管理方法、装置、设备及介质 |
CN115225612B (zh) * | 2022-06-29 | 2023-11-14 | 济南浪潮数据技术有限公司 | 一种k8s集群预留ip的管理方法、装置、设备及介质 |
CN115473766A (zh) * | 2022-08-22 | 2022-12-13 | 苏州思萃工业互联网技术研究所有限公司 | 一种基于分布式网关的vip实现方法和*** |
CN115473766B (zh) * | 2022-08-22 | 2024-01-26 | 苏州思萃工业互联网技术研究所有限公司 | 一种基于分布式网关的vip实现方法和*** |
CN115168057A (zh) * | 2022-09-02 | 2022-10-11 | 浙江大华技术股份有限公司 | 基于k8s集群的资源调度方法及装置 |
CN115168057B (zh) * | 2022-09-02 | 2022-12-20 | 浙江大华技术股份有限公司 | 基于k8s集群的资源调度方法及装置 |
CN116170341A (zh) * | 2022-12-23 | 2023-05-26 | 中国联合网络通信集团有限公司 | 虚拟化平台监控方法、设备、***及存储介质 |
CN116170341B (zh) * | 2022-12-23 | 2024-04-09 | 中国联合网络通信集团有限公司 | 虚拟化平台监控方法、设备、***及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114500523B (zh) | 2024-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114500523B (zh) | 一种基于容器云平台的固定ip应用发布方法 | |
US9999030B2 (en) | Resource provisioning method | |
CN112532675B (zh) | 一种网络边缘计算***的创建方法、装置及介质 | |
CN103997414B (zh) | 生成配置信息的方法和网络控制单元 | |
EP2989751B1 (en) | Network resource matching | |
CN106464528B (zh) | 用于通信网络中的无接触编配的方法、介质、及装置 | |
JP5860320B2 (ja) | 仮想マシン環境のためのクラスタシステム提供の方法及び装置 | |
CN104486445B (zh) | 一种基于云平台的分布式可扩展资源监控*** | |
CN102577256B (zh) | 在虚拟化网络基础设施情况下用于透明云计算的方法和设备 | |
CN107947961A (zh) | 基于SDN的Kubernetes网络管理***与方法 | |
CN106126318A (zh) | 一种Openstack云平台中虚拟机的动态迁移方法 | |
CN109085999B (zh) | 数据处理方法及处理*** | |
CN103078965B (zh) | 虚拟机的ip地址管理方法 | |
CN112532669B (zh) | 一种网络边缘计算方法、装置及介质 | |
CN104767676A (zh) | Sdn网络中的数据报文转发方法和*** | |
CN108632063B (zh) | 管理网络切片实例的方法、装置和*** | |
CN110138606A (zh) | 容器网络配置方法及*** | |
WO2016106486A1 (en) | Method and apparatus for configuring a communication system | |
CN114237812A (zh) | 容器网络管理*** | |
CN107590033A (zh) | 一种创建docker容器的方法、装置和*** | |
CN105704042A (zh) | 报文处理方法、bng及bng集群*** | |
CN107276826A (zh) | 一种容器网络配置方法和装置 | |
CN101827039A (zh) | 一种负载分担的方法和设备 | |
CN108429824A (zh) | 一种地址分配方法及装置 | |
CN108574705A (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 |