繁体   English   中英

AWS EKS - 节点组更新实例类型

[英]AWS EKS - NodeGroup Update Instance Types

我目前有一个使用 AWS EKS 的 Kubernetes 应用程序。 我还创建了节点组; 最初,我在该 nodeGroup 上配置的实例容量较低,只能处理 4 个 pod。 当我尝试对我的部署进行更新时,出现 Pod 不足的错误,这主要是由于我最初提供的容量不足的实例类型。 我的问题是可以更新实时 nodeGroup 实例类型吗?

我通过创建具有扩展实例类型的附加节点组解决了这个问题。 我只是想知道是否可以编辑实时节点组实例类型以进行扩展。

EKS 节点组实例类型在创建后无法更改。 每次您想要新的实例类型时,都必须创建一个新的节点组。

可以通过应用新的启动模板版本来更改实例类型。 但是,由于任何与节点相关的更改本质上都是不可变的,因此请注意,这实际上会创建新的 EC2 实例并摆脱旧的实例(取决于用例),并且不会更改现有节点上的实例类型。 EKS 节点组本质上是 EC2 自动扩展组,它使用启动模板来向上和向下扩展节点。 此外,启动模板定义了实例类型。 因此,通过定义一个新的启动模板,任何将要启动的新节点都将使用新的实例类型(另外,如果节点的数量没有改变,那么可以通过滚动更新来执行更改以最小化影响到集群)。 在 AWS 控制台中更新的步骤:

  1. 导航到 EC2 服务下的 Auto Scaling 组
  2. 为节点组找到弹性伸缩组对应的启动模板
  3. 通过选择 Actions - Modify template (create new version) 创建新版本 这将采用现有模板,因此只需要修改实例类型。
  4. 通过单击操作设置启动模板的默认版本 - 设置默认版本
  5. 应用更改
    • 节点数保持不变:
      • 打开弹性伸缩组

      • 单击开始实例刷新

      • 设置适当的最小健康百分比和实例预热

        实例刷新替换实例。 每个实例都会先终止然后替换,这会暂时减少 Auto Scaling 组中的可用容量。 学到更多

        如果只有一个节点,那么将刷新过程临时扩展到 2 个节点是有意义的,以便能够重新安排从正在刷新的节点中驱逐的工作负载。

    • 节点数量减少:
      • 可以通过eksctl scale nodegroup 但请记住,这将终止节点组中的所有实例并根据更新的启动模板创建新实例。
    • 节点数量增加:
      • 可以通过eksctl scale nodegroup 将创建的新实例将基于更新的启动模板。

参考截图

您无法更新实例类型、使用自动缩放或创建新节点组并在那里安排 pod

当然我们可以更新节点类型。 这只有在您通过启动模板和 EKS 优化实例创建节点组时才有可能。 因此,当您使用新实例类型创建新模板版本时,您可以在不删除节点组的情况下更新节点组实例类型

虽然您无法更改节点组本身,但当前版本的eksctl使用启动模板,您可以使用它创建新版本并更新节点组以指向新模板。

eksctl upgrade nodegroup --name=managed-ng-1 --cluster=managed-cluster --launch-template-version=3

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM