一种部署Kubernetes集群的方法、装置和存储介质与流程

文档序号:15929914发布日期:2018-11-14 01:31阅读:199来源:国知局

本发明涉及云计算技术,尤指一种部署kubernetes集群的方法、装置和存储介质。

背景技术

kubernetes是google开源的容器集群管理系统,实现基于docker构建容器,利用kubernetes能很方便地管理多台docker主机中的容器。kubernetes将多台docker主机抽象为一个资源,以集群方式管理容器,包括任务调度、资源管理、弹性伸缩、滚动升级等功能。手动部署kubernetes集群是一项比较繁琐的工作,除了安装必要的程序包,还要配置网络、挂载磁盘、调整kubernetes服务及docker服务的参数等等,如果节点较多,会更加复杂,且存在很多重复工作。



技术实现要素:

为了解决上述技术问题,本发明提供了一种部署kubernetes集群的方法、装置和存储介质,能够自动部署kubernetes集群。

为了达到本发明目的,本发明提供了一种部署kubernetes集群的方法,包括:

根据收到集群模板的配置信息配置集群模板;

根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群。

进一步地,根据收到集群模板的配置信息配置集群模板,根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群,包括:

调用云计算管理平台openstack中的heat编排模块,所述heat编排模块根据收到集群模板的配置信息配置集群模板,所述heat编排模块根据所述集群模板和所述集群规模的信息创建kubernetes集群。

进一步地,所述集群模板的配置信息包括:基础资源的配置信息、业务网络的配置信息、主节点和从节点的cloud-init脚本的配置信息、kubernetes服务参数的配置信息和docker参数的配置信息;所述基础资源的配置信息包括:云主机镜像、密钥对、节点规格、外部网络;

所述集群规模的配置信息包括:主节点个数和从节点个数。

进一步地,根据收到kubernetes服务参数和docker参数信息配置集群模板,包括:

根据收到的kubernetes服务参数的配置信息和docker参数的配置信息,生成cloud-init脚本并并入所述主节点和从节点的cloud-init脚本配置信息中。

进一步地,所述根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群,包括:

根据所述集群模板中的业务网络参数信息创建业务网络;

根据所述集群模板中的基础资源的配置信息调用所述基础资源的api创建节点云主机;

运行所述集群模板中节点的cloud-init脚本,所述节点的cloud-init脚本运行结束后,返回运行结束信息。

进一步地,所述节点包括主节点和从节点。

为了达到本发明目的,本发明还提供了一种部署kubernetes集群的装置,包括配置模块和创建模块,其中:

所述配置模块,用于根据收到集群模板的配置信息配置集群模板;

所述创建模块,用于根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群。

进一步地,所述配置模块根据收到集群模板的配置信息配置集群模板;所述创建模块根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群,包括:

所述配置模块和所述创建模块分别调用云计算管理平台openstack中的heat编排模块,所述heat编排模块根据收到集群模板的配置信息配置集群模板,所述heat编排模块根据所述集群模板和所述集群规模的信息创建kubernetes集群。

进一步地,所述集群模板的配置信息包括:基础资源的配置信息、业务网络的配置信息、主节点和从节点的cloud-init脚本的配置信息、kubernetes服务参数的配置信息和docker参数的配置信息;所述基础资源的配置信息包括:云主机镜像、密钥对、节点规格、外部网络;

所述集群规模的配置信息包括:主节点个数和从节点个数。

为了达到本发明目的,本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述方法的步骤。

与现有技术相比,本发明包括根据收到集群模板的配置信息配置集群模板;根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群,解决了kubernetes集群部署复杂耗时的问题,大大减少了管理人员的工作量,其实现了模板复用功能。

本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。

图1为本发明实施例一的部署kubernetes集群的方法的流程图;

图2为本发明实按照施例二的部署kubernetes集群的方法部署完成后的框图;

图3为本发明实施例三的部署kubernetes集群的装置的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

实施例一

本实施例提供了一种部署kubernetes集群的方法,如图1所示,该方法包括s11-s12:

s11、根据收到集群模板的配置信息配置集群模板;

s12、根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群。

