我对收到的一则 AWS 通知有一些疑问: “已经向 AWS Fargate 部署了软件更新,其中包括重要的安全补丁和关键更新。为了完成软件更新过程,EKS Fargate 将驱逐在 [日期] 之前启动的容器组。”
**问:**当 AWS 对我的 AWS Fargate 容器组应用补丁和更新时,我该怎么做才能避免服务停机?
最佳实践是在通知中提到的截止日期之前重启您的 Fargate 容器组。如果您的容器组属于部署或 StatefulSet,则运行以下命令之一,在不停机的情况下正常重启整个部署或 StatefulSet:
kubectl rollout restart deployment-name -n test-namespace
-或-
kubectl rollout restart sts-name -n test-namespace
**注意:**在部署命令中,将 deployment-name 替换为部署的名称。在 StatefulSet 命令中,将 sts-name 替换为 StatefulSet 的名称。在这两个命令中,将 test-namespace 替换为命名空间的名称。
有关更多信息,请参阅 Kubernetes 网站上的部署和 StatefulSets。
如果您的容器组是独立的容器组,请完成以下步骤:
- 创建规格相同的替换容器组。
- 根据需要,在其他应用程序中更新容器组的端点或 IP 地址。
- 删除您的独立容器组。
**问:**如果我未能在通知中指定的日期之前重启我的容器组会怎样?
Amazon Elastic Kubernetes Service (Amazon EKS) 会根据您设置的容器组中断预算 (PDB),按可用区驱逐 Fargate 容器组。如果驱逐成功,则 Amazon EKS 会在新容器组上应用最新的补丁。您无需采取任何进一步的行动。
**问:**我会收到有关容器组驱逐失败或节点终止的通知吗?
当容器组驱逐失败时,AWS 会发送有关驱逐失败的通知。如果您在预定的终止日期之前没有采取行动,则 Amazon EKS 会在不作任何通知的情况下终止现有容器组和底层节点。终止后,新容器组会有最新的补丁。
**问:**Amazon EKS 如何管理我使用 PDB 配置的应用程序容器组的补丁?
当 Amazon EKS 为 Fargate 容器组安装补丁时,它不会突然终止您使用 PDB 配置的容器组。有关更多信息,请参阅 Kubernetes 网站上的容器组中断预算。当 Amazon EKS 更新底层节点时,它会考虑 PDB。为避免停机,最佳实践是为容器组配置 PDB。但是,激进的 PDB 可能会导致驱逐失败和节点终止。
**问:**我能否因为无法采取措施避免停机而推迟补丁或驱逐?
出于安全考虑,Amazon EKS 会自动在多个集群上批量应用补丁。由于部分的常见漏洞和暴露 (CVE) 很严重,需要立即关注,因此您不能推迟补丁。
**问:**Amazon EKS 在 Fargate 节点上为操作系统安装补丁的频率是怎样的?
Amazon EKS 会定期为 Fargate 节点上的操作系统 (OS) 安装补丁。它还会为无法提前确定的错误修复和安全更新应用补丁。
**问:**在哪里可以找到有关补丁应用的确切时间和日期的信息?
Amazon EKS 会提前通知您补丁流程。但是,补丁的应用没有固定的日期和时间。由于 Amazon EKS 会自动应用补丁,因此补丁操作可能在通知中指定的日期或之后随时执行。
**问:**在哪里可以查看来自 Amazon EKS 的安全更新相关通知?
Amazon EKS 会向您的 AWS 账户和 AWS Health Dashboard 上的主电子邮箱地址发送有关安全补丁的电子邮件通知。您可以使用 Amazon EventBridge 将这些通知转发给其他 AWS 服务或第三方工具。