一种基于声明式API的跨地域openstack集群管理方法及系统技术方案

技术编号:34804120 阅读:21 留言:0更新日期:2022-09-03 20:11
本申请公开了一种基于声明式API的跨地域openstack集群管理方法及系统,该方法首先通过声明式API将跨地域openstack集群中各资源对象定义为云管平台所在K8S集群中相应的CRD;在每个跨地域openstack集群中部署一个agent;任一agent通过list

【技术实现步骤摘要】
一种基于声明式API的跨地域openstack集群管理方法及系统


[0001]本申请涉及openstack集群管理
,特别是涉及一种基于声明式API的跨地域openstack集群管理方法及系统。

技术介绍

[0002]OpenStack是一个开源的云计算管理平台项目,通常由几个主要的组件组合起来完成具体工作。OpenStack支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenStack能够通过各种互补的服务提供了基础设施即服务的解决方案,每个服务提供命令式API(Application Programming Interface,应用程序编程接口)以进行集成,每次调用对应一个动作。
[0003]在实际生产中,一朵大型公司的私有云可能包括:自身数据中心机房里的中心云集群和部署在靠近业务现场的边缘云。此时,私有云内管理的openstack集群规模越来越大,数量也越来越多,因此,需要通过一个中心管理平台对跨地域的各个openstack资源池进行统一管理和运维。
[0004]目前在中心管理平台对跨地域的各个openstack资源池进行管理的方法,可以参见图1所示,由图1可知,目前的方法通常是基于命令式API进行openstack集群管理。具体地,针对跨地域openstack集群,不同资源池间的规模、版本不同,中心管理平台需要进行多版本适配,并维护各个资源池的参数列表。且中心管理平台通过命令式的rest api,从中心调用分布在不同地域的openstack集群的各模块接口,根据不同的业务需求,进行相应的管理操作。
[0005]然而,目前在中心管理平台对跨地域的各个openstack资源池进行管理的方法中,当需要对多个集群同时进行创建、删除等操作时,比如:一项业务需要在5个地区的openstack集群上各创建一个vm,有可能其中某一个集群在当前时刻网络连接出现异常,导致出现4个创建成功,1个创建失败的现象,后续需要再进行分析、重试,因此,网络异常应对能力较差,可靠性不够。云管平台中的访问多集群的模块发生重启,这类操作如果还没完成,执行结果也会丢失,难以恢复,也会导致集群管理可靠性不够。另外,由于是基于命令式API进行管理,从云管平台单点连接多个集群,需要先分别获取多个集群的鉴权信息,再生成对应版本的client,针对跨地域openstack集群,不同资源池间的规模、版本不同,对跨地域集群创建、删除等操作的参数可能有所区别,中心管理平台需要进行多版本适配,并维护各个资源池的参数列表,也会造成跨地域弱网情况下的可靠性问题。

技术实现思路

[0006]本申请提供了一种基于声明式API的跨地域openstack集群管理方法及系统,以解决现有技术中,弱网环境下中心管理平台对跨地域各个openstack资源池的管理可靠性较低的问题。
[0007]为了解决上述技术问题,本申请实施例公开了如下技术方案:
[0008]一种基于声明式API的跨地域openstack集群管理方法,所述方法包括:
[0009]通过声明式API对象设计,将跨地域openstack集群中各种类型的资源对象,定义为云管平台所在K8S(一个开源的容器编排调度平台)集群中相应的CRD(custom resource define,自定义资源类型),其中,任一资源对象匹配一个CRD;
[0010]在每个跨地域openstack集群中部署一个agent;
[0011]任一agent通过list

watch(K8S统一的一步消息处理机制)机制,监听云管平台中各CRD的事件,所述事件包括:创建事件、修改事件以及删除事件;
[0012]根据云管平台中各CRD的所述事件,所述任一agent调用本地openstack接口,进行相应的事件处理;
[0013]判断当前所有跨地域openstack集群中的事件是否处理完毕;
[0014]如果是,流程结束;
[0015]如果否,每隔第一设定时间,所述任一agent针对所述事件在本地发起重试操作,直到所述任一agent所在集群的资源对象状态与云管平台中的CRD状态一致,所述重试操作包括:重新执行事件和断线自动重连。
[0016]可选地,所述通过声明式API对象设计,将跨地域openstack集群中各种类型的资源对象,定义为云管平台所在的K8S集群中相应的CRD,包括:
[0017]确定openstack集群中需要在云端进行管理的各种类型的资源对象;
[0018]在云管平台的K8S集群中创建对应的CR资源。
[0019]可选地,任一跨地域openstack集群中的agent版本与本集群中的openstack版本一致。
[0020]可选地,当所述事件为高耗时事件时,所述方法还包括:
[0021]调用本地openstack接口,每隔第二设定时间查询所述高耗时事件的执行状态,所述高耗时事件为执行时间超过设定时间阈值的事件;
[0022]将所述高耗时事件的执行状态更新至云管平台的CR资源中,直到所述事件执行完毕。
[0023]可选地,根据云管平台中各CRD的所述事件,所述任一agent调用本地openstack接口,进行相应的事件处理的方法,包括:
[0024]所述任一agent将云管平台中各CRD的所述事件转化为本地的openstack接口调用请求;
[0025]根据所述openstack接口调用请求,所述任一agent在本地发起调用。
[0026]可选地,所述断线自动重连包括:
[0027]所述任一跨地域openstack集群中的agent建立与云管平台之间的list

