一种基于容器云平台的固定IP应用发布方法技术

技术编号:33526937 阅读:13 留言:0更新日期:2022-05-19 01:50
本发明专利技术涉及一种基于容器云平台的固定IP应用发布方法,包括:部署Calico作为Kubernetes集群网络插件,并为各Kubernetes业务集群分配动态IP资源池和固定IP资源池,并部署关于固定IP管理自定义资源的自定义对象;变更窗口期前,用户登录多数据中心容器云管理平台进行应用模板构建,并将构建的应用模板设定为可发布状态,通过选择可发布状态的应用模板,结合动态IP资源池、固定IP资源池以及关于固定IP管理自定义资源的自定义进行发布操作。与现有技术相比,本发明专利技术具有无需绑定特定主机且无需映射主机特定端口、IP分配和回收效率高、易用性可有效提升等优点。易用性可有效提升等优点。易用性可有效提升等优点。

【技术实现步骤摘要】
一种基于容器云平台的固定IP应用发布方法


[0001]本专利技术涉及云容器
,尤其是涉及一种基于容器云平台的固定IP应用发布方法。

技术介绍

[0002]随着容器云平台技术的基本成熟,Kubernetes以其强大的编排能力和拓展能力已成为容器管理领域的事实标准。越来越多的业务系统开始或已经从传统物理机、虚拟机向基于Kubernetes技术的容器云平台进行迁移。Kubernetes所提出的集群内所有容器(Pod)可以互联互通的扁平化网络模型要求一容器一IP(IP

Per

Pod),基于此机制实现的Kubernetes容器集群网络插件一般会配置集群虚拟容器IP资源池,因此容器地址有两个典型的特征:
[0003]1.容器地址为虚拟地址,无法从集群外部路由直达,即集群外用户无法通过容器IP直接访问集群内容器;
[0004]2.容器地址会伴随容器的生命周期变化(创建、重建、销毁等)而变化,即容器地址为动态IP,非固定(静态)IP。
[0005]然而由于历史原因,在业务系统从传统服务器向容器迁移的过程中,很多应用包括有状态服务、访问策略控制、服务发现、点对点文件传输等都是以IP作为实例唯一标识,如何满足这些应用在不重构或改造的情况下进行平滑迁移的需求,这就要求容器(Pod)实例的IP能够固定并且可从Kubernetes集群外访问直通,也就是说容器云平台需要支持固定容器IP的应用发布方法。
[0006]现有的技术方案一般有三种:
[0007]一、采用hostPort的发布方式,直接将容器的端口与所调度的节点上的端口进行映射,用户可以在集群外通过宿主机的IP加端口来访问集群内的容器。
[0008]二、在应用发布后为应用创建并绑定一个NodePort类型的路由服务(service),并为该路由服务指定一个规定范围内的端口号(30000~32767),用户在集群外可以通过集群内任意主机的IP加指定的NodePort端口访问到对应的容器。
[0009]三、采用特定的Kubernetes集群CNI网络插件,通过一定的配置实现容器网络与传统物理网络的二层或三层拉通,容器地址使用真实的物理IP,从而使得容器IP在集群外可路由可达。基于此,用户在进行应用发布时在资源配置文件(YAML)中通过注解(anotation)显示的声明容器IP或IP段进行固定IP的应用发布操作。
[0010]然而上述三种方案存在以下问题:
[0011]方案一:hostPort+指定计算节点的发布方式
[0012]1、应用每次发布、更新时都可能被调度到不同的计算节点上,所以从集群外通过宿主机的IP访问容器时,访问地址可能会发生变化,用户必须自己维护容器与所在宿主机的对应关系;
[0013]2、外部访问需要使用计算节点的主机端口,用户需要维护应用在主机上的映射端
口,避免主机端口使用冲突;
[0014]3、容器与计算节点绑定,故障场景下容器自迁移范围受限,客观上限制了Kubernetes的调度能力和容器的自愈能力。
[0015]方案二:常规发布+绑定NodePort服务
[0016]1、NodePort路由服务的创建需要遵循特定的端口范围,无法满足应用想要的常用端口,针对必须使用特殊端口的应用系统不满足使用需求;
[0017]2、NodePort路由服务向后端应用容器进行流量转发依赖Kubeproxy和IPVS实现,是一种基于TCP的4层负载均衡方式,对于基于HTTP的7层访问控制尤其有路由规则控制需求的应用访问场景无法有效支持;
[0018]3、用户必须维护NodePort路由服务端口与应用的对应关系。
[0019]方案三:CNI网络插件+使用YAML固定容器IP发布
[0020]1、固定IP的分配、更新、回收等操作需要人工手动进行,主要依赖平台管理员以表格的形式记录和维护,发生重复分配等错误的概率较高;
[0021]2、YAML作为创建Kubernetes资源对象的配置文件,各种资源的定义属性众多,纷繁复杂,用户使用门槛、维护成本较高。

