【技术实现步骤摘要】
一种Kubernetes云原生应用灾备、迁移与恢复的方法
本专利技术属于云原生的
,尤其涉及一种Kubernetes云原生应用灾备、迁移与恢复的方法。
技术介绍
近年来,容器技术和Kubernetes平台持续升温,Kubernetes极大地提高了应用部署的速度和可管理性。全球范围内各行各业都在这一轻量级虚拟化方案上进行着积极而富有成效的探索,由于其灵活性、可扩展性和易用性,Kubernetes已成为容器编排器的事实标准,迅速落地并赋能产业,大大提高了资源利用效率和生产力。Kubernetes平台构建了许多与应用语言无关的特性,然而kubernetes平台的应用灾备、迁移与恢复功能没有实现,应用在灾备方面或依靠语言框架的工具实现、或将灾备逻辑写入代码逻辑中、或完全无视灾备需求。诚然,kubernetes社区中有使用集群联邦功能,据此可以进行集群和应用灾备使用。除去集群联邦功能尚未稳定的因素,使用集群联邦用于灾备,一方面成本将成倍上升,另一方面,基于集群联邦的灾备无法做到有状态应用的备份与恢复,局限性较大。 ...
【技术保护点】
1.一种Kubernetes云原生应用灾备、迁移与恢复的方法,其特征在于,包括如下步骤:/nS1、初始化系统到主集群中,创建一系列的自定义资源以及相关的控制器,如果出错则重试,直至没有错误,并进入下一步;其中控制器包括备份控制器、一个恢复控制器、一个操作控制器和一个对象存储控制器;所述自定义资源包括:/nBackups,其用于定义某次系统备份的kubernetes对象;/nLocations,其用于定义Kubernetes集群资源的数据存放位置或PV快照存放位置的kubernetes对象,可以将备份存储在多个位置;/nRestores,其用于定义还原的kubernetes对 ...
【技术特征摘要】
1.一种Kubernetes云原生应用灾备、迁移与恢复的方法,其特征在于,包括如下步骤:
S1、初始化系统到主集群中,创建一系列的自定义资源以及相关的控制器,如果出错则重试,直至没有错误,并进入下一步;其中控制器包括备份控制器、一个恢复控制器、一个操作控制器和一个对象存储控制器;所述自定义资源包括:
Backups,其用于定义某次系统备份的kubernetes对象;
Locations,其用于定义Kubernetes集群资源的数据存放位置或PV快照存放位置的kubernetes对象,可以将备份存储在多个位置;
Restores,其用于定义还原的kubernetes对象,创建后,系统将根据配置立即或按时启动,还原数据;
Schedules,其用于定义备份还原日程的kubernetes对象;
DeleteLog,其用于定义删除备份的kubernetes对象;
BackupLog,其用于定义备份请求的kubernetes对象;
RestoreLog,其用于定义恢复备份请求的kubernetes对象;
S2、对象控制器通过Minio的API将kubernetes对象存储至Minio,通过restic将PV数据备份存储至Minio;其中restic是一个快速,高性能,并且安全的备份工具,Minio是一个对象存储服务,存储大容量非结构化的数据,PV数据是kubernetes的一种资源,全称为PersistentVolumes;
S3、操作控制器将所有信息通过kube-apiserver保存到etcd中,并监控定时任务,如果有相关的定时任务,则创建对应的备份记录BackupLog或恢复记录RestoreLog,通过kube-apiserver保存到etcd中,再由kube-apiserver触发对应的控制器处理,其中etcd是kubernetes数据存储位置;
S4、备份控制器备份kubernetes对象和PV快照,并将其上传保存到对象存储控制器;
S5、恢复控制器通过读取对象存储控制器的内容,恢复备份到本集群中。
2.如权利要求1所述的Kubernetes云原生应用灾备、迁移与恢复的方法,其特征在于,所述步骤S2的运行步骤如下:
S2.1、对象存储控制器拉起Restic服务和Minio服务运行至本集群中,对象存储控制器暴露Restic服务和Minio服务端口,生成Minio备份的id和密钥文件;
S2.2、对象存储控制器生成一条所述步骤S1类型为Locations的记录,描述集群备份的相关信息;
S2.3、对象存储控制器保持在后台运行,等待备份控制器的存入和恢复控制器的读取。
3.如权利要求1所述的Kubernetes云原生应用灾备、迁移与恢复的方法,其特征在于,所述步骤S3中的操作步骤如下:
S3.1、创建备份任务:创建备份任务时,将创建一条类型为Backups的记录,并指明其为父备份任务;
S3.2、删除备份任务:将删除对应的一条Backups,不会从集群中删除由这条任务创建的其它对象;
S3.3、创建/删除定时任务:将创建/删除一条类型为Schedules的记录,每一条记录对应的一条备份任务Backups或恢复任务Restores,和一个根据Linux定时任务标准写法cron定义定时任务运行时间;
S3.4:创建备份位置:将创建一条类型为Locations的记录,可以创建另一个集群中的备份位置信息,用于应用迁移;
S3.5、备份:将创建一条类型为BackupLog的记录,记录本次备份信息,根据S3.1的备份任务,触发备份控制器生成备份,如果包含多个备份位置,则将本集群的备份推送到其他位置。
S3.6、创建恢复任务:通过备份时间、备份名等信息查询对象存储控制器,创建一条类型为Restores的记录,用于应用快速恢复到最新备份;
S3.7、恢复:通过选择一条恢复任务Restores记录,创建一条类型为RestoreLog的记录,记录本次恢复信息,RestoreLog记录关联一条BackupLog记录,通过选择恢复任务相关的版本,可恢复到最新版本或恢复到特定版本,恢复到最新版本即将当时最新的版本号记录到;
S3.8、迁移:首次使用迁移功能需提前在备kubernetes集群中运行灾备系统,主kube...
【专利技术属性】
技术研发人员:韦克璐,王志雄,赵凯麟,
申请(专利权)人:中国—东盟信息港股份有限公司,
类型:发明
国别省市:广西;45
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。