托管节点更新行为 - Amazon EKS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

托管节点更新行为

当您将托管节点组版本更新为适用于节点组 Kubernetes 版本的最新 AMI 发行版时,或者更新到较新的 Kubernetes 版本以匹配集群时,Amazon EKS 触发以下逻辑:

  1. Amazon EKS 为与您节点组关联的 Amazon EC2 组创建新 Auto Scaling 启动模板。新模板使用更新的目标 AMI。

  2. 对 Auto Scaling 组进行更新以使用具有新 AMI 的最新启动模板。

  3. 组的最大大小和所需大小以 1 为部署 Auto Scaling 组所在区域中的 可用区 数的两倍的增量增加。Auto Scaling这是为了确保您的节点组部署到的区域中的每个 可用区 中至少有一个新实例出现。

  4. Amazon EKS 检查节点组中节点的 eks.amazonaws.com/nodegroup-image 标签,并在节点组中未使用最新 AMI ID 标记的所有节点上应用 eks.amazonaws.com/nodegroup=unschedulable:NoSchedule 标签。这将防止先前失败的更新中已更新的节点。

  5. Amazon EKS 随机选择节点组中的节点,并从其中移出所有 Pod。

  6. 移出所有 Pod 之后,Amazon EKS 将封锁节点。这样做是为了使服务控制器不会向此节点发送任何新请求,并从其运行状况良好的活动节点列表中删除该节点。

  7. Amazon EKS 向封送节点的 Auto Scaling 组发送终止请求。

  8. 重复步骤 5-7,直到节点组中没有任何使用启动模板的早期版本部署的节点。

  9. Auto Scaling 组的最大大小和所需大小减少 1,以返回到更新前的值。