天天看点

调研分析|国内外友商容器服务备份恢复方案

作者:啊北2333
因为业务需求,需要针对自建的集群进行备份和恢复,所以针对国内外友商的容器服务备份恢复方案做了一个简单的调研分析。

1 阿里云ACK备份恢复应用

1.1 简介

阿里云容器服务ACK提供了针对应用的备份,恢复与迁移的一站式解决方案,能够实现有状态应用的崩溃一致性备份、有状态应用一致性备份及跨可用区、跨地域的备份和恢复。

崩溃一致性备份:不保证应用缓存和操作系统缓存完全备份在存储介质中。 应用一致性备份:保证应用缓存及操作系统缓存备份在存储介质。

ACK备份中心的使用场景有:

  • ACK集群内持久化应用容灾和同地域集群间迁移
  • 混合云容灾和应用迁移
  • 公共云跨地域集群之间的容灾
调研分析|国内外友商容器服务备份恢复方案
调研分析|国内外友商容器服务备份恢复方案
调研分析|国内外友商容器服务备份恢复方案

1.2 ACK服务备份恢复步骤

  1. 创建备份仓库

ACK目前提供的备份服务是使用阿里云的OSS存储来进行数据备份,每个集群需要指定一次备份仓库。

  1. 创建备份任务

创建备份任务时需要指定下列参数:

参数 描述
名称 设置备份任务的名称,必填项。
备份仓库 选择需要关联的备份仓库,必填项。
备份命名空间 支持选中一个或者多个备份命名空间。表示备份选中的一个或多个命名空间中的应用,必填项。
指定标签备份 填写需要备份的应用标签,以指定备份带有该标签的应用。
排除命名空间 支持选中一个或者多个排查命名空间。表示备份时排除选中的命名空间中的应用。
指定资源 支持填写多个资源对象名称,多个资源对象名称以英文逗号(,)间隔,例如deploy, configmap等。指定资源后可以只备份特定资源。
排除资源 支持填写多个资源对象名称,多个资源对象名称以英文逗号(,)间隔,例如pod, secret等。表示排除备份选中的资源对象应用。
备份存储卷 设置是否开启备份存储卷以及存储应用中的数据。当选中备份存储卷时,默认为您进行数据备份。如果存储卷是云盘,则通过快照进行备份;如果存储卷不是云盘,则会通过HBR方式进行备份。
备份有效期 设置备份任务的数据存储有效期,过期之后数据将无法恢复。
备份类型 选择立即备份或定时备份。当设置为定时备份时,需要配置备份周期。支持Crontab表达式设置定时备份。关于如何使用Crontab表达式,请参见how-use-cron-linux。
  1. 为文件系统类型的数据卷制作快照

若创建备份任务时已选中备份存储卷且存储类型使用了非云盘类型,即使用混合云备份服务HBR(Hybrid Backup Recovery)进行文件备份。根据恢复需求,可在恢复集群中选择制作云盘快照或文件系统CNFS快照。

  1. 恢复应用和数据卷

执行恢复应用时,需要配置以下参数:

配置项 说明
名称 恢复任务名称,仅支持小写字母和数字。
备份仓库 选择备份文件所在的仓库。
选择备份 选择备份文件。
重定义命名空间 若需要修改备份数据的命名空间,请单击添加,选择备份数据所属的命名空间,在冒号后设置恢复后数据所属的命名空间。

1.3 优势

  1. 覆盖场景广,包含同一集群内数据备份恢复,混合云之间的数据备份恢复与迁移以及跨地域的数据备份恢复。
  2. 备份颗粒度细腻,能够通过资源对象名称,命名空间和有效期等条件筛选出需要备份的指定资源,避免造成资源的浪费。
  3. 支持备份存储卷,针对不同的存储卷,可支持云盘类型存储(通过快照备份)和文件系统类型(通过HBR来备份)。

1.4 不足

目前ACK的备份仓库仅支持阿里云自身的OSS存储,不支持其它厂商的对象存储,且目前删除备份数据库只能通过OpenAPI平台删除,无法在前端页面通过白屏化的操作删除。

