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

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

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

 

 

 

引言

 

 

 

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

 

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

 

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

 

 

 

ACK备份中心介绍

 

 

 

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

 

备份中心概述:

https://help.aliyun.com/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业务迁移最佳实践: 灵活管理资源备份与调整策略,实现高效简便的应用恢复》




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

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

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


相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3月前
|
存储 Kubernetes 监控
K8s集群实战:使用kubeadm和kuboard部署Kubernetes集群
总之,使用kubeadm和kuboard部署K8s集群就像回归童年一样,简单又有趣。不要忘记,技术是为人服务的,用K8s集群操控云端资源,我们不过是想在复杂的世界找寻简单。尽管部署过程可能遇到困难,但朝着简化复杂的目标,我们就能找到意义和乐趣。希望你也能利用这些工具,找到你的乐趣,满足你的需求。
274 33
|
5月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
针对本地存储和 PVC 这两种容器存储使用方式,我们对 ACK 的容器存储监控功能进行了全新升级。此次更新完善了对集群中不同存储类型的监控能力,不仅对之前已有的监控大盘进行了优化,还针对不同的云存储类型,上线了全新的监控大盘,确保用户能够更好地理解和管理容器业务应用的存储资源。
450 217
|
3月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
4月前
|
存储 监控 对象存储
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
ACK 容器监控存储全面更新:让您的应用运行更稳定、更透明
|
4月前
|
监控 Kubernetes Cloud Native
基于阿里云容器服务Kubernetes版(ACK)的微服务架构设计与实践
本文介绍了如何基于阿里云容器服务Kubernetes版(ACK)设计和实现微服务架构。首先概述了微服务架构的优势与挑战,如模块化、可扩展性及技术多样性。接着详细描述了ACK的核心功能,包括集群管理、应用管理、网络与安全、监控与日志等。在设计基于ACK的微服务架构时,需考虑服务拆分、通信、发现与负载均衡、配置管理、监控与日志以及CI/CD等方面。通过一个电商应用案例,展示了用户服务、商品服务、订单服务和支付服务的具体部署步骤。最后总结了ACK为微服务架构提供的强大支持,帮助应对各种挑战,构建高效可靠的云原生应用。
|
5月前
|
存储 监控 对象存储
ACK容器监控存储全面更新:让您的应用运行更稳定、更透明
介绍升级之后的ACK容器监控体系,包括各大盘界面展示和概要介绍。
|
4月前
|
监控 Cloud Native Java
基于阿里云容器服务(ACK)的微服务架构设计与实践
本文介绍如何利用阿里云容器服务Kubernetes版(ACK)构建高可用、可扩展的微服务架构。通过电商平台案例,展示基于Java(Spring Boot)、Docker、Nacos等技术的开发、容器化、部署流程,涵盖服务注册、API网关、监控日志及性能优化实践,帮助企业实现云原生转型。
|
1月前
|
关系型数据库 MySQL Docker
|
8天前
|
Docker 容器
Docker网关冲突导致容器启动网络异常解决方案
当执行`docker-compose up`命令时,服务器网络可能因Docker创建新网桥导致IP段冲突而中断。原因是Docker默认的docker0网卡(172.17.0.1/16)与宿主机网络地址段重叠,引发路由异常。解决方法为修改docker0地址段,通过配置`/etc/docker/daemon.json`调整为非冲突段(如192.168.200.1/24),并重启服务。同时,在`docker-compose.yml`中指定网络模式为`bridge`,最后通过检查docker0地址、网络接口列表及测试容器启动验证修复效果。
|
3月前
|
监控 关系型数据库 MySQL
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
zabbix7.0.9安装-以宝塔安装形式-非docker容器安装方法-系统采用AlmaLinux9系统-最佳匹配操作系统提供稳定运行环境-安装教程完整版本-优雅草卓伊凡
189 30

热门文章

最新文章

推荐镜像

更多