一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于Kubernetes集群的应用部署方法、装置以及电子设备与流程

2021-11-20 01:31:00 来源:中国专利 TAG:

基于kubernetes集群的应用部署方法、装置以及电子设备
技术领域
1.本技术涉及容器服务技术领域,尤其是涉及一种基于kubernetes集群的应用部署方法、装置以及电子设备。


背景技术:

2.容器服务(container service)是能够提供高性能可伸缩的容器应用管理的服务,能够通过容器进行应用生命周期管理,提供多种应用发布方式和持续交付能力并支持微服务架构。
3.在容器服务中,通常利用容器集群管理系统kubernetes(简称k8s)来管理容器集群,从而提供以容器为核心的、高度可扩展的高性能容器管理服务。k8s是一个基于容器技术的分布式架构领先方案,能够为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。
4.目前,在基于上述k8s的容器服务中,需要用户定义部署(deployment)资源文件和服务(service)资源文件,并使用原生的命令来创建容器和服务,应用和服务的更新过程也需要通过更改deployment和service的资源文件来完成。由此可见,目前的应用部署过程需要用户编写复杂的deployment和service来定义文件,对于用户使用难度较高。


技术实现要素:

5.本发明的目的在于提供一种基于k8s集群的应用部署方法、装置以及电子设备,以解决用户对容器服务使用难度较高的技术问题。
6.第一方面,本技术实施例提供了一种基于k8s集群的应用部署方法,所述k8s集群包括主节点和多个计算节点,所述应用部署方法包括:
7.通过解析接收到的应用的部署命令,获得应用的容器配置参数;
8.根据所述容器配置参数在所述计算节点中创建容器;
9.通过解析接收到的应用的部署命令,获得应用的服务访问类型;
10.根据所述服务访问类型,利用集群管理工具在所述容器中创建应用的服务。
11.在一个可能的实现中,所述服务访问类型为公网访问、虚拟私有云(virtual private cloud,简称vpc)内网访问、集群内访问或不提供服务访问。
12.在一个可能的实现中,当所述服务访问类型为公网访问时,所述根据所述服务访问类型,利用集群管理工具在所述容器中创建应用的服务的步骤,包括:
13.利用开放应用程序编程接口(application programming interface,简称api)创建公网负载均衡;
14.利用kube-api在所述容器中创建应用的服务;
15.将所述公网负载均衡锁定在所述服务上;
16.返回服务公网网际互连协议(internet protocol,简称ip)地址。
17.在一个可能的实现中,当所述服务访问类型为vpc内网访问时,所述根据所述服务
访问类型,利用集群管理工具在所述容器中创建应用的服务的步骤,包括:
18.利用开放api创建vpc内网负载均衡;
19.利用kube-api在所述容器中创建应用的服务;
20.将所述vpc内网负载均衡锁定在所述服务上;
21.返回服务内网ip地址。
22.在一个可能的实现中,当所述服务访问类型为集群内访问时,所述根据所述服务访问类型,利用集群管理工具在所述容器中创建应用的服务的步骤,包括:
23.利用kube-api在所述容器中创建应用的服务;
24.返回服务集群ip地址。
25.在一个可能的实现中,在所述通过解析接收到的应用的部署命令,获得应用的容器配置参数的步骤之前,还包括:
26.通过前端控制台接收应用的部署命令。
27.在一个可能的实现中,还包括:
28.向所述前端控制台返回容器的运行信息。
29.在一个可能的实现中,所述容器配置参数至少包括镜像和服务访问类型。
30.第二方面,本技术实施例提供了一种基于k8s集群的应用部署装置,所述k8s集群包括主节点和多个计算节点,所述应用部署装置包括:
31.第一获取模块,用于通过解析接收到的应用的部署命令,获得应用的容器配置参数;
32.第一创建模块,用于根据所述容器配置参数在所述计算节点中创建容器;
33.第二获取模块,用于通过解析接收到的应用的部署命令,获得应用的服务访问类型;
34.第二创建模块,用于根据所述服务访问类型,利用集群管理工具在所述容器中创建应用的服务。
35.第三方面,本技术实施例又提供了一种电子设备,包括存储器、处理器,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的第一方面所述方法。
36.第四方面,本技术实施例又提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述的第一方面所述方法。
37.本技术实施例带来了以下有益效果:
38.本技术实施例提供的一种基于k8s集群的应用部署方法、装置以及电子设备,通过解析接收到的应用的部署命令,能够得到应用的容器配置参数以及服务访问类型,然后,便可以利用解析出的容器配置参数在k8s集群的计算节点中创建容器,再利用解析出的服务访问类型在这个创建的容器中创建应用的服务,以实现根据部署命令中容器配置参数和服务访问类型这些不同的配置,来创建相应的容器和应用服务,因此,用户只需直接在前端配置应用部署的各项参数便可以创建对应的服务,无需用户再编写复杂的deployment和service资源文件,从而简化了部署服务的复杂程度,大幅度减轻了用户对容器服务的使用难度。
39.为使本技术的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
40.为了更清楚地说明本技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本技术的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
41.图1为本技术实施例提供的基于k8s集群的应用部署方法的流程示意图;
42.图2为本技术实施例提供的基于k8s集群的应用部署方法的时序示意图;
43.图3为本技术实施例提供的一种基于k8s集群的应用部署装置的结构示意图;
44.图4为本技术实施例提供的一种电子设备的结构示意图。
具体实施方式
45.为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合附图对本技术的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
46.本技术实施例中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
47.在kubernetes(简称k8s)管理的容器集群中,存在被管理节点node,针对每个kubernetes集群都由一个master负责管理和控制集群节点node,通过master可以对每个节点node发送命令。在节点node上面可以运行多个pod,pod是kubernetes管理的最小单位,同时每个pod可以包含多个容器。
48.k8s通常可以通过api server调用各个进程来完成对node的部署和控制。api server的核心功能是对核心对象的增删改查操作,其中的核心对象可以是pod、service、deployment、kube-api等k8s的组件。
49.其中,deployment是k8s中用于管理无状态应用的、面向集群的管理。service是k8s中一种抽象的服务对象,其定义了一组pod的逻辑集合和一个用于访问它们的策略。kube-api是k8s中用于交互的一个组件,其控制着k8s中核心资源的变化。
50.目前,在基于k8s的容器服务中,常用的应用部署方法是需要用户编写复杂的deployment和service文件,并直接使用原生的kubectl命令来创建容器和服务(应用容器指k8s中的pod对象),应用和服务的更新也需要通过更改deployment和service文件来完成。
51.但是,在这种方法中,需要用户编写复杂的deployment和service定义文件,对于不熟悉的用户难度比较大。而且,部署完成后,对应用的更新部署需要同步更新资源定义文件,效率比较低,维护成本高。再者,用户部署应用时,需要依赖kubectl客户端命令,使用便
利程度较低。
52.基于此,本技术实施例提供了一种基于k8s集群的应用部署方法、装置以及电子设备。通过该方法可以解决用户对容器服务使用难度较高的技术问题。
53.下面结合附图对本发明实施例进行进一步地介绍。
54.图1为本技术实施例提供的一种基于k8s集群的应用部署方法的流程示意图。其中,k8s集群包括主节点和多个计算节点。如图1所示,该方法包括:
55.步骤s110,通过解析接收到的应用的部署命令,获得应用的容器配置参数。
56.本步骤中,后端服务器先接收前端控制台发送的应用的部署命令,然后,对该应用的部署命令进行解析,从而得到该应用的容器配置参数。
57.其中,应用部署请求中的配置参数可以包括可选参数和必选参数。可选参数可以包括存储卷类型、容器资源限制,容器实例调节策略等,用户可以根据需求配置本地存储或者云硬盘存储,配置容器资源使用范围和pod的弹性伸缩策略。
58.步骤s120,根据容器配置参数在计算节点中创建容器。
59.本步骤中,后端服务器根据上述步骤s110中通过解析得到的容器配置参数来在k8s集群的计算节点中创建与该容器配置参数相应的容器。
60.步骤s130,通过解析接收到的应用的部署命令,获得应用的服务访问类型。
61.在实际应用中,应用的部署命令可以包括配置参数和镜像,配置参数可以包括存储卷类型、容器资源限制、容器实例调节策略、服务访问类型等。用户可以根据需求配置不同的存储类型、容器资源使用范围、pod的弹性伸缩策略和服务的访问方式。
62.本步骤中,后端服务器可以对接收到的应用的部署命令进行解析,从而得到该应用的服务访问类型。
63.步骤s140,根据服务访问类型,利用集群管理工具在容器中创建应用的服务。
64.本步骤中,后端服务器可以根据上述步骤s130中通过解析得到的服务访问类型,利用集群管理工具在步骤s120中创建的容器中创建与该服务访问类型相应的应用服务。
65.本技术实施例中,通过解析接收到的应用的部署命令,能够得到应用的容器配置参数以及服务访问类型,然后,便可以利用解析出的容器配置参数在k8s集群的计算节点中创建容器,再利用解析出的服务访问类型在这个创建的容器中创建应用的服务,以实现根据部署命令中容器配置参数和服务访问类型这些不同的配置,来创建相应的容器和应用服务,因此,用户只需要通过前端选填配置应用部署的各项参数,后端服务器便能够接收用户发送的用于部署应用的应用部署请求,并根据请求中的不同的配置来创建容器和服务,不依赖集群环境,不需要定义deployment和service资源文件,从而使用户不需要再学习和编写复杂的deployment和service文件,即不需要操作人直接和底层命令交互,只需要直接在前端配置应用部署的各项参数就可以创建对应的服务,因此,简化了部署服务的复杂度,大幅度减轻了用户的学习成本和使用难度。
66.下面对上述步骤进行详细介绍。
67.在一些实施例中,服务访问类型为公网访问、vpc内网访问、集群内访问或不提供服务访问。
68.在实际应用中,服务访问类型可以支持多种访问类型,例如,不提供服务访问、vpc内访问、集群内访问和公网访问,服务器根据不同的访问类型可以确定是否创建负载均衡
和创建何种类型的负载均衡实例。
69.本技术实施例中,提供了更多的服务访问类型,可以进行更多配置,使各种服务配置能够更加灵活多变,实现了提供足够的可选配置,能够满足用户的各种应用部署需求。
70.在一些实施例中,当服务访问类型为公网访问时,上述步骤s140可以包括如下步骤:
71.步骤s1400,利用开放api创建公网负载均衡。
72.步骤s1401,利用kube-api在容器中创建应用的服务。
73.步骤s1402,将公网负载均衡锁定在服务上。
74.步骤s1403,返回服务公网ip地址。
75.如果服务访问类型是公网访问,则后端调用openapi创建公网负载均衡,并创建弹性公网ip地址和执行监听器的动态挂载和同步后端服务,从而实现了对于多种服务访问类型中的公网访问,提供更具针对性的服务。
76.在一些实施例中,当服务访问类型为vpc内网访问时,上述步骤s140可以包括如下步骤:
77.步骤s1404,利用开放api创建vpc内网负载均衡。
78.步骤s1405,利用kube-api在容器中创建应用的服务。
79.步骤s1406,将vpc内网负载均衡锁定在服务上。
80.步骤s1407,返回服务内网ip地址。
81.需要说明的是,kube-api是k8s中用于交互的一个组件,其控制着k8s中核心资源的变化。kube-api的功能包括常用的应用程序接口、访问权限控制、注册、信息存储(etcd)等。在其下面还包括有scheduler,它将待调度的pod绑定到node上,并将绑定信息写入etcd中,其中的etcd用于存储资源信息。
82.如果服务访问类型是vpc内访问,则后端调用openapi创建内网负载均衡,并执行监听器的动态挂载和同步后端服务,从而实现了对于多种服务访问类型中的vpc内网访问,提供更具针对性的服务。
83.在一些实施例中,当服务访问类型为集群内访问时,上述步骤s140可以包括如下步骤:
84.步骤s1408,利用kube-api在容器中创建应用的服务。
85.步骤s1409,返回服务集群ip地址。
86.如果服务访问类型是集群内访问,则后端直接创建集群service,不创建负载均衡,即直接使用k8s集群的service机制暴露服务访问,从而实现了对于多种服务访问类型中的vpc内网访问,提供更具针对性的服务。
87.在一些实施例中,在步骤s110之前,该方法还可以包括以下步骤:
88.步骤s109,通过前端控制台接收应用的部署命令。
89.用户可以通过前端控制台填写配置参数,进而实现后端服务器创建部署应用服务。对于前端控制台和后端服务器之间的具体交互流程,如图2所示,用户可以在前端控制台配置容器和服务然后点击创建,前端控制台将配置的各项参数传到后端服务器,后端服务器先解析容器的配置,然后调用kube-api创建容器实例,容器创建成功后,接着解析服务配置,判断服务访问类型。如果服务访问类型是集群内访问,则后端直接创建集群service,
不创建负载均衡。如果服务访问类型是公网访问,则后端调用openapi创建公网负载均衡;如果服务访问类型是vpc内访问,则后端调用openapi创建内网负载均衡。接下来,调用kube-api创建集群service实例,并将负载均衡绑定到集群service实例上,实现service不同的访问类型。
90.通过前端控制台接收应用的部署命令,能够在不影响后端服务器创建部署应用服务的情况下,使用户进行配置参数填写等操作更加方便便捷。
91.在一些实施例中,该方法还可以包括以下步骤:
92.步骤s150,向前端控制台返回容器的运行信息。
93.其中,运行信息包括运行状态和服务ip。
94.本技术实施例中,在应用和服务创建完成后,前端控制台可以显示容器的运行状态和服务ip。从而使用户可以更加方便的查看到运行状态和服务ip,便捷的获取到更多的信息。
95.通过提供本技术实施例提供的方法,实现了应用在云端的部署,可以进行更多配置,通过更多的灵活的可选配置创建符合需求的响应,提供更多的服务访问类型来扩展集群原生的服务访问机制,实现了更多的应用对外提供服务的能力。
96.在一些实施例中,所述容器配置参数至少包括镜像和服务访问类型。
97.在实际应用中,应用部署请求中的配置参数可以包括镜像、服务访问类型等多种不同的需求配置。其中的镜像可以从私有和公有镜像仓库选择容器镜像。而通过服务访问类型可以根据需求配置不同的服务的访问方式。
98.在一些实施例中,还可以通过公有云提供界面来创建部署应用,用户只需要通过前端界面配置必要的参数就可以部署容器和服务。通过这样的方式部署比较简单,不需要操作人直接和底层命令交互,只需要在前端界面配置就可以创建对应的服务,简化了部署服务的复杂度。
99.图3提供了一种基于k8s集群的应用部署装置的结构示意图。其中,该k8s集群包括主节点和多个计算节点。如图3所示,基于k8s集群的应用部署装置300包括:
100.第一获取模块301,用于通过解析接收到的应用的部署命令,获得应用的容器配置参数;
101.第一创建模块302,用于根据容器配置参数在计算节点中创建容器;
102.第二获取模块303,用于通过解析接收到的应用的部署命令,获得应用的服务访问类型;
103.第二创建模块304,用于根据服务访问类型,利用集群管理工具在容器中创建应用的服务。
104.在一些实施例中,服务访问类型为公网访问、vpc内网访问、集群内访问或不提供服务访问。
105.在一些实施例中,第二创建模块304具体用于:
106.利用开放api创建公网负载均衡;
107.利用kube-api在容器中创建应用的服务;
108.将公网负载均衡锁定在服务上;
109.返回服务公网ip地址。
110.在一些实施例中,第二创建模块304具体用于:
111.利用开放api创建vpc内网负载均衡;
112.利用kube-api在容器中创建应用的服务;
113.将vpc内网负载均衡锁定在服务上;
114.返回服务内网ip地址。
115.在一些实施例中,第二创建模块304具体用于:
116.利用kube-api在容器中创建应用的服务;
117.返回服务集群ip地址。
118.在一些实施例中,该装置还包括:
119.接收模块,用于通过前端控制台接收应用的部署命令。
120.在一些实施例中,该装置还包括:
121.返回模块,用于向前端控制台返回容器的运行信息。
122.在一些实施例中,所述容器配置参数至少包括镜像和服务访问类型。
123.本技术实施例提供的基于k8s集群的应用部署装置,与上述实施例提供的基于k8s集群的应用部署方法具有相同的技术特征,所以也能解决相同的技术问题,达到相同的技术效果。
124.本技术实施例提供的一种电子设备,如图4所示,电子设备400包括存储器401、处理器402,所述存储器中存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例提供的方法的步骤。
125.参见图4,电子设备还包括:总线403和通信接口404,处理器402、通信接口404和存储器401通过总线403连接;处理器402用于执行存储器401中存储的可执行模块,例如计算机程序。
126.其中,存储器401可能包含高速随机存取存储器(random access memory,简称ram),也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口404(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。
127.总线403可以是isa总线、pci总线或eisa总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
128.其中,存储器401用于存储程序,所述处理器402在接收到执行指令后,执行所述程序,前述本技术任一实施例揭示的过程定义的装置所执行的方法可以应用于处理器402中,或者由处理器402实现。
129.处理器402可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器402中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器402可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现成可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本
申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器401,处理器402读取存储器401中的信息,结合其硬件完成上述方法的步骤。
130.对应于上述基于k8s集群的应用部署方法,本技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有机器可运行指令,所述计算机可运行指令在被处理器调用和运行时,所述计算机可运行指令促使所述处理器运行上述基于k8s集群的应用部署方法的步骤。
131.本技术实施例所提供的基于k8s集群的应用部署装置可以为设备上的特定硬件或者安装于设备上的软件或固件等。本技术实施例所提供的装置,其实现原理及产生的技术效果和前述方法实施例相同,为简要描述,装置实施例部分未提及之处,可参考前述方法实施例中相应内容。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,前述描述的系统、装置和单元的具体工作过程,均可以参考上述方法实施例中的对应过程,在此不再赘述。
132.在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
133.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
134.再例如,附图中的流程图和框图显示了根据本技术的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
135.另外,在本技术提供的实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
136.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说
对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述基于k8s集群的应用部署方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,简称rom)、随机存取存储器(random access memory,简称ram)、磁碟或者光盘等各种可以存储程序代码的介质。
137.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释,此外,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
138.最后应说明的是:以上所述实施例,仅为本技术的具体实施方式,用以说明本技术的技术方案,而非对其限制,本技术的保护范围并不局限于此,尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本技术实施例技术方案的范围。都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献