2 腾讯云TKE备份恢复方案

2.1 简介

腾讯云容器服务TKE并未提供专门的备份恢复工具,而是使用腾讯云对象存储COS搭配开源备份恢复工具Velero来实现集群资源备份和还原。

2.2 TKE 服务备份恢复步骤

  1. 在需要被迁移的集群和目标集群上都安装Velero实例,并且两个集群的Velero实例指向相同的腾讯云 对象存储 COS 位置
  2. 使用Velero在需要被迁移的集群执行备份操作,生成备份数据存储到对象存储COS。
  3. 在目标集群上使用Velero执行数据的还原操作实现迁移。

2.3 优势

备份恢复方案的选型搭配自由及多样化,用户可根据实际场景与业务需求,自由选择对象存储以及备份工具,自主完成备份恢复。

2.4 不足

  1. 没有白屏化操作,全程需要用户手动实现集群资源的备份与恢复,用户操作难度高且不友好。
  2. 备份恢复由用户自身选择开源工具,无法保证资源备份和恢复的质量与数量,存在数据无法恢复的风险。
  3. 自建或其他云平台的集群资源迁移到TKE时,需要考虑和解决因跨平台导致集群环境差异问题,为此需要通过Velero提供的众多实用备份和还原策略帮助解决问题。

3 华为云CBR备份恢复方案

3.1 简介

华为云提供专门的云备份产品CBR用于云内的弹性云服务器(Elastic Cloud Server,ECS)、云耀云服务器(Hyper Elastic Cloud Server,HECS)、裸金属服务器(Bare Metal Server,BMS)(下文统称为服务器)、云硬盘(Elastic Volume Service,EVS)、SFS Turbo文件系统、云下VMware虚拟化环境和本地文件目录,提供简单易用的备份服务,当发生病毒入侵、人为误删除、软硬件故障等事件时,可将数据恢复到任意备份点。

调研分析|国内外友商容器服务备份恢复方案
调研分析|国内外友商容器服务备份恢复方案

3.2 CBR 服务备份恢复步骤

云备份CBR针对不同的场景,不同的数据提供不同的备份策略和恢复策略。

  1. 备份

备份即一个备份对象执行一次备份任务产生的备份数据,包括备份对象恢复所需要的全部数据。云备份产生的备份可以分为几种类型:

  • 云硬盘备份:云硬盘备份提供对云硬盘的基于快照技术的数据保护。
  • 云服务器备份:云服务器备份提供对弹性云服务器和裸金属服务器的基于多云硬盘一致性快照技术的数据保护。同时,未部署数据库等应用的服务器产生的备份为服务器备份,部署数据库等应用的服务器产生的备份为数据库服务器备份。
  • SFS Turbo备份:SFS Turbo备份提供对SFS Turbo文件系统的数据保护。
  • 混合云备份:混合云备份提供对线下备份存储OceanStor Dorado阵列中的备份数据以及VMware服务器备份的数据保护。
  • 文件备份:文件备份提供对云上服务器或用户数据中心虚拟机中的单个或多个文件的数据保护,无需再以整机或整盘的形式进行备份。
  1. 存储库

云备份使用存储库来存放备份。创建备份前,需要先创建至少一个存储库,并将服务器或磁盘绑定至存储库。服务器或磁盘产生的备份则会存放至绑定的存储库中。

存储库分为备份存储库和复制存储库两种。备份存储库用于存放备份对象产生的备份,复制存储库用于存放复制操作产生的备份。

不同类型的备份对象产生的备份需要存放在不同类型的存储库中。

  1. 策略

策略分为备份策略和复制策略。

  • 备份策略:需要对备份对象执行自动备份操作时,可以设置备份策略。通过在策略中设置备份任务执行的时间、周期以及备份数据的保留规则,将备份存储库绑定到备份策略,可以为存储库执行自动备份。
  • 复制策略:需要对备份或存储库执行自动复制操作时,可以设置复制策略。通过在策略中设置复制任务执行的时间、周期以及备份数据的保留规则,将备份存储库绑定到复制策略,可以为存储库执行自动复制。复制产生的备份需要存放在复制存储库中。

