

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# Amazon EKS 备份
<a name="eks-backups"></a>

Amazon Elastic Kubernetes Service (Amazon EKS) 集群由多个资源组成，您可以将这些资源作为一个单元进行备份。当您备份 Amazon EKS 集群时， AWS Backup 会创建一个包含 EKS 集群状态和永久卷备份的复合恢复点。

备份 Amazon EKS 集群时，将为支持的 Amazon EKS 集群状态和永久卷创建恢复点 AWS Backup。这些恢复点组合在称为**复合**恢复点的总体恢复点中。

Amazon EKS 备份有两个不同的组成部分：
+ *亚马逊 EKS 集群状态：*这是 Amazon EKS 集群状态的备份。有关包含的内容，请参阅下面的 Amazon EKS 备份术语。
+ *永久存储：*这是通过永久卷声明连接到亚马逊 EKS 集群的永久存储（亚马逊 EBS、Amazon S3、Amazon Elastic File System）的备份，[由 EKS Add Ons CSI 驱动程序支持](https://docs.aws.amazon.com/eks/latest/userguide/storage.html)。

## 亚马逊 EKS 备份术语
<a name="eks-backup-overview"></a>

Amazon EKS 备份文档中使用了以下术语。有关亚马逊 EKS 的特定术语，请参阅[亚马逊 EKS 文档](https://docs.aws.amazon.com/eks/latest/userguide/getting-started.html)。

## EKS Backup 术语
<a name="eks-backup-terminology"></a>
+ **复合恢复点** — 用于将 Amazon EKS 集群备份的嵌套恢复点组合在一起的恢复点。
+ **嵌套恢复点** — 属于 Amazon EKS 集群并作为复合恢复点的一部分进行备份的资源的恢复点。
+ **EKS 集群状态** — 定义集群中 Kubernetes 资源所需状态的 Kubernetes 清单（YAML 或 JSON 文件）。这包括 Kubernetes 资源和部署，例如：机密、配置映射、状态集、存储类别 DaemonSets、存储映射、副本集、永久卷声明、自定义资源定义、角色和角色绑定。
+ **Amazon EKS 集群配置子恢复点** — 包含 Amazon EKS 集群状态。
+ **永久卷子恢复点** — 包含 E [KS Add Ons CSI 驱动程序支持的存储类型（EBS、S3、EFS）的](https://docs.aws.amazon.com/eks/latest/userguide/storage.html)永久卷备份。

## 亚马逊 EKS 备份结构
<a name="eks-backup-creation"></a>

**Amazon EKS 备份包括以下组件：**
+ 亚马逊 EKS 集群状态
+ 永久存储：支持存储类型的备份，包括亚马逊 EBS、Amazon EFS 和 Amazon S3

**Amazon EKS 备份将不包括以下组件：**
+ 来自外部存储库（ECR、Docker）的容器镜像
+ EKS 集群基础设施组件（ VPCs例如子网）
+ 自动生成的 EKS 资源，例如节点、自动生成的 pod、事件、租约和作业。

**EKS 备份设置和先决条件（“备份之前”）**
+ **EKS 集群设置：**
  + EKS 集群[授权模式](https://docs.aws.amazon.com/eks/latest/userguide/setting-up-access-entries.html)设置为 API 或 API\$1AND \$1CONFIG\$1MAP AWS Backup ，用于创建[访问 EKS 集群的访问条目](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html)。
+ **权限：**
  + AWS Backup的托管策略[AWSBackupServiceRolePolicyForBackup](https://docs.aws.amazon.com/aws-backup/latest/devguide/security-iam-awsmanpol.html#AWSBackupServiceRolePolicyForBackup)包含备份您的 Amazon EKS 集群以及 EBS 和 EFS 永久存储所需的权限
  + 如果您的 EKS 集群包含 S3 存储桶，则需要确保按照文档添加和启用 S3 存储桶的以下策略和先决条件：
    + [AWSBackupServiceRolePolicyForS3Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/security-iam-awsmanpol.html#AWSBackupServiceRolePolicyForS3Backup)
    + [S3 备份的先决条件](https://docs.aws.amazon.com/aws-backup/latest/devguide/s3-backups.html#s3-backup-prerequisites)
+ **加密：**
  + Amazon EKS 儿童恢复点将使用目标备份库的 Amazon KMS 密钥集进行加密
  + 永久存储恢复点将根据当前对每种存储类别的支持进行加密：EBS 快照、S3 备份、EFS 备份。[请参阅中的备份加密 AWS Backup](https://docs.aws.amazon.com/aws-backup/latest/devguide/encryption.html)

## 创建 Amazon EKS 备份
<a name="eks-backups-options"></a>

创建备份的过程称为备份作业。Amazon EKS 集群备份任务具有状态。备份任务完成后，其状态为 “已完成”。这表示已创建恢复点（备份）。

### 创建按需的 Amazon EKS 备份
<a name="eks-backups-on-demand"></a>

------
#### [ Console ]

要为您的 Amazon EKS 集群创建按需备份，请执行以下操作：

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 在导航窗格中，选择**受保护的资源**。

1. 在 “**资源类型**” 下，选择 **Amazon EKS**。

1. 选中您要备份的 Amazon EKS 集群旁边的复选框。

1. 选择**创建按需备份**。

1. 配置备份设置，包括备份窗口、向冷存储的过渡和保留期。

1. 选择**创建按需备份**。

------
#### [ AWS CLI ]

要使用以下方法为您的 Amazon EKS 集群创建按需备份，请执行以下 AWS CLI操作：

使用 **start-backup-job** 命令：

```
aws backup start-backup-job \
    --backup-vault-name my-backup-vault \
    --resource-arn arn:aws:eks:us-west-2:123456789012:cluster/my-cluster \
    --iam-role-arn arn:aws:iam::123456789012:role/AWSBackupDefaultServiceRole \
    --region us-west-2
```

（可选）指定其他参数，例如生命周期设置：

```
aws backup start-backup-job \
    --backup-vault-name my-backup-vault \
    --resource-arn arn:aws:eks:us-west-2:123456789012:cluster/my-cluster \
    --iam-role-arn arn:aws:iam::123456789012:role/AWSBackupDefaultServiceRole \
    --lifecycle MoveToColdStorageAfterDays=30,DeleteAfterDays=365 \
    --region us-west-2
```

监控备份任务状态：

```
aws backup describe-backup-job \
    --backup-job-id backup-job-id \
    --region us-west-2
```

------

## 亚马逊 EKS 备份 ARN 格式
<a name="eks-recovery-points"></a>

复合恢复点 arn:: backup::: recovery-point: composite: *partition* eks/-*region* *accountId* *cluster-name* *timestamp*

Child Recovery Point arn:: backup:: backup::: re *partition* covery-*region* *accountId* *cluster-name* *timestamp*

### 亚马逊 EKS 恢复点
<a name="eks-recovery-point-status"></a>

#### 恢复点状态
<a name="eks-recovery-point-status-details"></a>

当 Amazon EKS 集群的备份任务完成（任务状态为`Completed`）时，已创建该集群的备份。此备份也称为复合恢复点。复合恢复点可以具有以下状态之一：`Completed`、`Failed` 或 `Partial`。

每个 Amazon EKS 备份都会为复合恢复点创建一个父备份任务，为每个子恢复点创建子备份任务（集群配置和永久卷）。
+ 备份任务完成意味着您的整个 Amazon EKS 集群及其中的资源都受到保护 AWS Backup。
+ 失败状态表示备份作业不成功；导致失败的问题得到纠正后，应重新创建备份。
+ `Partial`状态表示群集中的所有资源未都已备份。如果属于集群内资源（嵌套资源）的一个或多个备份任务的状态不是，则可能会发生这种情况。`Completed`您可以手动创建按需备份，以重新运行任何导致非 `Completed` 状态的资源。
+ `Completed with issues`状态表示群集中的所有资源未都已备份。当我们无法备份集群中的某些 Kubernetes 对象时，就会发生这种情况。您可以订阅失败对象的**通知事件**以进行备份。有关更多信息，请参阅[带有的通知选项 AWS Backup。](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-notifications.html)

复合恢复点中的每个嵌套资源都有自己的单独恢复点，每个恢复点都有自己的状态（`Completed` 或 `Failed`）。状态为 `Completed` 的嵌套恢复点可以还原。

AWS Backup 支持生命周期过渡到冷存储，以实现永久卷恢复点。您可以订阅通知以接收有关备份任务状态的警报。

## 管理恢复点
<a name="eks-manage-recovery-points"></a>

可以复制复合恢复点（备份）；可以复制、删除、取消关联或恢复永久卷子恢复点。Amazon EKS 集群状态子恢复点无法复制、删除或取消关联，因为它与其父复合恢复点保持 1:1 的关系。

包含嵌套备份的复合恢复点无法删除。在复合恢复点中的嵌套恢复点已删除或解除关联后，您可以手动删除复合恢复点，也可以保留它，直到备份计划生命周期将其删除。

### 删除恢复点
<a name="eks-delete-recovery-point"></a>

您可以使用控制台或使用删除恢复点 AWS CLI。

要使用控制台删除恢复点，请执行以下操作：

1. 在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 单击左导航栏中的受保护的资源。在文本框中，键入 EKS 以仅显示您的 Amazon EKS 集群。

1. 复合恢复点将显示在恢复点窗格中。可以单击每个恢复点 ID 左侧的加号 (\$1) 展开每个复合恢复点，显示复合恢复点中包含的所有嵌套恢复点。您可以选中任何恢复点左侧的复选框，将其包含在要删除的恢复点选择中。

1. 单击删除按钮。

当您使用控制台删除一个或多个复合恢复点时，将弹出一个警告框。此警告框要求您确认删除复合恢复点的意图，包括复合堆栈中的嵌套恢复点。

要使用 API 删除恢复点，请使用 DeleteRecoveryPoint 命令。

将 API 与一起使用时， AWS Command Line Interface 必须先删除所有嵌套的恢复点，然后才能删除复合点。

### 取消嵌套恢复点与复合恢复点的关联
<a name="eks-disassociate-recovery-point"></a>

您可以取消嵌套恢复点与复合恢复点的关联（例如，您希望保留嵌套恢复点但删除复合恢复点）。此时两个恢复点都将保留，但它们将不再联系在一起；也就是说，在取消关联后，在复合恢复点上发生的操作将不再应用于嵌套恢复点。Amazon EKS 集群状态子恢复点无法解除关联，因为它与其父复合恢复点保持 1:1 的关系。

您可以使用控制台取消与恢复点的关联，也可以调用 API DisassociateRecoveryPointFromParent。

## 复制恢复点
<a name="eks-copy-recovery-point"></a>

您可以复制复合恢复点，也可以复制嵌套恢复点（如果资源支持[跨账户和跨区域复制](backup-feature-availability.md#features-by-resource)）。

要使用 AWS Backup 控制台复制恢复点，请执行以下操作：

在 [https://console.aws.amazon.com/backup](https://console.aws.amazon.com/backup) 上打开 AWS Backup 控制台。

1. 单击左侧导航栏中的文件**库**，然后转到包含要复制的恢复点的保管库。在文本框中键入`EKS`以仅显示 Amazon EKS 集群的恢复点。

1. 复合恢复点和嵌套恢复点都将显示在恢复点 ID 窗格下。请注意，您无法选择和复制嵌套的 EKS 恢复点。

1. 可以单击每个复合恢复点 ID 左侧的箭头符号进行展开，显示组合中包含的所有嵌套恢复点。您可以单击任何恢复点左侧的方形复选框将其复制。

1. 选中后，单击窗格右上角的 “**操作**” 下拉列表，然后单击 “**复制**”。

Amazon EKS 备份支持所有副本类型：
+ 相同地区/账户
+ 跨账户
+ 跨区域
+ 选择加入区域

## 限制
<a name="eks-limitations"></a>
+ 不支持通过 CSI 迁移、树内存储插件或 ACK 控制器使用 CSI 驱动程序的永久卷。请注意，注释`volume.kubernetes.io/storage-provisioner: ebs.csi.aws.com`是表示哪个配置者可以管理卷的元数据，而不是该卷使用 CSI。实际的配置器由 StorageClass 决定。
+  MountPoints 无法备份附加到 CSI 驱动程序的特定前缀的 Amazon S3 存储桶。仅支持 Amazon S3 存储桶作为目标，不支持特定的前缀。
+ 作为 EKS 集群备份一部分的 Amazon S3 存储桶备份将仅支持快照备份。
+ 不支持通过 EKS 备份跨账户备份 EFS 文件系统。
+ EKS 备份不支持 FSx 通过 CSI 驱动程序实现亚马逊。
+ AWS Backup 不支持 O AWS utposts 上的亚马逊 EKS。
+ 视[备份和还原配额](aws-backup-limits.html)而定。

## Backup 作业已完成，但存在问题
<a name="eks-backup-jobs-completed-with-issues"></a>

在备份 Amazon EKS 集群时，可能无法检索某些 Kubernetes 对象。在这种情况下，备份任务将以`Completed with issues`状态完成，而不是完全失败，并显示以下状态消息：
+ 某些 Kubernetes 对象无法备份。要获得有关这些故障的通知，[请启用 SNS 事件通知](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-notifications.html)。

由于 A [mazon EKS Metrics Server Add On 不可用问题导致 503 服务不可用错误，因此在备份任务期间可能会跳过以下 Kubernet](https://docs.aws.amazon.com/eks/latest/userguide/metrics-server.html) es 对象类型。有关[故障排除指南](https://repost.aws/knowledge-center/eks-resolve-http-503-errors-kubernetes)，请参阅此处。
+ `metrics.k8s.io`
+ `custom.metrics.k8s.io`
+ `external.metrics.k8s.io`
+ `metrics.eks.amazonaws.com`

## 常见问题
<a name="eks-faq"></a>

1. *“Amazon EKS 备份中包含了什么？”*

   作为 Amazon EKS 集群的每次备份的一部分，都会对所 AWS Backup 支持的 Amazon EKS 集群状态和永久卷进行备份。Amazon EKS 集群状态包括集群名称、IAM 角色、Amazon VPC 配置、网络设置、日志、加密、插件、访问条目、托管节点组、Fargate 配置文件、Pod 身份关联和 Kubernetes 清单文件等详细信息。

1. *“`Partial` 状态是否意味着创建备份失败？”*

   不是。“部分”这一状态表示有些恢复点已备份，而有些则未备份。有两个条件可以检查您是否期望得到`Completed`备份结果：

   1. 属于群集内资源的一个或多个备份任务未成功，必须重新运行该作业。

   1. 已删除嵌套恢复点或已取消它与复合恢复点的关联

1. *“在备份之前，我是否需要在我的 Amazon EKS 集群上安装代理或 Amazon EKS 附加组件？”*

   不是。 AWS Backup 不需要在您的 Amazon EKS 集群上安装任何代理或附加组件。唯一的先决条件是将 EKS 集群的[授权模式](https://docs.aws.amazon.com/eks/latest/userguide/setting-up-access-entries.html)设置为 API 或 API\$1AND \$1CONFIG\$1MAP， AWS Backup 以便创建[访问 EKS 集群的访问条目](https://docs.aws.amazon.com/eks/latest/userguide/access-entries.html)。

1. *“Amazon EKS 备份包括亚马逊 EKS 基础设施组件还是亚马逊 ECR 映像？”*

   不是。 Amazon EKS 备份侧重于 EKS 集群状态和应用程序工作负载，而不是底层基础设施组件或容器映像。

1. *“我能否将我的 EKS 复合恢复点生命周期到冷存储？”*

   对于支持冷存储层的底层子恢复点，您可以过渡到冷存储。有关支持的完整列表，请参阅[AWS Backup 功能可用](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-feature-availability.html#features-by-resource)性列表。

1. *“我的 EKS 备份是增量备份吗？”*

   AWS Backup 将对当前支持的每个子恢复点进行增量备份，包括 EBS 卷、EFS 文件系统和 S3 存储桶。EKS 集群状态子恢复点将是完整备份。参见[AWS Backup 功能可用性表](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-feature-availability.html#features-by-resource)。

1. *“我能否创建索引并搜索我的 EKS 备份？”*

   不行，但是您可以创建按需索引并搜索底层存储类型支持此功能的永久卷 AWS Backup。参见[AWS Backup 功能可用性表](https://docs.aws.amazon.com/aws-backup/latest/devguide/backup-feature-availability.html#features-by-resource)。