AWS EKS NodeGroup“创建失败”:实例无法加入kubernetes集群

时间:2020-10-24 16:27:11

标签: amazon-web-services kubernetes amazon-ec2 amazon-eks

我能够创建EKS集群,但是当我尝试添加节点组时,出现“创建失败”错误,并显示以下详细信息: “ NodeCreationFailure”:实例无法加入kubernetes集群

我尝试了各种实例类型,并增加了没有运气的更大卷大小(60gb)。 查看EC2实例,我只会看到以下问题。但是,由于我没有直接启动EC2实例(EKS NodeGroup UI向导正在执行此操作),因此很难做任何事情。

考虑到故障发生的发生,甚至在我跳入ec2机器并“修复”它们之前,如何前进?

Amazon Linux 2

x86_64上的内核4.14.198-152.320.amzn2.x86_64

ip-187-187-187-175登录:[54.474668] cloud-init [3182]: 配置的存储库失败(未知), [54.475887] cloud-init [3182]:yum缓存不足 数据继续。在这一点上唯一 [54.478096] cloud-init [3182]:yum可以做的安全的事情是失败。那里 有几种方法可以“解决”此问题: [54.480183] cloud-init [3182]:1.联系上游以获取 存储库,并让他们解决问题。 [54.483514] cloud-init [3182]:2.重新配置baseurl / etc。对于 储存库,指向工作中的 [54.485198] cloud-init [3182]:上游。这是最有用的 如果您使用的是较新的 [54.486906] cloud-init [3182]:发行版本超出 存储库支持(以及 [54.488316] cloud-init [3182]:以前的软件包 发行版仍然有效)。 [54.489660] cloud-init [3182]:3.使用以下命令运行命令 储存库暂时停用 [54.491045] cloud-init [3182]:yum --disablerepo = ... [54.491285] cloud-init [3182]:4.禁用存储库 永久使用,因此yum默认不会使用它。百胜 [54.493407] cloud-init [3182]:然后将忽略存储库 直到您永久启用它 [54.495740] cloud-init [3182]:再次或使用--enablerepo 临时用途: [54.495996] cloud-init [3182]:yum-config-manager --disable

1 个答案:

答案 0 :(得分:1)

我注意到这里没有答案,但在过去六个月中,这个问题的访问量大约为 2,000 次。您可能会看到这些失败的原因似乎有很多。要重新引用此处找到的 AWS 文档: https://docs.aws.amazon.com/eks/latest/userguide/troubleshooting.html

<块引用>
  • aws-auth-cm.yaml 文件没有正确的 IAM 角色 ARN 你的节点。确保节点 IAM 角色 ARN(不是实例 profile ARN) 在您的 aws-auth-cm.yaml 文件中指定。更多 信息,请参阅启动自我管理的 Amazon Linux 节点。

  • 您的节点 AWS CloudFormation 模板中的 ClusterName 没有 与您希望节点加入的集群名称完全匹配。 向该字段传递不正确的值会导致错误 节点的 /var/lib/kubelet/kubeconfig 文件的配置,以及 节点不会加入集群。

  • 该节点没有被标记为归集群所有。您的节点必须 将以下标签应用于它们,在哪里 替换为您的集群名称。

    Key Value kubernetes.io/cluster/<cluster-name> 
    Value owned
<块引用>
  • 节点可能无法使用公共 IP 访问集群 地址。确保为部署在公共子网中的节点分配了一个 公共 IP 地址。如果没有,您可以将弹性 IP 地址关联到 启动后的一个节点。有关更多信息,请参阅关联 具有正在运行的实例或网络接口的弹性 IP 地址。如果 公共子网未设置为自动分配公共 IP 地址部署到它的实例,然后我们建议启用 环境。有关更多信息,请参阅修改公共 IPv4 子网的寻址属性。如果节点部署到 私有子网,那么子网必须有一个路由到 NAT 网关 分配给它的公共 IP 地址。

  • 您将节点部署到的区域的 STS 端点是 未为您的帐户启用。要启用该区域,请参阅激活和 停用 AWS 区域中的 AWS STS。

  • 工作节点没有私有 DNS 条目,导致 kubelet 日志包含节点 "" not found 错误。确保 VPC 创建工作节点的位置为 domain-name 和 域名服务器作为 DHCP 选项集中的选项。默认的 值为 domain-name:.compute.internal 和 域名服务器:AmazonProvidedDNS。有关详细信息,请参阅 DHCP Amazon VPC 用户指南中的选项集。

我自己在需要大写字母的标记上遇到了问题。实际上,如果您可以使用其他途径来部署 EKS 集群,我会推荐它(eksctl、aws cli、甚至 terraform)。