3.3 优势

华为云的备份产品CBR提供了较为全面的备份恢复方案,不仅仅针对容器服务,同时也针对云服务器,云硬盘等。同时,针对不同的数据类型以及不同的业务场景,提供了不同的备份策略以及存储库选择,保障了用户数据的安全性和正确性,确保业务安全。

3.4 不足

华为云CBR暂不支持批量恢复数据操作。

4 Google Backup for GKE

4.1 简介

Backup for GKE是一项用于在GKE中备份和恢复工作负载的服务。它有两个组成部分:

  • 用作服务控制平面的 Google Cloud API。
  • GKE 插件(Backup for GKE代理),您必须在每个要对其执行备份和恢复操作的集群中启用它。

启用后,Backup for GKE服务会与GKE界面、Google Cloud CLI和REST API集成,从而为开发和运维提供一致的工作流。备份会捕获两种形式的数据:

  • 配置备份:从正在备份的集群 API 服务器中提取的一组kubernetes资源说明,用于捕获集群状态。
  • 卷备份:一组与配置备份中找到的PersistentVolumeClaim资源相对应的卷备份。
调研分析|国内外友商容器服务备份恢复方案

Backup for GKE包含两个主要组件:

  • 在Google Cloud中运行的一项服务,支持基于资源的 REST API。 此服务充当Backup for GKE的控制平面。该服务包含与此API交互的Google Cloud Console界面元素。
  • 在执行备份或恢复的每个集群中运行的代理。 代理与Backup for GKE API进行交互,从而在这些集群中运行备份和恢复操作。

4.2 Backup for GKE备份恢复步骤

  1. 定义自定义备份和恢复逻辑

管理员可以创建ProtectedApplication资源来自定义各个有状态应用的备份和恢复。ProtectedApplication资源定义了哪些kubernetes资源属于应用实例。ProtectedApplications是一个可选配置步骤,可将其他备份和恢复逻辑应用于该应用。如果没有为备份定义ProtectedApplications,请考虑以下含义:

  • 要定义备份和恢复范围,最精细的选项是命名空间。
  • 备份期间会进行卷备份,而不会尝试使用这些卷让工作负载处于静默状态。

只有使用Deployment或StatefulSet部署的应用才能使用ProtectedApplication资源。此外,在定义 ProtectedApplication资源时,有三种备份和恢复策略可供使用:

  • 全部备份和全部恢复
  • 备份一个和全部恢复
  • 转储和加载
  1. 规划一组备份方案

备份方案为一系列备份提供配置、位置和管理功能。备份方案包含备份配置,此配置涉及源集群、选择要备份的工作负载以及存储此方案下生成的备份工件的区域。

用户可以为每个集群创建一个或多个备份方案。有两个主要原因导致用户可能需要为集群使用多个备份方案:

  • 用户希望将备份工件存储在多个区域中。 在这种情况下,请为每个要存储备份的区域创建一个备份计划。
  • 用户希望对集群的备份进行分区,例如:
    • 用户可能希望制作分散在一天时间中的多个较小备份,而不是在一天中的一个时间点制作非常大的备份。
    • 用户希望更频繁地备份集群的某些部分,其余部分则不(例如,每天备份某一些命名空间,每小时备份其他命名空间)。

建议每个集群至少有一个备份方案。

  1. 备份工作负载

备份会捕获两种形式的数据:

  • 配置备份:从正在备份的集群的API服务器中提取的一组kubernetes资源说明。
  • 卷备份:一组与配置备份中找到的PersistentVolumeClaim资源相对应的卷。

如果用户的备份方案定义了备份的时间表,则系统会自动根据该时间表创建备份。此外,用户也可以手动创建备份。

  1. 规划一组恢复方案

恢复方案是为相应备份预配置的恢复场景。恢复方案可以向管理员申请分配使用这些配置的权限。发生突发事件时,用户可以快速且独立地恢复备份。例如,已部署应用中的软件更新可能会使永久性数据损坏,从而将应用命名空间置于无效状态,这需要恢复。

