码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Kurator v0.5.0发布,打造统一的多集群备份与存储体验


    合集 - 云计算(56)
    1.15年了,我们到底怎样才能用好 Serverless?04-272.工业互联网:加速从“中国制造”迈向“中国智造”05-043.Istio数据面新模式:Ambient Mesh技术解析05-064.分布式场景下,如何对外提供易变的服务,打造可靠的注册中心?05-065.看华为云Serverless 4大特性如何让软件架构更丝滑05-066.当Serverless遇到Regionless:现状与挑战05-087.全域Serverless化,华为云引领下一代云计算新范式07-198.中小企业建设数字化工厂,选择集成老路还是整体重构?07-209.EDS从小白到专家丨打造你的专属“数据物流”系统07-2010.DataArts Studio实践丨通过Rest Client 接口读取RESTful接口数据的能力07-2111.MES/MOM国内市场现状趋势与新生态模式参考07-2112.新一轮智能制造相关产业政策猜想07-2413.3步带你搞定华为云编译构建CodeArts Build “新手村任务”07-2414.深耕零售行业数字化,乐檬软件与华为云携手共进07-2515.资源成本降低70%!华为MetaERP资产核算的Serverless架构实践07-2716.云图说丨初识华为云OrgID:轻松实现统一帐号、统一授权07-2817.建设数字工厂:生产订单批量拆分的实现方法07-2818.建设数字工厂:MRP物料需求计划的逻辑原理与配置方法07-3119.如何为物联网设备注入“华为云+鸿蒙DNA”?08-0220.山歌寥哉!生产制造系统需要新治理框架08-0321.下一代MES系统架构分析与选型参考08-0422.如何用IoT边缘连接器实现云端应用控制PLC?08-0723.TooKit助力开发者上云08-0924.华为云API Explorer:自动化运维的得力助手08-1525.【HCDG城市行东莞站】松山湖开发者村助力企业释放数字新动能08-2126.EDS从小白到专家丨生态产业链高效协同的一计良策08-2527.KubeEdge Sedna v0.6 & Ianvs v0.2 重磅发布:边云协同终身学习全面升级08-2828.Karmada 结合 coreDNS 插件实现跨集群统一域名访问08-2929.《华为云DTSE》期刊2023年第二季—HDC.Cloud 2023专刊08-2930.跑AI大模型的K8s与普通K8s有什么不同?08-3131.跨越2000公里,15岁少年的云上逐梦09-0632.EDS从小白到专家丨打造数据交换的六边形卫士,让你的数据你做主09-0633.华为云发布CodeArts Inspector漏洞管理服务,守护产品研发安全09-1134.教你2种方法,将iOS设备通过MQTT协议连接到华为云物联网平台09-1235.一图回顾华为云开发者联盟扫地僧见面会09-2236.如何利用动态配置中心在JavaAgent中实现微服务的多样化治理10-0837.KubeCon China 2023 | 拥抱开源,华为云原生华彩绽放10-1138.一图看懂CodeArts Inspector 三大特性,带你玩转漏洞管理服务10-1139.Cloud Bursting解决方案,Serverless容器降本增效极致体验10-1240.4大焕新,华为云CCE带你感受容器化上云体验10-1241. 华为云发布CodeArts APIMock服务,精准Mock,并行开发零等待!10-1642.当 BACnet 遇上 IoT,你将体验到不一样的大楼10-1743.云图说|初识API中心APIHub10-2044.文韬武略,创新无界,华为云1024程序员节精彩抢先看10-2345.KubeEdge v1.15.0发布!新增5大特性10-2446.1024 | 9位开发者分享生涯“最”时刻,文武状元大PK等你来10-2447.云图说|华为云CodeArts Build,云端化的编译构建平台10-2548.焕新升级!新一代云原生可观测平台10-2649.云图说|新一代Serverless应用托管引擎——CAE11-0250.一图看懂CodeArts Release三大特性11-0251.新一代云原生可观测平台之CCE服务监控篇11-0252.KubeEdge-Ianvs v0.2 发布:终身学习支持非结构化场景11-0353.云原生微服务的下一站:Proxyless Service Mesh11-0354.华为云云容器引擎CCE产品文档带来4个升级,降低使用难度11-0655.云图说|分钟级构建业务大屏——Astro大屏应用11-06
    56.Kurator v0.5.0发布,打造统一的多集群备份与存储体验11-08
    收起

    本文分享自华为云社区《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 相应的控制器便会自动启动迁移任务。这一系列任务包括将资源从源集群上传到对象存储,以及最终迁移到指定的目标集群。具体的迁移过程可参考以下示意图:

    cke_152.png

    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 提供了一种一键跨集群部署分布式存储的解决方案,既简化了配置步骤也显著降低了配置错误的可能性。架构如下图所示:

    cke_153.png

    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地址:

    https://github.com/kurator-dev/kurator

    Kurator主页:https://kurator.dev/

    Slack地址: https://join.slack.com/t/kurator-hq/shared_invite/zt-1sowqzfnl-Vu1AhxgAjSr1XnaFoogq0A

     

    点击关注,第一时间了解华为云新鲜技术~

     

  • 相关阅读:
    kafka-消费者服务搭建&配置&简单消费(SpringBoot整合Kafka)
    ASEMI整流桥GBPC3510在直流有刷电机中的妙用
    Vue的SetUp函数
    python实现选择排序算法
    Redis的数据类型以及应用场景
    磨金石教育摄影技能干货分享|传统民居摄影作品欣赏
    llama-7B、vicuna-7b-delta-v1.1和vicuna-7b-v1.3——使用体验
    【Android笔记08】Android基本的UI控件(ImageButton、RadioButton、CheckBox、Switch)
    JAVA工具----maven(一)
    ECharts 实例2
  • 原文地址:https://www.cnblogs.com/huaweiyun/p/17818045.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号