

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

# Amazon Elastic Kubernetes Service
<a name="arc-zonal-shift.resource-types.eks"></a>

借助 Amazon EKS 提供的功能，您的应用程序在应对可用区运行状况下降或受影响等事件方面更具弹性。在 Amazon EKS 集群中运行工作负载时，您可以使用区域转移或区域自动切换进一步改善容错能力和应用程序恢复。有关更多信息，请参阅亚马逊 El [a *stic Kubernetes Service 用户指南中的了解亚马逊 EK* S 中的 ARC 区域偏移](https://docs.aws.amazon.com//eks/latest/userguide/zone-shift.html)。

## 在 Amazon Elastic Kubernetes Service 中使用可用区转移
<a name="using-eks-zs"></a>

可使用以下方法之一启动可用区转移。有关更多信息，请参阅《Amazon Elastic Kubernetes Service 用户指南》中的**[了解 ARC 可用区转移](https://docs.aws.amazon.com//eks/latest/userguide/zone-shift-enable.html#zone-shift-enable-steps)。

------
#### [ Console ]

**在新的 Amazon EKS 集群上启用可用区转移（控制台）**

1. 找到您要向 ARC 注册的 Amazon EKS 集群的名称和区域。

1. 在 [https://console.aws.amazon.com/eks/home\#/](https://console.aws.amazon.com/eks/home#/clusters) clusters 上打开 Amazon EKS 控制台。

1. 选择您的集群。

1. 在**集群信息**页面上，选择**概述**选项卡。

1. 在**可用区转移**下，选择**管理**。

1. 为 **EKS 可用区转移**，选择**启用**或**禁用**。

------
#### [ AWS CLI ]

**要在新的 Amazon EKS 集群上启用区域切换 (AWS CLI)**
+ 输入以下命令：

  ```
  aws eks create-cluster --name {{my-eks-cluster}} --role-arn {{my-role-arn-to-create-cluster}} --resources-vpc-config subnetIds=string,string,securityGroupIds=string,string,endpointPublicAccess=boolean,endpointPrivateAccess=boolean,publicAccessCidrs=string,string --zonal-shift-config enabled=true
  ```

**要在现有 Amazon EKS 集群上启用区域切换 (AWS CLI)**
+ 输入以下命令：

  ```
  aws eks update-cluster-config --name {{my-eks-cluster}} --zonal-shift-config enabled=true
  ```

------

您可以为 Amazon EKS 集群启动区域切换，也可以通过启用区域自动切换AWS来允许您进行区域切换。使用 ARC 启用 Amazon EKS 集群区域转移后，您可以使用 ARC 控制台、CLI 或区域偏移和区域自动移动 AP AWS I 开始区域偏移或启用区域自动切换。

有关启动可用区转移的更多信息，请参阅[启动、更新或取消可用区转移](arc-zonal-shift.start-cancel.md)。

有关使用可用区转移启用 Amazon EKS 的更多信息，请参阅《Amazon Elastic Kubernetes Service 用户指南》中的**[了解 Amazon EKS 中的 ARC 可用区转移](https://docs.aws.amazon.com//eks/latest/userguide/zone-shift.html)。

## 可用区转移如何与 Amazon Elastic Kubernetes Service 结合使用
<a name="how-it-works-eks-zs"></a>

在 Amazon EKS 区域转移期间，所有 Amazon EKS 集群都会自动执行以下操作：
+ 受影响可用区中的所有节点都被封锁。这将防止 Kubernetes 调度器将新容器组（pod）调度到运行状况不佳的可用区中的节点上。
+ 如果您使用的是[托管节点组](https://docs.aws.amazon.com//eks/latest/userguide/managed-node-groups.html)，则会暂停[可用区域再平衡](https://docs.aws.amazon.com//autoscaling/ec2/userguide/auto-scaling-benefits.html#AutoScalingBehavior.InstanceUsage)，并更新您的 Auto Scaling 组，以确保新的 Amazon EKS 数据平面节点仅在运行正常的可用区中启动。
+ 运行状况不佳的可用区中的节点不会被终止，容器组（pod）也不会被逐出这些节点。这是为了确保当可用区转移到期或被取消时，您的流量可以安全地返回到仍具有完整容量的可用区。
+  EndpointSlice 控制器在受损的可用区中找到所有 Pod 端点，并将其从相关可用区中移除EndpointSlices。这将确保只有运行状况良好的可用区中的容器组（pod）端点才会成为接收网络流量的目标。当区域转移取消或过期时， EndpointSlice 控制器会更新 EndpointSlices 以包括已恢复的可用区中的端点。

如果您使用的是 EKS 自动模式或自我管理的 Karpenter，则 Karpenter 控制器在区域切换期间还会执行以下操作：
+ 通过将受损的可用区中的所有计算产品标记为不可用，停止在该受损的可用区中配置新容量。
+ 停止受损可用区中节点的自愿中断（合并和漂移）。
+ 防止对具有严格调度要求（例如 EBS 卷关联性）且需要受损可用区的 Pod 进行启动尝试。
+ 取消区域偏移或到期后恢复正常行为。

有关 Amazon EKS 区域转移的更多信息，请参阅AWS网站上的[AWS容器博客](https://aws.amazon.com/blogs/containers/amazon-eks-now-supports-amazon-application-recovery-controller/)。