Amazon EKS 资源扩展执行块 - Amazon 应用程序恢复控制器(ARC)
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon EKS 资源扩展执行块

EKS 资源扩展执行块使您能够在多区域恢复过程中扩展 EKS 资源。配置执行块时,您可以定义要扩展的容量相对于要停用的区域中容量的百分比。

配置 EKS 访问条目权限

在为 EKS 资源扩展添加执行块之前,您必须为区域切换提供必要的权限,以便对 EKS 集群中的 Kubernetes 资源执行操作。要为区域切换提供访问权限,您必须使用以下区域切换访问策略为区域切换用于执行计划的 IAM 角色创建 EKS 访问条目:arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy

区域切换 EKS 访问策略

以下是有关 EKS 访问策略的详细信息。

名称AmazonARCRegionSwitchScalingPolicy

策略 ARN:arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy

Kubernetes API 组 Kubernetes 资源 Kubernetes 动词(权限)

*

*/scale

get、update

*

*/status

自动扩缩

horizontalpodautoscalers

get、patch

为区域切换创建 EKS 访问条目

以下示例描述如何创建所需的访问条目和访问策略关联,以便区域切换可以对您的 Kubernetes 资源执行特定操作。在此示例中,权限适用于 EKS 集群my-namespace1中 IAM 角色my-cluster的命名空间arn:aws:iam::555555555555:role/my-role

配置这些权限时,请确保在执行块中对两个 EKS 集群执行这些步骤。

先决条件

在开始之前,请将集群的身份验证模式更改为 API_AND_CONFIG_MAPAPI。更改授权模式会为访问条目添加相应 API。有关更多信息,请参阅《Amazon EKS 用户指南》中的更改身份验证模式以使用访问条目

创建访问条目

第一步是使用类似于以下内容的 Amazon CLI 命令来创建访问条目:

aws eks create-access-entry --cluster-name my-cluster --principal-arn arn:aws:iam::555555555555:user/my-user --type STANDARD

有关更多信息,请参阅《Amazon EKS 用户指南》中的创建访问条目

创建访问条目关联

接下来,使用类似于以下内容的 Amazon CLI 命令创建与区域交换机访问策略的关联:

aws eks associate-access-policy --cluster-name my-cluster --principal-arn arn:aws:iam::555555555555:role/my-role \ --access-scope type=namespace,namespaces=my-namespace1 --policy-arn arn:aws:eks::aws:cluster-access-policy/AmazonARCRegionSwitchScalingPolicy

有关更多信息,请参阅《Amazon EKS 用户指南》中的将访问策略与访问条目关联起来

请务必在另一个区域对您执行块中的第二个 EKS 集群重复这些步骤,确保这两个集群都可以通过区域切换进行访问。

配置

重要

在添加 EKS 资源扩展执行块之前,请确保权限配置正确。有关更多信息,请参阅 配置 EKS 访问条目权限。此外,请确保您具有正确的 IAM 策略。有关更多信息,请参阅 Amazon EKS 资源扩展执行块示例策略

请注意,区域切换目前支持以下 ReplicaSet 资源:apps/v1, Deployment, and apps/v1.

对于执行块配置,输入以下值。

  1. 步骤名称:输入名称。

  2. 步骤描述(可选):输入步骤的描述。

  3. 应用程序名称:输入您的 EKS 应用程序的名称,例如 myApplication

  4. Kubernetes 资源种类:输入应用程序的资源种类,例如 Deployment

  5. 区域资源:对于每个区域,输入 EKS 集群的信息,包括 EKS 集群 ARN、资源命名空间等。

  6. 与已激活区域容量相匹配的百分比:输入来源区域中所需的运行容器组(POD)数量百分比,以匹配激活区域。

  7. 容量监控方法:系统已选择唯一的容量监控方法,即在 24 小时内采样的最大运行容量

    这种容量监控方法会对 EKS 服务请求使用 ReplicaCount 值。有关更多信息,请参阅《Amazon Elastic Kubernetes Service 用户指南》中的了解 Amazon EKS 中的 ARC 可用区转移

  8. 超时:输入超时值。

然后,选择保存步骤

工作原理

在计划执行期间,区域切换会检索过去 24 小时内在您正在激活的区域中对目标资源采样的最大副本数。然后,它会使用以下公式计算目标资源所需的副本数:ceil(percentToMatch * Source replica count)

如果目标就绪副本数量低于所需值,则区域切换会将目标资源副本值扩展到所需的容量。它会等待副本准备就绪,必要时利用您的节点自动缩放程序来增加节点容量。

如果可选hpaName字段不为空,Region switch 将使用以下修补程序修补HorizontalPodAutoscaler 以防止在执行期间或执行后自动缩小规模:{"spec":{"behavior":{"scaleDown":{"selectPolicy":"Disabled"}}}}

确保将任何漂移校正工具(例如 GitOps 工具)配置为忽略补丁中资源的副本字段以及该字段。 HorizontalPodAutoscaler

在计划评估中评估的内容

当区域切换评估您的计划时,会对您配置的 EKS 执行块和权限执行多项检查。区域切换会验证该计划的 IAM 角色是否具有描述 EKS 集群和列出相关访问条目策略的正确权限。区域切换还会验证 IAM 角色是否与正确的访问条目策略相关联,从而让区域切换具有所需的权限来对 Kubernetes 资源执行操作。最后,区域切换会确认已配置的 EKS 集群和 Kubernetes 资源是否存在。

此外,区域切换还会检查其是否已成功收集和存储必要的监控数据(Kubernetes 副本数量),并捕获执行区域切换计划需要运行的容器组(pod)数量。