在公共云中为用户部署k8s托管集群的方法、设备和介质技术

技术编号:33510295 阅读:15 留言:0更新日期:2022-05-19 01:19
本公开涉及在公共云中为用户部署k8s托管集群的方法、设备和介质。本公开提供了一种在公共云中为用户部署k8s托管集群方法,其中所述用户具有至少一个主机并且所述至少一个主机构成所述k8s托管集群,所述方法包括:在公共云中创建k8s管理集群;以及容器化所述k8s托管集群的Master组件以形成Master容器;在所述k8s管理集群中部署所述Master容器,其中包括:在所述k8s管理集群中为所述k8s托管集群创建编排文件;以及由所述k8s管理集群中的控制器使用所述编排文件在所述k8s管理集群中为Master容器的每个子组件创建对应数量的容器以形成高可用的k8s托管集群。以形成高可用的k8s托管集群。以形成高可用的k8s托管集群。

【技术实现步骤摘要】
在公共云中为用户部署k8s托管集群的方法、设备和介质


[0001]本公开总体上涉及容器编排工具k8s
,更具体地涉及在 公共云中为用户部署k8s托管集群的方法、设备和介质。

技术介绍

[0002]K8s是Kubernetes的简称。Kubernetes是Google开源的一个容器 编排引擎,是目前使用最为广泛的容器编排工具,解决了应用容器化 后大规模部署的问题。在Kubernetes中,可以创建多个容器,每个容 器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这 一组应用实例的管理、发现、访问,而这些细节都不需要运维人员去 进行复杂的手工配置和处理。
[0003]Kubernetes的组件分为两类:Master组件与Node组件。Master组 件中包括Etcd、Kube-apiserver、Kube-scheduler、Kube-controller
-ꢀ
manager。Node组件包括Kubelet和Kube-proxy。Master组件中,Etcd 是一个key-value数据库,k8s的数据都存储在Etcd中;Kube-apiserver 是一个HTTP服务端,暴露RESTAPI给外部用户及Node节点;Kube
-ꢀ
scheduler是一个调度器,它会通过Kube-apiserver的API一直监听集 群中的Pod(容器),然后将其调度到某个Node节点上。Kube-controller
-ꢀ
manager也会一直监听Kube-apiserver的API,执行一些循环任务。
[0004]在传统的k8s集群部署架构中,部署一个高可用的k8s集群,至 少需要三个节点,每个节点上都要部署Master组件,与Node组件共 用主机。
[0005]在公有云的模式下,通常会遇到这样的场景:用户的应用规模很 小,通常一台或两台主机就能满足需求。此时,如果要搭建一个传统 的k8s集群,那么用户至少需要购买三台主机,成本较高。所以,托 管集群的模式,非常适合小用户。
[0006]托管集群的实现方式有很多种:最简单的方法,就是选三台主机, 当有一个用户开通一个托管集群时,选择工作节点的配置与数量。对 于本示例,就是在这三台主机上部署一套高可用的k8s的Master组件 (一台主机上可以部署多套Master)。但是,这种方式缺乏横向扩展的 能力,它们最多可能只能部署N个集群的Master。所以,以物理的方 式把托管集群的Master直接跑在主机上不可行。
[0007]因此,现有技术中需要能够在公有云中为具有任意数量的主机的 用户部署可伸缩的k8s托管集群的技术。

技术实现思路

