基于kubernetes的应用编排部署方法技术

技术编号:22237723 阅读:19 留言:0更新日期:2019-10-09 17:41
本发明专利技术公开了基于kubernetes的应用编排部署方法,基于kubernetes集群,借助docker和kubernetes的deployment,statefulset,service,ingress,secret以及configmap等资源对象,进行应用部署;借助kubernetes对集群容器的调度控制器实现程序的生命周期管理。本发明专利技术整合了kubernetes提供的对于容器编排的各项资源对象,联合应用这些资源对象解决应用依赖问题,部署环境问题,数据持久化问题和扩容缩容等问题,并同时大幅度简化应用的编排步骤和难度。

Application Layout and deployment method based on kubernetes

【技术实现步骤摘要】
基于kubernetes的应用编排部署方法
本专利技术涉及计算机
,尤其涉及基于kubernetes的应用编排部署方法。
技术介绍
容器技术是当前热门技术,也是最前沿的技术。自从docker和kubernetes的推出,使得软件的部署变得容易起来,真正的实现了一次部署到处运行。但是目前的kubernetes集群的容器部署大都繁琐和复杂,且需要一定的kubernetes基础知识储备,而实际情况却是使用者的大多无法花费大量时间学习kubernetes的相关知识但却想使用kubernetes部署服务。所以,需要一种通用的、低学习成本的应用编排部署方法,来解决应用的部署痛点。这里就需要对kubernetes提供的部署服务的相应资源对象进行一个聪明的、简洁的组合应用方法。一种基于kubernetes的应用编排部署方法就在这样的技术背景下诞生。
技术实现思路
针对上述问题,本专利技术提出了基于kubernetes的应用编排部署方法,利用kubernetes提供的deployment,statefulset,service,ingress,secret以及configmap等资源对象,通过合理的组合运用,解决应用编排部署难的问题。本专利技术通过以下技术方案来实现上述目的:基于kubernetes的应用编排部署方法,包括以下步骤:步骤S101:封装secret、volume和configmap资源对象,用户提前将秘钥和配置项创建完毕;步骤S102:封装deployment或statefulset,抽象出标签管理模块、数据卷挂载模块和容器调度模块;标签管理模块需要打上应用相关的标签;数据卷挂载模块使用常用的一类或几类,无需封装所有的类型;容器调度模块的封装,包括有标签选择调度和亲和性调度两种方式;步骤S103:封装service,service在集群中提供服务发现和负载均衡;type用ClusterIP,协议默认用TCP,serviceport以名称加索引的规则命名;步骤S104:封装ingress,service创建好之后,添加ingres来设置host,ingress的创建的名称可将用户传入的名称、端口和协议名称组合起来,可避免host重复。进一步方案为,所述步骤S101中,secret使用相应的type来接收相应的参数,在后端封装并进行base64编码,可用镜像仓库配置,type使用kubernetes.io/dockerconfigjson,用户只需传入server地址用户名和密码即可,无需自己编码并调用secret创建接口,由后台带上标签拼装好secret之后,再调用secert创建;configmap就只需接收用户配置即可,无需作额外处理;volume为以ceph的rbd为载体的pvc,宿主机路径为载体的hostPath;进一步方案为,所述步骤S102中,所述容器配置模块包括容器生命周期、健康检查、initContainer、环境变量配置、主机DNS解析子模块,并对这些子模块进行封装。进一步方案为,所述步骤S102中,所述数据卷挂载模块类型包括:configmap用以挂载应用的配置内容,secret用以挂载应用的秘钥相关内容,pvc用以挂载应用的持久化存储的数据卷,hostPath用以挂载宿主机的卷。本申请另一方面提供了上述的基于kubernetes的应用编排部署方法,其与外部协作步骤如下:步骤S201:业务方登陆容器云平台;步骤S202:业务方调用应用编排方法,发送请求服务;步骤S203:应用编排方法调用kubernetes集群api;步骤S204:集群根据调度情况,创建相应资源对象,应用完成部署。本专利技术的有益效果在于:本专利技术提出了基于kubernetes的应用编排部署方法,基于kubernetes集群,借助docker和kubernetes的deployment,statefulset,service,ingress,secret以及configmap等资源对象,进行应用部署;借助kubernetes对集群容器的调度控制器实现程序的生命周期管理。本专利技术整合了kubernetes提供的对于容器编排的各项资源对象,联合应用这些资源对象解决应用依赖问题,部署环境问题,数据持久化问题和扩容缩容等问题,并同时大幅度简化应用的编排步骤和难度。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要实用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本实施例的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术方法的集群内部流程图;图2为本专利技术方法中集群内部与外部协作刘流程图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将对本专利技术的技术方案进行详细的描述。显然,所描述的实施例仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本专利技术所保护的范围。一个对外提供服务的应用,首先它需要一个能够与外部通讯的网络,其次还需要能运行这个服务的载体(pods),如果这个应用需要存储数据,这还需要配套的储存,所以可以认为:应用单元=网络+服务载体+存储。那么我们就可以根据kubernetes将常见应用分成两种,即无状态服务和有状态服务,可以通过kubernetes提供的api接口,组合deployment、service、ingress、configmap和volumes,完成无状态服务的部署,用户只需要提供相应参数即可,不需要了解相关资源对象的作用;同样也可以组合statefulset、service、ingress、configmap和volumes,完成有状态服务的部署,用户只需要提供相应参数即可,不需要了解相关资源对象的作用。本专利技术中,区分kubernetes集群内关于应用部署的相关资源对象的各参数。设定相应的不影响部署应用的参数的默认值,只需要对影响部署的相关参数进行封装和处理,并对不同的参数模块进行适当的抽象,例如:标签管理模块,数据卷挂载模块,容器调度模块(标签选择调度,亲和性调度等),容器配置模块(容器生命周期,健康检查,initContainer,环境变量配置,主机DNS解析等),端口映射模块,秘钥模块,配置文件模块,负载均衡模块等。另外本专利技术中,对抽象出来的参数模块进行封装处理。包装相应参数模块,简化参数的名称,并作简要解释。在后端代码中,将参数模块合并起来,通过kubernetes提供的api接口,进行统一的调用,以完成对所有需要的资源对象的创建。这里需要在代码中注意处理相应资源对象相互依赖的问题。即首先应该先创建secret和configmap,为后面创建deployment提供秘钥和配置文件,接着就创建deployment,之后再创建service提供对外的负载均衡和服务发现,再创建ingress配置7层转发规则(相应的服务的host和对应的service的名称和端口),通过vip的方式,将服务暴露到集群外,用户即可通过添加相应的host就可访问到对应的服务。至此,应用的部署编排完成。最后,对应用的特殊本文档来自技高网...