技术实现思路

[0022]本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于容器云平台的固定IP应用发布方法。
[0023]本专利技术的目的可以通过以下技术方案来实现:
[0024]一种基于容器云平台的固定IP应用发布方法,该方法结合Calico与Kubernetes实现,该方法包括:
[0025]部署Calico作为Kubernetes集群网络插件,并为各Kubernetes业务集群分配动态IP资源池和固定IP资源池,并部署关于固定IP管理自定义资源的自定义对象;
[0026]变更窗口期前,用户登录多数据中心容器云管理平台进行应用模板构建,并将构建的应用模板设定为可发布状态,通过选择可发布状态的应用模板,结合动态IP资源池、固定IP资源池以及关于固定IP管理自定义资源的自定义进行发布操作。
[0027]在本专利技术方法中,所述固定IP资源池设有独立的固定IP控制器,所述固定IP控制器用于监听Kubernetes集群的API请求,进行固定IP的分配并更新固定IP资源定义中记录的IP使用状态。所述关于固定IP管理自定义资源的自定义对象包括所述固定IP控制器固定IP资源定义,所述固定IP资源定义用于记录已分配的固定IP的使用状态并将使用状态存储至集群的ETCD数据库的。
[0028]所述动态IP资源池用于提供非固定IP发布方式下Calico IPAM为容器自动分配的IP,所述固定IP资源池用于提供固定IP发布方式下所述固定IP控制器为预发布容器自动分配的IP。
[0029]进一步地,所述动态IP资源池和所述固定IP资源池均为真实IP网段,二者通过BGP协议与物理网络进行路由信息交换。
[0030]进一步地,变更窗口期前,用户登录多数据中心容器云管理平台进行应用模板构建的具体内容为:
[0031]a1)用户登录容器云平台进入模板管理页面,选择新建应用模板,在表单界面中填写应用名称,选择计划发布的业务集群,选定固定IP的发布模式并填写计划发布的实例数量。
[0032]a2)容器云平台根据用户选择的业务集群向对应Kubernetes业务集群的API Server发送固定IP获取请求,改请求为前端的异步请求。
[0033]a3)当所述固定IP控制器监听到固定IP获取请求,则根据应用名称查询是否有对应的StaticIP CR记录,若没有,则创建一条新的CR记录,所述StaticIP CR记录为固定IP分配的数据记录。
[0034]a4)所述固定IP控制器通过数据比对算法比对固定IP资源池和StaticIP CR数据记录中IP的条目,并根据用户填写的计划发布的实例数量从固定IP资源池中随机获取对应数量的未记录在StaticIP CR记录中的IP,并将其返回至前端。
[本文档来自技高网
...

【技术保护点】

【技术特征摘要】
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资源池中随机...

【专利技术属性】
技术研发人员:李文权侯银雷
申请(专利权)人:上海浦东发展银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1