[0008]在下文中给出了关于本公开的简要概述,以便提供关于本公开的 一些方面的基本理解。但是,应当理解,这个概述并不是关于本公开 的穷举性概述。它并不是意图用来确定本公开的关键性部分或重要部 分,也不是意图用来限定本公开的范围。其目的仅仅是以简化的形式 给出关于本公开的某些概念,以此作为稍后给出的更详细描述的前序。
[0009]根据本公开的一个方面,提供一种在公共云中为用户部署k8s托 管集群的方法,
其中所述用户具有至少一个主机并且所述至少一个主 机构成所述k8s托管集群,所述方法包括:在公共云中创建k8s管理 集群;以及容器化所述k8s托管集群的Master组件以形成Master容 器;在所述k8s管理集群中部署所述Master容器,其中包括:在所述 k8s管理集群中为所述k8s托管集群创建编排文件;以及由所述k8s管 理集群中的控制器使用所述编排文件在所述k8s管理集群中为Master 容器的每个子组件创建对应数量的容器以形成高可用的k8s托管集群。
[0010]根据本公开的另一个方面,提供一种公共云中的服务器,包括: 存储器,其上存储有指令;以及处理器,被配置为执行存储在所述存 储器上的指令,以执行根据本公开的上述方面所述的方法。
[0011]根据本公开的又一个方面,提供一种计算机可读存储介质,其包 括计算机可执行指令,所述计算机可执行指令在由一个或多个处理器 执行时,使得所述一个或多个处理器执行根据本公开的上述方面所述 的方法。
附图说明
[0012]构成说明书的一部分的附图描述了本公开的实施例,并且连同说 明书一起用于解释本公开的原理。
[0013]参照附图,根据下面的详细描述,可以更清楚地理解本公开,其 中:
[0014]图1示出了根据本公开一个实施例的在公共云中为用户部署k8s 托管集群的处理的流程图;
[0015]图2示出了根据本公开一个实施例的托管集群的部署架构的示意 图;
[0016]图3示出了根据本公开一个实施例的托管集群Master的编排文件 及部署工具的示意图;
[0017]图4示出了可以实现根据本公开一个实施例的在公共云中为用户 部署k8s托管集群的网络侧服务器的示例性配置。
具体实施方式
[0018]参考附图进行以下详细描述,并且提供以下详细描述以帮助全面 理解本公开的各种示例实施例。以下描述包括各种细节以帮助理解, 但是这些细节仅被认为是示例,而不是为了限制本公开,本公开是由 随附权利要求及其等同内容限定的。在以下描述中使用的词语和短语 仅用于能够清楚一致地理解本公开。另外,为了清楚和简洁起见,可 能省略了对公知的结构、功能和配置的描述。本领域普通技术人员将 认识到,在不脱离本公开的精神和范围的情况下,可以对本文描述的 示例进行各种改变和修改。
[0019]本专利技术人认识到在现有技术中把托管集群的Master直接运行于主 机上之上是不可行的。因此,本专利技术人提出了一种将托管集群的Master 运行在一个k8s管理集群中,使托管集群的Master容器相当于是管理 集群中一个普通容器运行。
[0020]图1示出了根据本公开一个实施例的在公共云中为用户部署k8s 托管集群的处理100的流程图。用户可以具有至少一个主机并且请求 开通一个k8s托管集群。用户可以在开通时选择主机的配置和数量。 用户的至少一个主机构成所述k8s托管集群。
[0021]在步骤101处,本处理开始。在该步骤处,在公共云中创建k8s管 理集群。
[0022]在步骤102处,容器化所述k8s托管集群的Master组件以形成 Master容器。
[0023]在步骤103处,在所述k8s管理集群中部署所述Master容器。该 部署可以通过以下操作来实现:在所述k8s管理集群中为所述k8s托 管集群创建编排文件;以及由所述k8s管理集群中的控制器使用所述 编排文件在所述k8s管理集群中为Master容器的每个子组件创建对应 数量的容器以形成高可用的k8s托管集群。
[0024]值得注意的是,这个编排文件时原生k8s可以解析的。当所述用 户具有一个或2个主机时,所述编排文件指定为Master容器的etcd、 kube-apise本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在公共云中为用户部署k8s托管集群的方法,其中所述用户具有至少一个主机并且所述至少一个主机构成所述k8s托管集群,所述方法包括:在公共云中创建k8s管理集群;以及容器化所述k8s托管集群的Master组件以形成Master容器;在所述k8s管理集群中部署所述Master容器,其中包括:在所述k8s管理集群中为所述k8s托管集群创建编排文件;以及由所述k8s管理集群中的控制器使用所述编排文件在所述k8s管理集群中为Master容器的每个子组件创建对应数量的容器以形成高可用的k8s托管集群。2.根据权利要求1所述的方法,其中,当所述用户具有一个或2个主机时,所述编排文件指定为Master容器的etcd、kube-apiserver、kube-controller-manager、kube-scheduler子组件分别创建3个...

【专利技术属性】
技术研发人员:彭世柱
申请(专利权)人:天翼云科技有限公司
类型:发明
国别省市:

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

1