选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

为 AWS Fargate 操作系统补丁事件设置操作

聚焦模式
为 AWS Fargate 操作系统补丁事件设置操作 - Amazon EKS

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

帮助改进此页面

要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。

Amazon EKS 定期修补 AWS Fargate 节点的操作系统以确保它们的安全。作为修补过程的一部分,我们会回收节点来安装操作系统补丁。尝试更新的方式对您的服务造成的影响最小。但是,如果容器组(pod)没有成功被驱逐,有时必须删除容器组。以下是您可以采取的最大限度减少潜在中断的操作:

  • 设置适当的容器组(pod)中断预算(PDB),控制同时关闭的容器组(pod)数量。

  • 创建 Amazon EventBridge 规则,在删除容器组(pod)之前处理失败的驱逐。

  • 在您所收通知中发布的驱逐日期之前,手动重启受影响的容器组(pod)。

  • 在 AWS 用户通知中创建通知配置。

Amazon EKS 与 Kubernetes 社区密切合作,以便尽快提供错误修复和安全补丁。所有 Fargate 容器组(pod)都从最新的 Kubernetes 修补程序版本开始,可从集群的 Kubernetes 版本的 Amazon EKS 中获取。如果您的容器组(pod)具有较旧的修补程序版本,Amazon EKS 可能会回收容器组,以便将其更新到最新版本。这可以确保您的容器组(pod)配备了最新的安全更新。这样一来,如果存在关键常见漏洞和风险(CVE)问题,您可以随时了解最新信息以降低安全风险。

AWS Fargate 操作系统更新后,Amazon EKS 将向您发送通知,其中包含受影响的资源和即将驱逐容器组(pod)的日期。如果提供的日期不便进行驱逐,您可以在通知中于选择发布的驱逐日期之前,手动重启受影响的容器组(pod)。系统将驱逐您在收到通知之前创建的任何容器组(pod)。有关如何手动重启容器组(pod)的更多说明,请参阅 Kubernetes 文档

要限制在回收容器组(pod)时同时停机的容器组数量,您可以设置容器组(pod)中断预算(PDB)。您可以使用 PDB 根据每个应用程序的要求定义最低可用性,同时仍允许进行更新。PDB 的最低可用性必须低于 100%。有关更多信息,请参阅 Kubernetes 文档中的为应用程序设置干扰预算

Amazon EKS 使用驱逐 API 在遵守您为应用程序设置的 PDB 的同时安全地耗尽容器组(pod)。容器组(pod)被可用区驱逐出来,以最大限度地减少影响。如果驱逐成功,新容器组(pod)将获得最新的补丁,无需进一步操作。

当容器组(pod)的驱逐失败时,Amazon EKS 会向您的账户发送一个事件,其中包含驱逐失败的容器组(pod)的详细信息。您可以在计划的终止时间之前对消息采取行动。具体时间根据补丁的紧迫性而有所不同。时间一到,Amazon EKS 会尝试再次驱逐容器组(pod)。但是,如果驱逐失败,这次不会发送新的事件。如果驱逐再次失败,则会定期删除您现有的容器组(pod),以便新容器组(pod)可以拥有最新的补丁。

以下是在容器组(pod)驱逐失败时收到的示例事件。其中包含有关集群、容器组(pod)名称、容器组(pod)命名空间、Fargate 配置文件和计划终止时间的详细信息。

{ "version": "0", "id": "12345678-90ab-cdef-0123-4567890abcde", "detail-type": "EKS Fargate Pod Scheduled Termination", "source": "aws.eks", "account": "111122223333", "time": "2021-06-27T12:52:44Z", "region": "region-code", "resources": [ "default/my-database-deployment" ], "detail": { "clusterName": "my-cluster", "fargateProfileName": "my-fargate-profile", "podName": "my-pod-name", "podNamespace": "default", "evictErrorMessage": "Cannot evict pod as it would violate the pod's disruption budget", "scheduledTerminationTime": "2021-06-30T12:52:44.832Z[UTC]" } }

此外,将多个 PDB 与一个容器组(pod)关联可能会导致驱逐失败事件。此事件将返回以下错误消息。

"evictErrorMessage": "This pod has multiple PodDisruptionBudget, which the eviction subresource does not support",

您可以基于此事件创建所需的操作。例如,要控制驱逐容器组(pod)的方式,您可以调整容器组(pod)中断预算(PDB)。更具体地说,假设您从指定可用容器组(pod)的目标百分比的 PDB 开始。在升级期间强制终止容器组(pod)之前,您可以将 PDB 调整为不同百分比的容器组(pod)。要接收此事件,您必须在 AWS 账户和集群所属的 AWS 区域中创建 Amazon EventBridge 规则。该规则必须使用以下自定义模式。有关更多信息,请参阅《Amazon EventBridge 用户指南》中的创建对事件作出反应的 Amazon EventBridge 规则

{ "source": ["aws.eks"], "detail-type": ["EKS Fargate Pod Scheduled Termination"] }

可以为事件设置合适的目标来捕获它。有关可用目标的完整列表,请参阅《Amazon EventBridge 用户指南》中的 Amazon EventBridge 目标。您还可以在 AWS 用户通知中创建通知配置。使用 AWS Management Console创建通知时,在事件规则下,为 AWS 服务名称选择 Elastic Kubernetes Service(EKS),为事件类型选择 EKS Fargate 容器组(pod)计划的终止。有关更多信息,请参阅《AWS 用户通知用户指南》中的AWS 用户通知入门

有关 EKS 容器组(pod)驱逐的常见问题,请参阅 AWS re:Post 中的常见问题解答:Fargate 容器组(pod)驱逐通知

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。