watch长连接;
[0028]当任一跨地域openstack集群断网时,根据所述list

watch长连接,所述任一跨地域openstack集群中的agent与云管平台自动重连。
[0029]一种基于声明式API的跨地域openstack集群管理系统,所述系统包括:
[0030]CRD定义模块,用于通过声明式API对象设计,将跨地域openstack集群中各种类型的资源对象,定义为云管平台所在K8S集群中相应的CRD,其中,任一资源对象匹配一个CRD;
[0031]agent部署模块,用于在每个跨地域openstack集群中部署一个agent;
[0032]监听模块,设置于agent中,用于通过list

watch机制,监听云管平台中各CRD的事件,所述事件包括:创建事件、修改事件以及删除事件;
[0033]调用模块,设置于agent中,用于根据云管平台中各CRD的所述事件,调用本地openstack接口,进行相应的事件处理;
[0034]判断模块,用于判断当前所有跨地域openstack集群中的事件是否处理完毕,如果是,流程本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于声明式API的跨地域openstack集群管理方法,其特征在于,所述方法包括:通过声明式API对象设计,将跨地域openstack集群中各种类型的资源对象,定义为云管平台所在K8S集群中相应的CRD,其中,任一资源对象匹配一个CRD;在每个跨地域openstack集群中部署一个agent;任一agent通过list

watch机制,监听云管平台中各CRD的事件,所述事件包括:创建事件、修改事件以及删除事件;根据云管平台中各CRD的所述事件,所述任一agent调用本地openstack接口,进行相应的事件处理;判断当前所有跨地域openstack集群中的事件是否处理完毕;如果是,流程结束;如果否,每隔第一设定时间,所述任一agent针对所述事件在本地发起重试操作,直到所述任一agent所在集群的资源对象状态与云管平台中的CRD状态一致,所述重试操作包括:重新执行事件和断线自动重连。2.根据权利要求1所述的一种基于声明式API的跨地域openstack集群管理方法,其特征在于,所述通过声明式API对象设计,将跨地域openstack集群中各种类型的资源对象,定义为云管平台所在的K8S集群中相应的CRD,包括:确定openstack集群中需要在云端进行管理的各种类型的资源对象;在云管平台的K8S集群中创建对应的CR资源。3.根据权利要求1所述的一种基于声明式API的跨地域openstack集群管理方法,其特征在于,任一跨地域openstack集群中的agent版本与本集群中的openstack版本一致。4.根据权利要求2所述的一种基于声明式API的跨地域openstack集群管理方法,其特征在于,当所述事件为高耗时事件时,所述方法还包括:调用本地openstack接口,每隔第二设定时间查询所述高耗时事件的执行状态,所述高耗时事件为执行时间超过设定时间阈值的事件;将所述高耗时事件的执行状态更新至云管平台的CR资源中,直到所述事件执行完毕。5.根据权利要求1所述的一种基于声明式API的跨地域openstack集群管理方法,其特征在于,根据云管平台中各CRD的所述事件,所述任一agent调用本地openstack接口,进行相应的事件处理的方法,包括:所述任一agent将云管平台中各CRD的所述事件转化为本地的openstack接口调用请求;根据所述openstack接口调用请求,所述任一agent在本地发起调用。6.根据权利要求1所述的一种基于声明式API的跨地域openstack集群管理方法,其特征在于,所述断线自动重连包括:所述任一跨地域openstack集群中的agent建立与云管平台之间的list

watch长连接;当任一跨地域openstac...

【专利技术属性】
技术研发人员:杨勇
申请(专利权)人:济南浪潮数据技术有限公司
类型:发明
国别省市:

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

1