在恢复期间,用户还可以选择应用替换规则,用于匹配一组资源并针对新值替换这些资源上属性的当前值。

  1. 恢复备份

创建备份后,管理员可以为该备份创建恢复方案,以便开始将备份的部分内容恢复到目标集群(可能与最初从中创建备份的集群不同)。

恢复备份后,系统会在目标集群中重新创建kubernetes资源。创建资源后,工作负载功能的实际恢复需要遵循常规集群协调过程(例如,Pod会被安排到节点,然后在这些节点上启动)。

4.3 优势

  1. Backup for GKE支持自定义备份方案与自定义恢复方案,适用于多种业务场景。
  2. Backup for GKE提供了自定义资源ProtectedApplication进行数据的备份与恢复,屏蔽了底层的备份与恢复细节,用户无须感知具体的备份与恢复逻辑,降低了二次开发的难度。
  3. Back for GKE同时支持白屏化操作与命令行操作,白屏化操作降低了运维人员的操作难度,而命令行操作更有利于研发人员进行研发操作。

4.4 不足

  1. Backup for GKE是以插件形式向GKE集群提供备份恢复服务,需要预先安装,而不是集成在GKE中的。
  1. Backup for GKE目前只支持备份kubernetes资源和底层永久性卷,不支持备份GKE集群的配置信息和资源引用的容器镜像。

5 总结

Name Advantage Disadvantage
ACK 1. 覆盖场景广,包含同一集群内数据备份恢复,混合云之间的数据备份恢复与迁移以及跨地域的数据备份恢复。2. 备份颗粒度细腻,能够通过资源对象名称,命名空间和有效期等条件筛选出需要备份的指定资源,避免造成资源的浪费。3. 支持备份存储卷,针对不同的存储卷,可支持云盘类型存储(通过快照备份)和文件系统类型(通过HBR来备份)。 1. 目前ACK的备份仓库仅支持阿里云自身的OSS存储,不支持其它厂商的对象存储,且目前删除备份数据库只能通过OpenAPI平台删除,无法在前端页面通过白屏化的操作删除。
TKE 1. 备份恢复方案的选型搭配自由及多样化,用户可根据实际场景与业务需求,自由选择对象存储以及备份工具,自主完成备份恢复。 1. 没有白屏化操作,全程需要用户手动实现集群资源的备份与恢复,用户操作难度高且不友好。2. 备份恢复由用户自身选择开源工具,无法保证资源备份和恢复的质量与数量,存在数据无法恢复的风险。3. 自建或其他云平台的集群资源迁移到TKE时,需要考虑和解决因跨平台导致集群环境差异问题,为此需要通过Velero提供的众多实用备份和还原策略帮助解决问题。
CBR 华为云的备份产品CBR提供了较为全面的备份恢复方案,不仅仅针对容器服务,同时也针对云服务器,云硬盘等。同时,针对不同的数据类型以及不同的业务场景,提供了不同的备份策略以及存储库选择,保障了用户数据的安全性和正确性,确保业务安全。 华为云CBR暂不支持批量恢复数据操作。
Backup for GKE 1. Backup for GKE支持自定义备份方案与自定义恢复方案,适用于多种业务场景。2. Backup for GKE提供了自定义资源ProtectedApplication来进行数据的备份与恢复,屏蔽了底层的备份与恢复细节,用户无须感知具体的备份与恢复逻辑,降低了二次开发的难度。3. Back for GKE同时支持白屏化操作与命令行操作,白屏化操作降低了运维人员的操作难度,而命令行操作更有利于研发人员进行研发操作。 1. Backup for GKE是以插件形式向GKE集群提供备份恢复服务,需要预先安装,而不是集成在GKE中的。2. Backup for GKE目前只支持备份kubernetes资源和底层永久性卷,不支持备份GKE集群的配置信息和资源引用的容器镜像。

以上就是本次国内外云厂商容器服务备份恢复方案调研的全部内容了。本来想多调研一些厂商的,比如说青云,七牛云以及亚马逊等,但是时间仓促,就只调研了以上四家厂商。

继续阅读