本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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_MAP
或API
。更改授权模式会添加访问条目的 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.
然后,为执行块配置输入以下值。
步骤名称:输入名称。
步骤描述(可选):输入步骤的描述。
应用程序名称:输入您的 EKS 应用程序的名称,例如 my Application。
Kubernetes 资源类型:输入应用程序的资源类型,例如 “部署”。
区域资源:对于每个区域,输入 EKS 集群的信息,包括 EKS 集群 ARN、资源命名空间等。
与@@ 激活区域容量相匹配的百分比:输入源区域中正在运行的 Pod 的所需百分比,以便在激活的区域中与之匹配。
容量监控方法:在下拉菜单中,选择您的 EKS 资源的监控方法。
超时:输入超时值。
然后,选择保存步骤。
工作方式
在计划执行期间,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 数量。