本页面介绍了如何在 Google Distributed Cloud (GDC) 空气隔离环境中为集群工作负载创建和管理备份方案。
备份方案为一系列备份提供配置、位置和管理功能。备份方案包含备份配置,此配置涉及源集群以及选择要备份的工作负载。Google 建议为每个集群提供至少一个备份方案。
您可以为每个集群创建一个或多个备份方案。您可能出于以下某种原因需要对集群的备份进行分区:
- 您可能希望制作分散在一天时间中的多个较小备份,而不是在一天中的一个时间点制作非常大的备份。
- 您希望更频繁地备份集群的某些部分,其余部分则不(例如,每天备份某一些命名空间,每小时备份其他命名空间)。
单个集群或虚拟机 (VM) 可以属于一个或多个备份方案。一个备份方案不能跨越多个集群;不过,如果多个虚拟机位于同一集群中,则单个备份方案可以捕获这些虚拟机。您必须将所有备份和恢复资源与项目名称相关联。
准备工作
如需创建备份方案,您必须具备以下条件:
- 必要的身份和访问权限角色:
- 用户集群备份管理员:管理用户集群中的备份资源,例如备份和恢复计划。请让您的组织 IAM 管理员为您授予 User Cluster Backup Admin (
user-cluster-backup-admin) 角色。如需了解详情,请参阅角色定义。
- 用户集群备份管理员:管理用户集群中的备份资源,例如备份和恢复计划。请让您的组织 IAM 管理员为您授予 User Cluster Backup Admin (
- 如果您是应用运维人员,请让拥有用户集群备份管理员权限的管理员为您创建备份方案。
- 备份用户集群时,请确保将用于创建备份方案的项目附加到该集群。
创建备份方案
我们建议您为备份方案定义 Cron 时间表,以便根据该时间表自动创建备份。您还可以手动备份工作负载。如需了解详情,请参阅创建手动备份。
使用 GDC 控制台或 API 创建备份方案。
控制台
- 登录 GDC 控制台。
- 在导航菜单中,点击 Backup for Clusters。
- 点击创建备份方案。
- 在方案详情部分,完成以下步骤,然后点击继续:
- 在集群列表中,选择要备份的集群。
- 在项目列表中,选择相应项目。
- 在备份方案名称字段中,输入您选择的备份方案名称。
- (可选)在备份方案说明中,输入备份方案的说明。
- 在备份代码库字段中,选择一个备份代码库。备份存储库是一组对象存储实现。
- 点击下一步。
在范围和加密部分中,完成以下步骤,然后点击继续:
为备份方案选择以下范围之一:
- 点击整个集群,备份备份中的所有命名空间资源。
- 点击集群中的所选命名空间,选择要备份的集群中的命名空间。
- 依次点击修改集群命名空间和添加集群命名空间,然后输入命名空间。
- 点击此集群中的所选受保护应用,通过指定命名空间和应用名称来添加资源。
- 点击修改受保护的应用,然后点击添加受保护的应用,以输入命名空间和受保护的应用。
点击包括 Secret 以包含 Kubernetes
Secret资源。如果您希望在备份中使用卷数据,请点击包括永久性卷数据。如果要在备份期间创建空卷,请取消选中此复选框。
在时间表和保留部分中,完成以下步骤,然后点击继续:
- 如需定义时间表,请在 CRON 字符串字段中使用标准 cron 语法输入表达式。例如,表达式
10 3 * * *会在每天凌晨 3:10 创建备份。所有时间均采用世界协调时间 (UTC)。所预定的备份之间的最短间隔为 10 分钟。 - 在在以下天数后删除备份字段中,设置备份的保留天数。达到天数后,系统会自动删除备份。
- 设置无法删除备份的天数。
- 如需锁定保留政策,请点击锁定图标,将锁定从关闭切换为开启。
- 如需定义时间表,请在 CRON 字符串字段中使用标准 cron 语法输入表达式。例如,表达式
查看备份方案详情,然后点击创建方案。
API
在集群中创建 ClusterBackupPlan 自定义资源以安排备份。备份方案会根据 backupSchedule 定期安排备份。ClusterBackupPlan 资源是命名空间资源。以下是 ClusterBackupPlan 的示例:
apiVersion: backup.gdc.goog/v1
kind: ClusterBackupPlan
metadata:
name: CLUSTER_BACKUP_PLAN
namespace: PROJECT_NAME
spec:
targetCluster:
targetClusterType: UserCluster
targetClusterName:
kind: "Cluster"
name: CLUSTER_NAME
backupSchedule:
cronSchedule: CRON_SCHEDULE
paused: BACKUP_SCHEDULE_STATUS
clusterBackupConfig:
backupScope:
selectedNamespaces:
namespaces: [NAME_SPACE]
clusterBackupRepositoryName: CLUSTER_BACKUP_REPOSITORY
includeVolumeData: VOLUME_DATA_INCLUDED
volumeStrategy: VOLUME_STRATEGY
includeSecrets: SECRETS_INCLUDED
retentionPolicy:
backupDeleteLockDays: BACKUP_DELETE_LOCK_DAYS
backupRetainDays: BACKUP_RETAIN_DAYS
description: BACKUP_PLAN_DESCRIPTION
替换以下内容:
CLUSTER_BACKUP_PLAN:集群备份方案名称。PROJECT_NAME:您的 GDC 项目的名称。CLUSTER_NAME:要备份的集群的名称。封装的targetCluster字段包含以下组成部分:targetClusterType:要备份的集群的类型,例如UserCluster或ManagementAPI。此示例使用UserCluster。targetClusterName:包含由CLUSTER_NAME设置的name。
CRON_SCHEDULE:一个 crontab 时间表,用于指明何时安排备份,例如"*/30 * * * *"。所预定的备份之间的最短间隔为 10 分钟。BACKUP_SCHEDULE_STATUS:如果为true,则不会安排定期备份。NAME_SPACE:要纳入备份的命名空间列表。封装的clusterBackupConfig字段包含备份的配置详细信息:backupScope:指明哪些资源已备份。此示例使用selectedNamespaces。可能的值包括:allNamespaces:捕获所有命名空间中的所有资源。selectedNamespaces:捕获指定命名空间列表中的资源。selectedApplication:捕获由protectedApplications定义的资源。
namespaces:如果backupScope为selectedNamespaces,则适用。
CLUSTER_BACKUP_REPOSITORY:clusterBackupConfig中clusterBackupRepositoryName的值。这是存储备份的目标代码库,必须作为ReadWrite导入。VOLUME_DATA_INCLUDED:指定是否备份卷数据。默认情况下,此值为false。如果您希望在备份中包含卷数据,请将此值设置为true。VOLUME_STRATEGY:要执行的卷备份的类型。可能的值包括:ProvisionerSpecific:利用底层存储空间配置程序的备份和恢复功能。如果includeVolumeData为true,请使用此选项。LocalSnapshotOnly:仅在本地存储系统本身上创建卷的时间点副本。Portable:提供了一种与存储无关的卷数据备份方式。
SECRETS_INCLUDED:指定是否备份 Secret。默认情况下,此值为false。如果您想在备份中包含 KubernetesSecret资源,请将此参数设置为true。BACKUP_DELETE_LOCK_DAYS:防止在创建备份后指定的天数内删除备份,例如10 days。BACKUP_RETAIN_DAYS:定义保留备份的总天数。在此期限过后,系统会自动删除备份。将此值设置为较高的数字可能会导致存储空间耗尽,而将其设置为较低的值可能会增加数据丢失的风险。如果未指定,则默认情况下此值设置为 35。保留政策不会覆盖存储位置的保留政策,也不能超过 90 天。BACKUP_PLAN_DESCRIPTION:备份方案的说明。
创建备份方案后,系统会根据备份时间表,使用指定的备份配置自动创建备份。
查看备份方案
使用 GDC 控制台或 API 查看备份方案。
控制台
- 登录 GDC 控制台。
- 在导航菜单中,点击 Backup for Clusters。
- 点击选择项目,然后根据您的角色选择组织或项目:
- 用户集群备份管理员:选择组织可查看组织中的所有备份方案,选择项目可查看项目中的所有备份方案。
- 备份创建者:选择项目以查看项目中的所有备份方案。
- 点击备份方案标签页。
- 点击列表中的备份方案即可查看其详细信息。拥有“用户集群备份管理员”权限的用户可以查看组织中的所有备份方案。具有“备份创建者”角色的用户可以查看所选项目中的所有备份方案。
API
如需查看备份方案,请使用 kubectl get 命令:
kubectl get clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME -o yaml
替换以下内容:
CLUSTER_BACKUP_PLAN:要查看的备份方案的名称。PROJECT_NAME:您的 GDC 项目的名称。
修改备份方案
使用 GDC 控制台或 API 修改备份方案。
控制台
- 登录 GDC 控制台。
- 在导航菜单中,点击 Backup for Clusters。
- 点击选择项目,然后根据您的角色选择组织或项目:
- 用户集群备份管理员:选择组织可查看组织中的所有备份方案,选择项目可查看项目中的所有备份方案。
- 备份创建者:选择项目以查看项目中的所有备份方案。
- 点击备份方案标签页。
- 点击要修改的备份方案的名称。
- 点击方案配置标签页,查看可修改的字段。
点击时间表和保留对应的edit“修改”图标,即可修改相应资源:
- 如需更新时间表,请在 CRON 字符串字段中使用标准 cron 语法输入表达式。例如,表达式
10 3 * * *会在每天凌晨 3:10 创建备份。所有时间均采用世界协调时间 (UTC)。所预定的备份之间的最短间隔为 10 分钟。 - 在在以下天数后删除备份字段中,设置备份的保留天数。达到天数后,系统会自动删除备份。
在防止删除字段中,设置无法删除备份的天数。
如需锁定保留政策,请点击锁定图标,将锁定从关闭切换为开启。
点击保存按钮以确认更改。
- 如需更新时间表,请在 CRON 字符串字段中使用标准 cron 语法输入表达式。例如,表达式
API
如需修改备份计划,请使用 kubectl edit 命令修改 ClusterBackupPlan 自定义资源。此命令会在默认文本编辑器中打开资源的 YAML 配置。
kubectl edit clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME
替换以下内容:
CLUSTER_BACKUP_PLAN:要修改的备份方案的名称。PROJECT_NAME:您的 GDC 项目的名称。
在编辑器中,您可以修改以下字段:
spec.backupSchedule.cronSchedule:更新备份频率。spec.backupSchedule.paused:启用或停用备份时间表。spec.retentionPolicy.backupRetainDays:更改备份的保留时长。spec.retentionPolicy.backupDeleteLockDays:更改删除锁定期限。spec.retentionPolicy.locked:锁定保留政策。spec.deactivated:停用备份方案。将此字段设置为“true”可防止创建备份和进行进一步更新。
停用备用方案
使用 GDC 控制台或 API 停用备份方案:
控制台
- 登录 GDC 控制台。
- 在导航菜单中,点击 Backup for Clusters。
- 点击选择项目,然后根据您的角色选择组织或项目:
- 用户集群备份管理员:选择组织可查看组织中的所有备份方案,选择项目可查看项目中的所有备份方案。
- 备份创建者:选择项目以查看项目中的所有备份方案。
- 点击备份方案标签页。
- 点击要停用的备份方案的名称。
- 点击 Deactivate Plan(停用方案)按钮。
- 在相应字段中输入要停用的备份方案的名称。
点击停用按钮,即可完成此备份方案的停用。
API
如需停用备份方案,请将 deactivated 字段设置为 true:
kubectl patch clusterbackupplan CLUSTER_BACKUP_PLAN -n PROJECT_NAME -p '{"spec":{"deactivated":true}}' --type=merge
替换以下内容:
CLUSTER_BACKUP_PLAN:要停用的备份方案的名称。PROJECT_NAME:您的 GDC 项目的名称。