Kurator v0.5.0发布,打造统一的多集群备份与存储体验
本文分享自华为云社区《Kurator v0.5.0正式发布! 打造统一的多集群备份与存储体验》,作者: 云容器大未来 。
Kurator 是由华为云推出的开源分布式云原生套件。面向分布式云原生场景,Kurator 旨在为用户提供一站式的解决方案,帮助用户快速构建自己的分布式云原生平台。
在最新发布的 v0.5.0 版本中,Kurator 强化了其在多集群环境中的应用备份与恢复,以及存储管理的功能,以满足用户对于复杂部署的需求。本次更新主要包括以下两项新特性:
- 统一集群备份恢复与迁移:Kurator 现在支持一键定制化的备份与恢复多个集群中的应用和资源,并通过统一视图实时监控各集群的进度;同时,还支持跨集群资源的一键迁移功能。
- 统一分布式存储:Kurator 实现了一致性的分布式存储解决方案,其一站式部署让用户在多集群环境下轻松实现块存储、文件存储和对象存储的应用。
统一集群备份恢复与迁移
在多云和分布式环境的持续演变中,数据的安全性与可恢复性已经成为用户高度关注的问题。对于企业来说,数据丢失往往是一个难以承受的打击,可能导致严重的业务中断和信誉损失。在以 Kubernetes 为行业标准的环境中,伴随着服务数量和集群规模的增长,数据管理的复杂度也随之增加,这使得实施高效而灵活的备份策略变得尤为重要。
面对这种需求的不断扩大和挑战的增加,传统的备份工具往往在多环境下展现出局限性,难以提供一个无缝的统一解决方案。因此,Kurator 的统一备份方案应运而生,旨在提供这一领域的备份解决方案。基于 Velero (https://velero.io/) ,Kurator 为用户提供了一键式的操作体验,可以自定义备份并恢复横跨多个集群的应用与资源。通过 Kurator 提供的统一视图功能,用户能够实时监控各个集群备份的状态和进度。其覆盖范围涵盖了从 Pod、Deployment、Service 等 Kubernetes 原生资源,到 PersistentVolumes(PVs)等持久化存储的备份和恢复,以满足现代企业多元化的数据保护需求。
统一备份
Kurator 在备份解决方案上提供了多样化的选择,以适应不同场景下的数据保护需求。其灵活性确保了不同业务场景下都能找到合适的备份策略。
- 即时备份: 面对数据频繁变动的情形,“即时备份”能够迅速地提供保护,确保关键数据在关键时间点的完整性得以保持。
- 定期备份:对于那些不太频繁变动,但同样需要确保持久性的数据,“定期备份”可以根据预设的时间周期性的自动执行备份,以满足合规性要求和保障数据安全。
此外,Kurator 还提供了一系列高度定制化的备份选项。例如,“特定集群备份”允许运维团队基于策略或特定需求有选择性地备份特定集群。“资源过滤”功能则提供了细粒度的控制,使管理员能够根据资源的名称、命名空间或标签等属性来精确定义备份的范围。
这些备份策略的多样性和自动化能力为用户在不断变化的业务需求中,提供了稳定和可靠的数据保护。
接下来是一个统一备份的实际操作示例:
apiVersion: backup.kurator.dev/v1alpha1
kind: Backup
metadata:
...
name: select-labels
namespace: default
spec:
destination:
fleet: quickstart
policy:
resourceFilter:
labelSelector:
matchLabels:
app: busybox
ttl: 720h
status:
backupDetails:
- backupNameInCluster: kurator-member1-backup-default-select-labels
backupStatusInCluster:
completionTimestamp: "2023-10-28T03:37:13Z"
expiration: "2023-11-27T03:37:07Z"
formatVersion: 1.1.0
phase: Completed
progress:
itemsBackedUp: 1
totalItems: 1
startTimestamp: "2023-10-28T03:37:07Z"
version: 1
clusterKind: AttachedCluster
clusterName: kurator-member1
- backupNameInCluster: kurator-member2-backup-default-select-labels
backupStatusInCluster:
completionTimestamp: "2023-10-28T03:37:13Z"
expiration: "2023-11-27T03:37:07Z"
formatVersion: 1.1.0
phase: Completed
progress: {}
startTimestamp: "2023-10-28T03:37:07Z"
version: 1
clusterKind: AttachedCluster
clusterName: kurator-member2
...
观察 spec 配置,可以看到备份的目标是位于 Fleet 中各集群内所有标有 app:busybox 标签的资源。通过在 spec 中配置策略的方式,可以确保相关的资源得到备份。在 status 中,可以实时追踪到备份任务在每个集群,如 kurator-member1 和 kurator-member2,的执行状况,保持了操作的透明度。
更多的示例和细节,请参考: https://kurator.dev/docs/fleet-manager/backup/backup/
统一恢复
基于统一备份产生的备份数据,Kurator 通过统一恢复功能支持跨集群的应用和资源恢复。
- 针对即时备份恢复:依据“即时备份”创建的备份数据,可以快速恢复至指定关键时刻的状态。
- 针对定期备份恢复: 针对“定期备份”,Kurator 支持将备份数据恢复到最近一次成功执行备份的时间点。
类似备份功能,Kurator 在恢复方面也提供了多样化和定制化的选项。例如,“特定集群恢复”使得用户能够只将数据恢复到指定集群,而不必覆盖所有备份中包含的集群。“资源过滤”功能则允许用户对备份数据进行进一步筛选,只选择性地恢复需要的数据项。用户可以根据备份名称、命名空间或标签等属性来定义恢复的范围,这不仅提升了恢复过程的灵活性,也确保了高度的精确性。
参阅以下操作示例,了解如何使用 Kurator 进行统一恢复:
apiVersion: backup.kurator.dev/v1alpha1 kind: Restore metadata: ... name: minimal namespace: default spec: backupName: select-labels status: restoreDetails: - clusterKind: AttachedCluster clusterName: kurator-member1 restoreNameInCluster: kurator-member1-restore-default-minimal restoreStatusInCluster: completionTimestamp: "2023-10-28T09:24:07Z" phase: Completed progress: itemsRestored: 2 totalItems: 2 startTimestamp: "2023-10-28T09:24:05Z" - clusterKind: AttachedCluster clusterName: kurator-member2 restoreNameInCluster: kurator-member2-restore-default-minimal restoreStatusInCluster: completionTimestamp: "2023-10-28T09:24:07Z" phase: Completed progress: itemsRestored: 2 totalItems: 2 startTimestamp: "2023-10-28T09:24:05Z" ...
通过检查恢复任务的 spec 配置,我们可以确定本次恢复操作是针对前文提到的、标记为 select-labels 的备份数据。这里使用了最低配置,不进行恢复的筛选,直接根据备份的配置进行恢复。在 status 中,同样可以实时追踪到恢复任务在每个集群的执行状况。
更多的示例和细节,请参考: https://kurator.dev/docs/fleet-manager/backup/restore/
统一迁移
统一迁移旨在简化将应用程序及其资源从一个集群迁移到其他多个集群的过程。用户需要定义一种 migrate 类型的资源配置,并指定源集群、目标集群及相关策略。此外,类似于 Kurator 的统一备份和恢复功能,用户同样可以进行丰富的定制化配置。
配置完成之后,Kurator 相应的控制器便会自动启动迁移任务。这一系列任务包括将资源从源集群上传到对象存储,以及最终迁移到指定的目标集群。具体的迁移过程可参考以下示意图:

Kurator 统一迁移流程图
相较于使用 Velero,Kurator 提供了一个更为集成和清晰的迁移流程描述。所有必要的配置细节都集中在单一的 migrate 对象中,从而减少了随着目标集群数量增加而产生的配置负担。同时,Kurator自动管理从创建备份到完成迁移的全过程,简化了操作流程,降低了手动操作错误的风险。此外,用户还可以通过这一个对象来实时监控多个集群中的迁移进度,随时了解迁移的最新状态,确保整个流程按预期执行。
接下来是一个统一迁移的实际操作示例:
apiVersion: backup.kurator.dev/v1alpha1
kind: Migrate
metadata:
...
name: select-labels
namespace: default
spec:
policy:
resourceFilter:
labelSelector:
matchLabels:
app: busybox
sourceCluster:
clusters:
- kind: AttachedCluster
name: kurator-member1
fleet: quickstart
targetCluster:
clusters:
- kind: AttachedCluster
name: kurator-member2
fleet: quickstart
status:
conditions:
- lastTransitionTime: "2023-10-28T15:55:23Z"
status: "True"
type: sourceReady
phase: Completed
sourceClusterStatus:
backupNameInCluster: kurator-member1-migrate-default-select-labels
backupStatusInCluster:
completionTimestamp: "2023-10-28T15:55:18Z"
expiration: "2023-11-27T15:55:13Z"
formatVersion: 1.1.0
phase: Completed
progress: {}
startTimestamp: "2023-10-28T15:55:13Z"
version: 1
clusterKind: AttachedCluster
clusterName: kurator-member1
targetClusterStatus:
- clusterKind: AttachedCluster
clusterName: kurator-member2
restoreNameInCluster: kurator-member2-migrate-default-select-labels
restoreStatusInCluster:
completionTimestamp: "2023-10-28T15:56:00Z"
phase: Completed
startTimestamp: "2023-10-28T15:55:58Z"
...
在 spec 配置中,源集群设置为 kurator-member1,目标集群为 kurator-member2,迁移过程仅针对包含标签 app:busybox 的资源。在 status 中,迁移阶段 Phase 显示为 Completed,表明迁移操作已完成。sourceClusterStatus 和 targetClusterStatus 分别提供源集群资源的备份细节和目标集群资源的恢复情况。
更多的细节,请参考: https://kurator.dev/docs/fleet-manager/backup/migrate/
统一分布式存储
分布式存储作为现代云原生架构中不可或缺的一部分,提供了数据的可扩展性和可靠性。然而,在不同集群间实现一个一致的分布式存储解决方案,往往涉及到复杂的配置和管理工作。
Kurator 致力于简化分布式存储的部署与管理。基于领先的开源项目 Rook(https://rook.io/),Kurator 支持在多集群环境中轻松自动化管理分布式存储。这包括块存储、文件系统存储和对象存储等多种存储类型,以适应各种应用场景的需求。
利用 Fleet 插件,Kurator 提供了一种一键跨集群部署分布式存储的解决方案,既简化了配置步骤也显著降低了配置错误的可能性。架构如下图所示:

Kurator统一分布式存储架构图
接下来是一个通过 Fleet 插件部署多集群分布式存储的例子:
apiVersion: fleet.kurator.dev/v1alpha1 kind: Fleet metadata: name: quickstart namespace: default spec: clusters: - name: kurator-member1 kind: AttachedCluster - name: kurator-member2 kind: AttachedCluster plugin: distributedStorage: storage: dataDirHostPath: /var/lib/rook monitor: count: 3 labels: role: MonitorNodeLabel manager: count: 2 labels: role: ManagerNodeLabel
在 spec 中,clusters 指明了存储将部署在哪些集群上。在 status 中,plugin 配置下的 distributedStorage 标识此为一个分布式存储插件的安装。此外,dataDirHostPath 定义了存储的路径,而 monitor 和 manager 配置项则指定了 Ceph 组件的参数。
更多的示例和细节,请参考: https://kurator.dev/docs/fleet-manager/distributedstorage-plugin/
参考链接
统一备份恢复迁移特性介绍: https://kurator.dev/docs/fleet-manager/backup/
Fleet备份插件安装: https://kurator.dev/docs/fleet-manager/backup/backup-plugin/
统一备份操作指南: https://kurator.dev/docs/fleet-manager/backup/backup/
统一恢复操作指南: https://kurator.dev/docs/fleet-manager/backup/restore/
统一迁移操作指南: https://kurator.dev/docs/fleet-manager/backup/migrate/
统一分布式存储操作指南: https://kurator.dev/docs/fleet-manager/distributedstorage-plugin/
附:Kurator社区交流地址
GitHub地址:
Kurator主页:https://kurator.dev/
Slack地址: https://join.slack.com/t/kurator-hq/shared_invite/zt-1sowqzfnl-Vu1AhxgAjSr1XnaFoogq0A
Kurator v0.5.0发布,打造统一的多集群备份与存储体验的更多相关文章
- Kurator v0.3.0版本发布
摘要:2023年4月8日,Kurator正式发布v0.3.0版本. 本文分享自华为云社区<华为云 Kurator v0.3.0 版本发布!集群舰队助力分布式云统一管理>,作者:云容器大未来 ...
- 分布式云原生平台Kurator v0.2.0正式发布!一键构建分布式云原生平台
摘要:北京时间2023年2月9日,Kurator 正式发布 v0.2.0 版本. 本文分享自华为云社区<分布式云原生平台Kurator v0.2.0正式发布!一键构建分布式云原生平台>,作 ...
- Redis 5.0.7 讲解,单机、集群模式搭建
Redis 5.0.7 讲解,单机.集群模式搭建 一.Redis 介绍 不管你是从事 Python.Java.Go.PHP.Ruby等等... Redis都应该是一个比较熟悉的中间件.而大部分经常写业 ...
- redis 4.0.8 源码包安装集群
系统:centos 6.9软件版本:redis-4.0.8,rubygems-2.7.7,gcc version 4.4.7 20120313,openssl-1.1.0h,zlib-1.2.11 y ...
- 生产环境elasticsearch5.0.1和6.3.2集群的部署配置详解
线上环境elasticsearch5.0.1集群的配置部署 es集群的规划: 硬件: 7台8核.64G内存.2T ssd硬盘加1台8核16G的阿里云服务器 其中一台作为kibana+kafka连接查询 ...
- (七) Docker 部署 MySql8.0 一主一从 高可用集群
参考并感谢 官方文档 https://hub.docker.com/_/mysql y0ngb1n https://www.jianshu.com/p/0439206e1f28 vito0319 ht ...
- K8S 搭建 Kafka:2.13-2.6.0 和 Zookeeper:3.6.2 集群
搭建 Kafka:2.13-2.6.0 和 Zookeeper:3.6.2 集群 一.服务版本信息: Kafka:v2.13-2.6.0 Zookeeper:v3.6.2 Kubernetes:v1. ...
- Clusternet v0.5.0 重磅发布: 全面解决多集群应用分发的差异化配置难题
作者 徐迪,腾讯云容器技术专家. 汝英哲,腾讯云高级产品经理. 摘要 在做多集群应用分发的时候,经常会遇到以下的差异化问题,比如: 在分发的资源上全部打上统一的标签,比如 apps.my.compan ...
- LAL v0.32.0发布,更好的支持纯视频流
Go语言流媒体开源项目 LAL 今天发布了v0.32.0版本.距离上个版本刚好一个月时间,LAL 依然保持着高效迭代的状态. LAL 项目地址:https://github.com/q19120177 ...
- terraform v0.12.0 发布了
v0.12.0 相比以前的有好多新的特性,包括语法,以及函数增强,昨天还在折腾的一个json解码的问题,直接使用 v0.12.0 就可以解决了,同时也包含了for 操作处理同时官方文档对于v0.12. ...
随机推荐
- 一个Web项目实现多个数据库存储数据并相互切换
1.使用场景 多数据源使用场景一般为: 主从数据库切换 读写分离 兼容旧库 2.具体实现 实现原理 Spring2.x的版本中采用Proxy模式,就是在方案中实现一个虚拟的数据源,并且用它来封装数据源 ...
- happens-before 原则
happens-before 简述 从 JDK 5 开始,Java 使用新的 JSR-133 内存模型.JSR-133 使用 happens-before 的概念来阐述操作之间的内存可见性.在 JMM ...
- 我真的不想再用mybatis和其衍生框架了选择自研亦是一种解脱
我真的不想再用mybatis和其衍生框架了选择自研亦是一种解脱 文档地址 https://xuejm.gitee.io/easy-query-doc/ GITHUB地址 https://github. ...
- Django链接数据库出现的错误以及解决方法
问题一:django.db.utils.OperationalError: (1045, "Access denied for user 'leo'@'localhost' (using p ...
- 【路由器】小米 WR30U 解锁并刷机
本文主要记录个人对小米 WR30U 路由器的解锁和刷机过程,整体步骤与 一般安装流程 类似,但是由于 WR30U 的解锁 ssh 和刷机的过程中有一些细节需要注意,因此记录一下 解锁 ssh 环境准备 ...
- 在 Visual Studio 2022 中使用文件对比
在最新版本的 Visual Studio 2022 中,加入了新的功能特性--"文件对比". 在开发过程中,开发人员有时会需要比对文件差异,特别是代码文件,之前很多时候是借助版本控 ...
- 基于opencv-pyhton与opencv-c++的结合理解与学习
2023年上半年,一直在学习opencv-c++版本,学习了其中的多个库函数 笔记链接:https://www.cnblogs.com/Tan-code/category/2339311.html o ...
- Redis系列21:缓存与数据库的数据一致性讨论
Redis系列1:深刻理解高性能Redis的本质 Redis系列2:数据持久化提高可用性 Redis系列3:高可用之主从架构 Redis系列4:高可用之Sentinel(哨兵模式) Redis系列5: ...
- vue3探索——组件通信之依赖注入
背景 通常情况下,当我们需要从父组件向子组件传递数据时,会使用 props.想象一下这样的结构:有一些多层级嵌套的组件,形成了一颗巨大的组件树,而某个深层的子组件需要一个较远的祖先组件中的部分数据.在 ...
- 我的新书《Flink大数据分析实战》出版啦