本页面介绍如何创建 Backup for GKE 备份方案,该方案用于备份 Google Kubernetes Engine (GKE) 中的工作负载。
备份方案为一系列备份提供配置、位置和管理功能。备份方案包含备份配置,此配置涉及源集群、选择要备份的工作负载以及存储此方案下生成的备份工件的区域。
您可以为每个集群创建一个或多个备份方案。有两个主要原因导致您可能需要为集群使用多个备份方案:
- 您希望将备份工件存储在多个区域中。在这种情况下,请为每个要存储备份的区域创建一个备份计划。
您希望对集群的备份进行分区,例如:
- 您可能希望制作分散在一天时间中的多个较小备份,而不是在一天中的一个时间点制作非常大的备份。
- 您希望更频繁地备份集群的某些部分,其余部分则不(例如,每天备份某一些命名空间,每小时备份其他命名空间)。
我们建议每个集群至少有一个备份方案。
我们还建议您为备份方案定义 Cron 时间表,以便根据该时间表自动创建备份。您还可以手动备份工作负载。创建备份方案后,您可以为该方案创建备份。
准备工作
查看备份位置
Backup for GKE 服务语境的“位置”与 Google Cloud 中的区域同义,并且仅限于 Backup for GKE 支持的区域。您可以使用 Google Cloud CLI 查找可用于备份方案、备份和恢复的区域。
如需列出项目的所有可用 Backup for GKE 位置,请运行以下命令:
gcloud alpha container backup-restore locations list \
--project=PROJECT_ID
将 PROJECT_ID
替换为您的 Google Cloud 项目的 ID。
创建备份方案
使用 gcloud CLI 或 Google Cloud Console 创建备份方案。
gcloud
如需创建具有时间表的备份方案,请运行以下命令:
gcloud alpha container backup-restore backup-plans create BACKUP_PLAN \
--project=PROJECT_ID \
--location=LOCATION \
--cluster=CLUSTER \
--all-namespaces \
--include-secrets \
--include-volume-data \
--encryption-key=ENCRYPTION_KEY
--cron-schedule=SCHEDULE \
--backup-retain-days=RETAIN_DAYS \
--backup-delete-lock-days DELETE_LOCK_DAYS \
--locked
替换以下内容:
BACKUP_PLAN
:您要创建的备份方案的名称。PROJECT_ID
:您的 Google Cloud 项目的 ID。LOCATION
:资源的计算区域,例如us-central1
。CLUSTER
:集群的相对路径:- 区域级集群:
projects/
PROJECT_ID
/locations/REGION
/clusters/CLUSTER_NAME
- 可用区级集群:
projects/
PROJECT_ID
/locations/ZONE
/clusters/CLUSTER_NAME
- 区域级集群:
CLUSTER_NAME
:要备份的集群的名称。--all-namespaces
:备份集群的所有命名空间。或者,指定--selected-applications
并附上要备份的应用列表,或指定--selected-namespaces
并附上要备份的命名空间列表。在创建备份方案时,您必须指定其中一个选项。--include-secrets
:(可选)如果Secret
资源在备份范围内,则包含这些资源。--include-volume-data
:(可选)在备份中包含永久性卷数据。如果要在恢复期间创建空卷,请省略此标志。ENCRYPTION_KEY
:(可选)定义客户管理的加密密钥的路径。如需启用加密功能,您必须运行以下命令将此角色分配给 Workload Identity 端点:gcloud projects add-iam-policy-binding PROJECT_ID \ --role roles/cloudkms.cryptoKeyEncrypterDecrypter \ --member serviceAccount:PROJECT_ID.svc.id.goog[gkebackup/agent]
此步骤需要针对每个项目执行一次。
SCHEDULE
:(可选)定义能够自动创建备份并支持标准 Cron 语法的时间表。例如,"10 3 * * *"
会在每天凌晨 3:10 创建备份。所有时间均采用世界协调时间 (UTC)。所计划的备份之间的最短间隔为 10 分钟。RETAIN_DAYS
:(可选)保留备份的天数。此方案的备份在此期限后会自动删除。DELETE_LOCK_DAYS
:(可选)无法删除备份的天数。如果设置了此值,则在该生命周期到期之前,不能(自动或手动)删除为该方案创建的备份。--locked
:(可选)锁定备份方案的保留政策。
如需查看选项的完整列表,请参阅 gcloud alpha container backup-restore backup-plans create
文档。
控制台
在 Cloud Console 中执行以下任务:
转到 Cloud Console 中的 Google Kubernetes Engine 页面。
在导航菜单中,点击 Backup for GKE。
点击创建备份方案。
在方案详情部分,完成以下操作,然后点击下一步:
- 选择要备份的集群。
- 输入备份方案名称和可选说明。
- 选择备份位置。
(可选)在范围和加密部分中,完成以下操作,然后点击下一步:
选择备份方案的范围:
- 点击所有命名空间,备份备份中的所有命名空间资源。
- 点击此集群中的所选命名空间以选择要包含在备份方案中的命名空间。
- 点击此集群中的所选受保护应用,通过指定命名空间和应用名称来添加资源。
点击包括 Secret 复选框以包含 Kubernetes Secret 资源。
如果您希望在备份中使用卷数据,请点击包括永久性卷数据复选框。如果要在恢复期间创建空卷,请取消选中此复选框。
如需启用 CMEK 加密,您必须首先向代理授予显式访问加密密钥的权限,方法是手动为您的项目中自动创建的
gkebackup-agent
Google 服务帐号分配额外的权限。将 Cloud Key Management Service CryptoKey Encrypter/Decrypter 角色 (roles/cloudkms.cryptoKeyEncrypterDecrypter
) 分配给项目中的gkebackup-agent
Google 服务帐号。此步骤只需要针对每个项目执行一次。- 点击使用客户管理的加密密钥复选框以选择密钥。
(可选)在时间表和保留部分中,完成以下操作,然后点击下一步:
- 如需定义时间表,请在 CRON 字符串字段中,使用标准 cron 语法输入表达式。例如,
10 3 * * *
会在每天凌晨 3:10 创建备份。所有时间均采用世界协调时间 (UTC)。所计划的备份之间的最短间隔为 10 分钟。 - 设置在自动删除备份之前保留备份的天数。
- 设置无法删除备份的天数。
- 如需锁定保留政策,请点击锁定图标,将锁定从关闭切换为开启。
- 如需定义时间表,请在 CRON 字符串字段中,使用标准 cron 语法输入表达式。例如,
查看备份方案详情,然后点击创建方案。
查看备份方案
使用 gcloud CLI 或 Cloud Console 查看备份方案及其详细信息。
gcloud
如需列出项目和区域中的所有备份方案,请运行以下命令:
gcloud alpha container backup-restore backup-plans list \
--project=PROJECT_ID \
--location=LOCATION
仅对于 list
命令,您可以提供 -
作为除 PROJECT_ID
以外的任何参数的值。-
值充当通配符。如果您未指定命令行选项或未设置属性,则 -
值是任何参数的默认值。
如需查看选项的完整列表,请参阅 gcloud alpha container backup-restore backup-plans list
文档。
如需查看备份方案的详细信息,请运行以下命令:
gcloud alpha container backup-restore backup-plans describe BACKUP_PLAN \
--project=PROJECT_ID \
--location=LOCATION
如需查看选项的完整列表,请参阅 gcloud alpha container backup-restore backup-plans describe
文档。
控制台
在 Cloud Console 中执行以下任务:
转到 Cloud Console 中的 Google Kubernetes Engine 页面。
在导航菜单中,点击 Backup for GKE。
点击备份方案标签页。
展开集群,然后点击方案名称。
点击详细信息标签页以查看方案详细信息。
更新备份方案
使用 gcloud CLI 或 Cloud Console 更新备份方案。
gcloud
如需更新备份方案(例如通过添加新说明),请运行以下命令:
gcloud alpha container backup-restore backup-plans update BACKUP_PLAN \
--project=PROJECT_ID \
--location=LOCATION \
--description=DESCRIPTION
如需查看选项的完整列表,请参阅 gcloud alpha container backup-restore backup-plans update
文档。
控制台
在 Cloud Console 中执行以下任务:
转到 Cloud Console 中的 Google Kubernetes Engine 页面。
在导航菜单中,点击 Backup for GKE。
点击备份方案标签页。
展开集群,然后点击方案名称。
点击详细信息标签页以修改方案详情。
点击 edit 修改以修改方案部分,然后点击保存更改。
暂停备份时间表
您可以暂停备份时间表。在时间表暂停期间,系统不会创建自动备份。您仍然可以手动创建备份。
gcloud
如需暂停备份时间表,请运行以下命令:
gcloud alpha container backup-restore backup-plans update BACKUP_PLAN \
--project=PROJECT_ID \
--location=LOCATION \
--paused
如需查看选项的完整列表,请参阅 gcloud alpha container backup-restore backup-plans update
文档。
控制台
在 Cloud Console 中执行以下任务:
转到 Cloud Console 中的 Google Kubernetes Engine 页面。
在导航菜单中,点击 Backup for GKE。
点击备份方案标签页。
展开集群,然后点击方案名称。
点击暂停时间表,然后点击确认对话框中的暂停时间表。
删除备份方案
您可以使用 gcloud CLI 或 Cloud Console 删除备份方案。如果备份方案包含任何备份,则无法将其删除。
gcloud
如需删除备份方案,请运行以下命令:
gcloud alpha container backup-restore backup-plans delete BACKUP_PLAN \
--project=PROJECT_ID \
--location=LOCATION
如需查看选项的完整列表,请参阅 gcloud alpha container backup-restore backup-plans delete
文档。
控制台
在 Cloud Console 中执行以下任务:
转到 Cloud Console 中的 Google Kubernetes Engine 页面。
在导航菜单中,点击 Backup for GKE。
点击备份方案标签页。
展开集群,然后点击方案名称。
点击 delete 删除方案。
输入备份方案名称,然后点击确认对话框中的删除备份方案。