Amazon EKS 资源扩展执行块 - Amazon 应用程序恢复控制器 (ARC)

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

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 动词(权限)

*

*/比例

获取、更新

*

*/状态

get

自动扩缩

水平 podautoScalers

获取,补丁

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

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

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

先决条件

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

创建访问条目

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

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

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

创建访问权限条目关联

接下来,使用类似于以下内容的 AWS 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 访问进入权限

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

然后,为执行块配置输入以下值。

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

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

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

  4. Kubernetes 资源类型:输入应用程序的资源类型,例如 “部署”。

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

  6. 与@@ 激活区域容量相匹配的百分比:输入源区域中正在运行的 Pod 的所需百分比,以便在激活的区域中与之匹配。

  7. 容量监控方法:在下拉菜单中,选择您的 EKS 资源的监控方法。

  8. 超时:输入超时值。

然后,选择保存步骤。

工作方式

在计划执行期间,Region switch 会检索您正在激活的区域中目标资源在过去 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 数量。