本发明实施例中,通过云计算管理平台openstack自动创建kubernetes集群。相比常规的手动部署kubernetes集群,解决了kubernetes集群部署复杂耗时的问题,大大减少了管理人员的工作量。

在本实施例中,根据收到集群模板的配置信息配置集群模板,根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群,包括:

调用云计算管理平台openstack中的heat编排模块,所述heat编排模块根据收到集群模板的配置信息配置集群模板,所述heat编排模根据所述集群模板和所述集群规模的信息调用基础资源的api。

在本实施例中,所述集群模板的配置信息包括:基础资源的配置信息、业务网络的配置信息、主节点和从节点的cloud-init脚本的配置信息、kubernetes服务参数的配置信息和docker参数的配置信息;所述基础资源的配置信息包括:云主机镜像、密钥对、节点规格、外部网络;

所述集群规模的配置信息包括:主节点个数和从节点个数。

在openstack提前创建云主机镜像、密钥对、节点规格、外部网络等基础资源服务,每个基础资源服务的参数对应其api,heat编排模块根据集群模板和集群规模的信息调用其相应参数的基础资源的api。业务网络配置集群模板时设定参数,创建集群过程中创建业务网络;

在本实施例中,根据收到kubernetes服务参数和docker参数信息配置集群模板,包括:

根据收到的kubernetes服务参数的配置信息和docker参数的配置信息,生成cloud-init脚本并并入所述主节点和从节点的cloud-init脚本配置信息中。

在本实施例中,所述根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群,包括:

根据所述集群模板中的业务网络参数信息创建业务网络;

根据所述集群模板中的基础资源的配置信息调用所述基础资源的api创建节点云主机;

运行所述集群模板中节点的cloud-init脚本,所述节点的cloud-init脚本运行结束后,返回运行结束信息。

本发明实施例中,云计算管理平台openstack根据收到集群模板的配置信息配置集群模板;根据集群模板和收到的集群规模的配置信息创建kubernetes集群,相比常规的手动部署kubernetes集群,解决了kubernetes集群部署复杂耗时的问题,大大减少了管理人员的工作量,其实现了模板复用功能。

实施例二

本实施例对上述实施例方法进行具体描述。

本专利提出一种在openstack环境中自动部署kubernetes集群的办法。

openstack是一个由nasa(美国国家航空航天局)和rackspace合作研发并发起的,以apache许可证授权的自由软件和开放源代码项目。openstack是一个开源的云计算管理平台项目,由几个主要的组件组合起来完成具体工作。openstack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。openstack通过各种互补的服务提供了基础设施即服务(iaas)的解决方案,每个服务提供api以进行集成。在openstack项目中有一个heat编排模块,可以将所需的基础资源(例如云主机、云硬盘、网络)及其参数按照一定格式生成模板,然后利用这个模板生成编排实例,后端会自动去调用相关基础资源模块的api去创建出相应的资源,并且能够在指定的云主机上通过cloud-init运行一系列脚本。

本发明以openstack-heat为基础,完成kubernetes容器集群的自动化部署,包括以下步骤:

步骤s21,创建kubernetes集群模板。

在openstack中的heat编排模块预先生成所述模板,所述模板包括集群参数和规模参数,这一步并没有正式开始创建集群,而是指定了集群所需的一些参数;

其中,kubernetes集群模板需要指定的关键参数包括:

(1)云主机镜像。支持fedora-atomic和coreos两种镜像,它们都是为容器环境专门设计的虚拟机镜像。在其官方网站下载镜像后,提前上传到openstack的镜像管理模块,并设置其元数据为fedora-atomic和coreos,然后在集群模板中指定该镜像。

(2)密钥对。提前创建一个密钥对,并在集群模板中指定,openstack创建云主机时会使用此密钥对,云主机完成后,需要使用此密钥对登录。对于fedora-atomic,其登录用户为fedora;对于coreos,其登录用户为core。

(3)节点规格。节点规格即节点的cpu、内存、硬盘大小等配置信息。提前创建节点规格。可以在集群模板中对集群的主节点和从节点分别指定不同的规格。

