如何解决 Amazon EKS 中托管节点组的自定义启动模板问题?

2 分钟阅读
0

我想排查在我的 Amazon Elastic Kubernetes Service(Amazon EKS)集群中使用托管节点组的自定义启动模板时出现的错误。

简短描述

在您的 Amazon EKS 集群中使用托管节点组的自定义启动模板时,您可能会遇到以下错误之一:

  • “Client.InternalError: Client error on launch”(Client.InternalError:启动时出现客户端错误)
  • “SourceEc2LaunchTemplateNotFound or The Amazon EC2 Launch Template lt-xxxxxxxxxxxxxxxxx version x was not found”(SourceEc2LaunchTemplateNotFound 或 The Amazon EC2 Launch Template lt-xxxxxxxxxxxxxxxxx version x 未找到)
  • “Node group entered a DEGRADED status”(节点组进入了 DEGRADED 状态)

解决方法

Client.InternalError: Client error on launch(Client.InternalError:启动时出现客户端错误)

在没有正确权限的自定义启动模板中使用加密的 Amazon Elastic Block Store(Amazon EBS)卷时,会出现此错误。要检查加密状态和 AWS Identity and Access Management(IAM)权限或策略,请验证以下内容:

SourceEc2LaunchTemplateNotFound or The Amazon EC2 Launch Template lt-xxxxxxxxxxxxxxxxx version x was not found(SourceEc2LaunchTemplateNotFound 或 The Amazon EC2 Launch Template lt-xxxxxxxxxxxxxxxxx version x 未找到)

当您通过节点的自动扩缩组而不是 Amazon EKS 来手动更改自定义启动模板版本时,就会出现此错误。要解决此问题,您必须使用 Amazon EKS 更新启动模板版本。

要从托管节点组更新 EC2 启动模板,请完成以下步骤:

  1. 打开 Amazon EKS 控制台
  2. 在导航窗格中,选择 Clusters(集群)。
  3. Cluster name(集群名称)中,选择包含要更新的节点组的集群。
  4. 选择 Compute(计算)选项卡。
  5. 对于节点组,选择您的节点,然后选择 Change version(更改版本)。
  6. 选择要应用到节点组的版本。确保更新策略已设置为滚动更新
  7. 选择 Update(更新)。

有关更多信息,请参阅更新托管节点组

创建新的启动模板后,节点组进入 DEGRADED(已降级)状态

节点组进入 DEGRADED(已降级)状态,出现如下错误:

“The Amazon EC2 Launch Template : lt-xxxxxxxxxxxxxxxxx has a new version associated with your Autoscaling group, which is not managed by Amazon EKS.Expected Launch Template version : x”(Amazon EC2 启动模板:lt-xxxxxxxxxxxxxxxxx 有一个与自动扩缩组相关联的新版本,该版本不由 Amazon EKS 管理。意外的启动模板版本:x)。

当您的托管节点组的 Amazon EC2 启动模板版本与 Amazon EKS 创建的版本不匹配时,就会出现此问题。无法直接更新不使用自定义启动模板的现有节点组。要解决此问题,请使用您的首选设置创建启动模板和版本,然后使用该启动模板创建节点组。如果新节点组是从您的自定义模板启动的,则您可以创建该模板的新版本。您可以使用此模板而无需将节点组置于 DEGRADED(已降级)状态。


相关信息

启动模板支持

启动模板配置基础知识

AWS 官方
AWS 官方已更新 1 年前
没有评论