本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon Elastic Kubernetes Service
借助 Amazon EKS 提供的功能,您的应用程序在应对可用区运行状况下降或受影响等事件方面更具弹性。当您在 Amazon EKS 集群中运行工作负载时,您可以使用分区转移或区域自动移位进一步提高容错能力和应用程序恢复。有关更多信息,请参阅《亚马逊弹性 Kubernetes 服务用户指南》中的 “了解亚马逊 EKS 中的 ARC 区域移动”。
在 Amazon Elastic Kubernetes Service 中使用可用区转移
可使用以下方法之一启动可用区转移。有关更多信息,请参阅《Amazon Elastic Kubernetes Service 用户指南》中的了解 ARC 可用区转移。
您可以为 Amazon EKS 集群启动区域移动,也可以通过启用区域自动转移 AWS 来允许您进行区域移动。启用 ARC 的 Amazon EKS 集群分区转移后,您可以使用 ARC 控制台、 AWS CLI 或分区转移和区域自动移动 API 开始分区转移或启用分区自动移动。
有关启动可用区转移的更多信息,请参阅启动、更新或取消可用区转移。
有关使用可用区转移启用 Amazon EKS 的更多信息,请参阅《Amazon Elastic Kubernetes Service 用户指南》中的了解 Amazon EKS 中的 ARC 可用区转移。
可用区转移如何与 Amazon Elastic Kubernetes Service 结合使用
在亚马逊 EKS 区域转移期间,所有亚马逊 EKS 集群会自动进行以下操作:
受影响可用区中的所有节点都被封锁。这将防止 Kubernetes 调度器将新容器组(pod)调度到运行状况不佳的可用区中的节点上。
如果您使用托管节点组,则会暂停可用区域再平衡,并更新您的 Auto Scaling 组,以确保新的 Amazon EKS 数据平面节点仅在健康的可用区启动。
运行状况不佳的可用区中的节点不会被终止,容器组(pod)也不会被逐出这些节点。这是为了确保当可用区转移到期或被取消时,您的流量可以安全地返回到仍具有完整容量的可用区。
EndpointSlice 控制器会找到受损可用区中的所有 Pod 终端节点,并将其从相关区域中移除EndpointSlices。这将确保只有运行状况良好的可用区中的容器组(pod)端点才会成为接收网络流量的目标。当区域转移被取消或到期时, EndpointSlice 控制器会更新, EndpointSlices 将终端节点包括在恢复的可用区中。
如果您使用的是 EKS 自动模式或自我管理的 Karpenter,Karpenter 控制器在区域移位期间还会执行以下操作:
通过将受损区域中的所有计算产品标记为不可用,停止在该区域配置新容量。
停止受损 AZ 中节点的自愿中断(整合和漂移)。
防止有严格调度要求(例如 EBS 卷关联性)且需要受限 AZ 的 Pod 尝试启动。
当区域移位取消或到期后,恢复正常行为。
有关亚马逊 EKS 区域转移的更多信息,请参阅 AWS 网站上的