(4)卷大小。卷即openstack的cinder卷,卷大小以gb为单位,须填写整数或者留空。如果填写,则为集群中每个节点分别创建一个指定大小的卷,并将其挂载到/var/lib/docker目录;如果留空,则不为集群节点创建卷。

(5)外部网络。外部网络即能够与openstack管理网络相互通信的网络,需要用户在openstack网络模块提前创建,然后在集群模板中指定。

(6)业务网络。指定业务网络类型、网段地址、子网掩码、网关、dns等参数。云主机网络

(7)cloud-init脚本。针对主节点和从节点各有一段默认的脚本,可根据需要修改。

(8)kubernetes服务参数。定制化kubernetes相关服务的启动参数,例如pause镜像地址、etcd服务地址。kubernetes服务参数指定后会自动生成一段脚本合并到cloud-init脚本中。

(9)docker参数。定制化docker服务的启动参数,例如镜像库地址、存储驱动。docker参数指定后会自动生成一段脚本合并到cloud-init脚本中。

步骤s22,利用步骤s21创建的kubernetes集群模板,指定集群规模,开始创建集群。

其中,对于集群规模,需要指定主节点个数和从节点个数这两个关键信息:其中,当主节点个数如果大于1,需要提前创建负载均衡器并指定。

云计算管理平台openstack根据配置信息配置为集群模板后,自动部署kubernetes集群的整个过程如下:

(1)根据集群模板中的业务网络参数,自动创建业务网络,并自动创建路由、安全组等附属资源;其中,路由、安全组是固定的参数,不需要根据配置信息配置。

(2)使用集群模板中指定的云主机镜像、密钥对、节点规格自动创建主节点云主机,自动在集群模板指定的外部网络中创建浮动ip并挂载到主节点云主机。如果集群模板中卷大小大于0,还会自动创建cinder卷并挂载到主节点云主机,挂载浮动ip。

(3)在主节点上运行cloud-init脚本,其中包括网络配置、卷挂载、docker镜像库地址、pause镜像地址等集群相关配置,在脚本的最后一步,给heat发送消息,宣布主节点部署完成。

(4)使用集群模板中指定的云主机镜像、密钥对、节点规格自动创建从节点云主机,自动在集群模板指定的外部网络中创建浮动ip并挂载到从节点云主机。如果集群模板中卷大小大于0,还会自动创建cinder卷并挂载到从节点云主机。

(5)在从节点上运行cloud-init脚本,其中包括网络配置、卷挂载、docker镜像库地址、pause镜像地址等集群相关配置,在脚本的最后一步,给heat发送消息,宣布从节点部署完成。

(6)所有节点部署完成,heat编排状态和集群部署状态变为完成。至此,一个完整可用的kubernetes集群正式部署完成,其集群结构框图如图2所示,包括主节点和两个从节点,主节点和两个从节点分别配置了对应的磁盘。

实施例三

本实施例提供了一种部署kubernetes集群的装置,上述方法实施例中描述也适用于本实施例中,图3所示,该包括配置模块31和创建模块32,其中:

配置模块31,用于根据收到集群模板的配置信息配置集群模板;

创建模块32,用于根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群。

在本实施例中,所述配置模块31根据收到集群模板的配置信息配置集群模板;所述创建模块32根据所述集群模板和收到的集群规模的配置信息创建kubernetes集群,包括:

所述配置模块31和所述创建模块32分别调用云计算管理平台openstack中的heat编排模块,所述heat编排模块根据收到集群模板的配置信息配置集群模板,所述heat编排模块根据所述集群模板和所述集群规模的信息创建kubernetes集群。

在本实施例中,所述集群模板的配置信息包括:基础资源的配置信息、业务网络的配置信息、主节点和从节点的cloud-init脚本的配置信息、kubernetes服务参数的配置信息和docker参数的配置信息;所述基础资源的配置信息包括:云主机镜像、密钥对、节点规格、外部网络;

所述集群规模的配置信息包括:主节点个数和从节点个数。

本发明实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序;所述计算机程序被执行后,能够实现前述实施例提供的攻击取证方法,例如,执行如图1所示方法中。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1