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

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

更新托管节点组

当您启动托管节点组更新时,Amazon EKS 会自动优雅地为您更新您的节点,完成托管节点更新行为。如果您使用的是 Amazon EKS 优化 AMI,Amazon EKS 会自动将最新的安全修补程序和操作系统更新应用到您的节点,作为最新 AMI 版本的一部分。

有几种情况可用于更新 Amazon EKS 托管节点组的版本或配置:

  • 您已更新 Amazon EKS 集群的 Kubernetes 版本,并希望将节点更新为使用相同 Kubernetes 版本。

  • 新 AMI 发行版本可用于您的托管节点组。有关 AMI 版本的更多信息,请参阅经 Amazon EKS 优化的 Amazon Linux AMI 版本

  • 您希望调整托管节点组中的最少、最多或所需实例数。

  • 您希望对托管节点组中的实例添加或删除 Kubernetes 标签。

  • 您希望对托管节点组添加或删除 Amazon 标签。

  • 您需要部署具有配置更改(如更新的自定义 AMI)的启动模板的新版本。

如果您的托管节点组 Kubernetes 版本有较新的 AMI 发行版,则可以将节点组的版本更新为使用较新的 AMI 版本。同样,如果您的集群运行的 Kubernetes 版本比节点组要新,则可以将节点组更新为使用最新的 AMI 发行版,以匹配集群的 Kubernetes 版本。

当托管节点组中的节点因扩展操作或更新而终止时,将会先耗尽该节点中的 Pod。有关更多信息,请参阅 托管节点更新行为

更新节点组版本

您可以使用更新节点组版本eksctl或Amazon Web Services Management Console。选择带有要用于更新节点组的工具名称的选项卡。您更新到的版本不能晚于控制平面的版本。

eksctl

使用更新节点组版本eksctl

  • 使用以下命令将托管节点组更新为当前部署在节点上的相同 Kubernetes 版本的最新 AMI 版本。将<example values>(包括<>) 与您自己的值。

    eksctl upgrade nodegroup --name=<node-group-name> --cluster=<cluster-name>
    注意

    如果要将使用启动模板部署的节点组升级到新的启动模板版本,请添加--launch-template-<version>添加到上述命令。启动模板必须满足启动模板支持。如果启动模板包含自定义 AMI,则 AMI 必须满足使用自定义 AMI。将节点组升级到启动模板的较新版本时,会回收所有节点,以匹配指定的启动模板版本的新配置。

    您无法将没有启动模板部署的节点组直接升级到新的启动模板版本。相反,您必须使用启动模板部署新节点组,以将节点组更新为新的启动模板版本。

    您可以将节点组升级到与控制平面的 Kubernetes 版本相同的版本。例如,如果您的集群运行 Kubernetes 1.20,则可以使用以下命令将当前运行 Kubernetes 1.19 的节点升级到 1.20 版本。

    eksctl upgrade nodegroup --name=<node-group-name> --cluster=<cluster-name> --kubernetes-version=<1.20>
Amazon Web Services Management Console

使用更新节点组版本Amazon Web Services Management Console

  1. 从打开 Amazon EKS 控制台https://console.aws.amazon.com/eks/home#/clusters

  2. 选择包含要更新的节点组的集群。

  3. 如果至少有一个节点组具有可用更新,则页面顶部将出现一个框,通知您可用的更新。如果选择配置选项卡,然后选择计算选项卡上,您将看到立即更新中的AMI 发布版本” 列节点组表具有可用更新的节点组。要更新节点组,请选择立即更新。您不会看到使用自定义 AMI 部署的节点组的通知。如果您的节点使用自定义 AMI 进行部署,请完成以下步骤以部署新的更新自定义 AMI。

      1. 创建 AMI 的新版本。

      2. 使用新 AMI ID 创建新启动模板版本。

      3. 将节点升级到启动模板的新版本。

  4. 在存储库的更新节点组版本页面上,选择:

    • 更新节点组版本— 如果您部署了自定义 AMI,或者您的 Amazon EKS 优化 AMI 当前位于集群的最新版本,则此选项不可用。

    • 启动模板版本— 如果部署节点组时没有自定义启动模板,则此选项不可用。您只能更新已使用自定义启动模板部署的节点组的启动模板版本。选择要将节点组更新到的版本。如果您的节点组配置了自定义 AMI,则您选择的版本还必须指定 AMI。升级到较新版本的启动模板时,将回收所有节点,以匹配指定的启动模板版本的新配置。

  5. 适用于更新策略,选择下列选项之一,然后选择更新

    • 滚动更新— 此选项考虑集群的容器中断预算。如果存在 Pod 中断预算问题,导致 Amazon EKS 无法正常耗尽在此节点组上运行的 Pod,则更新将失败。

    • 强制更新— 此选项不尊重容器中断预算。通过强制节点重新启动,无论容器是否中断预算问题,都会发生更新。

编辑节点组配置

您可以修改托管节点组的某些配置。

编辑节点组配置

  1. 从打开 Amazon EKS 控制台https://console.aws.amazon.com/eks/home#/clusters

  2. 选择包含要编辑的节点组的集群。

  3. 选择配置选项卡。在存储库的计算选项卡上,选择要编辑的节点组,然后选择编辑

  4. (可选)在编辑节点组页面上,编辑组配置

    • 标签— 向节点组资源添加标签或从中删除标签。这些标签仅应用于 Amazon EKS 节点组。它们不会传播到其他资源,例如子网或节点组中的 Amazon EC2 实例。

    • Kubernetes 标签— 向节点组中的节点添加或删除 Kubernetes 标签。此处显示的标签仅为已使用 Amazon EKS 应用的标签。节点上可能存在此处未显示的其他标签。

    • Kubernetes 污点— 向节点组中的节点添加或删除 Kubernetes 污染。添加的污点可以具有No_SchedulePrefer_No_Schedule,或者No_Execute

  5. (可选)在编辑节点组页面上,编辑组大小

    • 最小容量— 指定托管节点数量的最小节点数。

    • 最大容量— 指定托管节点数量的最大节点数。有关节点组中支持的最大节点数,请参阅Amazon EKS Service Quoda

    • 所需容量— 指定托管节点数量的当前节点数。

  6. (可选 > 编辑节点组更新配置。选择数字或者百分比

    • 数字— 选择并指定节点组中可并行更新的节点数。这些节点在更新过程中将不可用。

    • 百分比— 选择并指定节点组中可并行更新的节点的百分比。这些节点在更新过程中将不可用。如果您的节点组中有大量节点,这将非常有用。

  7. 完成编辑后,选择保存更改。