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

*

*/比例

获取、更新

*

*/状态

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 用户指南中的更改身份验证模式以使用访问条目

创建访问条目

第一步是使用类似于以下内容的 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 政策。有关更多信息,请参阅 EKS 资源扩展执行块的示例策略

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

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

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

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

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

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

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

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

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

    这种容量监控方法使用 EKS 服务请求的ReplicaCount值。有关更多信息,请参阅亚马逊 El astic Kubernetes Service 用户指南中的了解亚马逊 EKS 中的 ARC 区域偏移

  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 数量。