更新托管节点组 - Amazon EKS

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

更新托管节点组

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

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

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

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

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

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

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

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

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

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

更新节点组版本

您可以使用更新节点组版本eksctl或AWS 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>
AWS Management Console

使用更新节点组版本AWS 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. 完成编辑后,选择保存更改。