【技术保护点】
1.基于kubernetes的应用编排部署方法,其特征在于,包括以下步骤:步骤S101:封装secret、volume和configmap资源对象,用户提前将秘钥和配置项创建完毕;步骤S102:封装deployment或statefulset,抽象出标签管理模块、数据卷挂载模块和容器调度模块;标签管理模块需要打上应用相关的标签;数据卷挂载模块使用常用的一类或几类,无需封装所有的类型;容器调度模块的封装,包括有标签选择调度和亲和性调度两种方式;步骤S103:封装service,service在集群中提供服务发现和负载均衡;type用ClusterIP,协议默认用TCP,service port以名称加索引的规则命名;步骤S104:封装ingress,service创建好之后,添加ingres来设置host,ingress的创建的名称可将用户传入的名称、端口和协议名称组合起来,可避免host重复。

【技术特征摘要】
1.基于kubernetes的应用编排部署方法,其特征在于,包括以下步骤:步骤S101:封装secret、volume和configmap资源对象,用户提前将秘钥和配置项创建完毕;步骤S102:封装deployment或statefulset,抽象出标签管理模块、数据卷挂载模块和容器调度模块;标签管理模块需要打上应用相关的标签;数据卷挂载模块使用常用的一类或几类,无需封装所有的类型;容器调度模块的封装,包括有标签选择调度和亲和性调度两种方式;步骤S103:封装service,service在集群中提供服务发现和负载均衡;type用ClusterIP,协议默认用TCP,serviceport以名称加索引的规则命名;步骤S104:封装ingress,service创建好之后,添加ingres来设置host,ingress的创建的名称可将用户传入的名称、端口和协议名称组合起来,可避免host重复。2.如权利要求1所述基于kubernetes的应用编排部署方法,其特征在于,所述步骤S101中,secret使用相应的type来接收相应的参数,在后端封装并进行base64编码,可用镜像仓库配置,type使用kubernetes.io/dockerconfigjson,用户只需传入server...

【专利技术属性】
技术研发人员:李蕊材
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

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

1