本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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_MAP或API。更改授权模式会为访问条目添加 API。有关更多信息,请参阅《Amazon EKS 用户指南》中的更改身份验证模式以使用访问条目。- 创建访问条目
第一步是使用类似于以下内容的 AWS CLI 命令来创建访问条目:
aws eks create-access-entry --cluster-namemy-cluster--principal-arn arn:aws:iam::555555555555:user/my-user--type STANDARD有关更多信息,请参阅《Amazon EKS 用户指南》中的创建访问条目。
- 创建访问条目关联
-
接下来,使用类似于以下内容的 AWS CLI 命令创建与区域交换机访问策略的关联:
aws eks associate-access-policy --cluster-namemy-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.
对于执行块配置,输入以下值。
步骤名称:输入名称。
步骤描述(可选):输入步骤的描述。
应用程序名称:输入您的 EKS 应用程序的名称,例如 myApplication。
Kubernetes 资源类型:输入应用程序的资源类型,例如 Deployment。
区域资源:对于每个区域,输入 EKS 集群的信息,包括 EKS 集群 ARN、资源命名空间等。
与已激活区域容量相匹配的百分比:输入来源区域中所需的运行容器组(POD)数量百分比,以匹配激活区域。
容量监控方法:已选择容量监控的唯一选项,即在 24 小时内采样的最大运行容量。
这种容量监控方法使用 EKS 服务请求的
ReplicaCount值。有关更多信息,请参阅《Amazon Elastic Kubernetes Service 用户指南》中的了解 Amazon EKS 中的 ARC 可用区转移。超时:输入超时值。
然后,选择保存步骤。
工作原理
在计划执行期间,区域切换会检索您正在激活的区域中目标资源在过去 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)数量。