Cod*_*ght 5 amazon-ec2 amazon-web-services kubernetes amazon-eks
我能够创建一个 EKS 集群,但是当我尝试添加节点组时,我收到一个“创建失败”错误和详细信息:“NodeCreationFailure”:实例无法加入 kubernetes 集群
我尝试了各种实例类型,并在没有运气的情况下增加了更大的卷大小 (60gb)。查看 EC2 实例,我只看到以下问题。但是,很难做任何事情,因为我没有直接启动 EC2 实例(EKS NodeGroup UI 向导正在这样做。)
如果在我可以跳入 ec2 机器并“修复”它们之前发生故障,那么如何前进?
亚马逊 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]云初始化[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 默认情况下不会使用它。Yum [54.493407] cloud-init[3182]:然后将忽略存储库,直到您永久启用它 [54.495740] cloud-init[3182]:再次或使用 --enablerepo 临时使用:[54.495996] cloud-init[3182] ]: yum-config-manager --disable
man*_*lam 17
就我而言,问题是我将节点组部署在私有子网中,但该私有子网没有关联的 NAT 网关,因此无法访问互联网。我所做的是:
创建NAT网关
创建一个新的路由表,其中包含以下路由(第二个是互联网访问路由,通过nat):
之后,节点组毫无问题地加入集群。
我注意到这里没有答案,但在过去六个月里这个问题的访问量大约有 2000 次。出现这些失败的原因似乎有很多。要反省此处找到的 AWS 文档: https ://docs.aws.amazon.com/eks/latest/userguide/troubleshooting.html
aws-auth-cm.yaml 文件没有适合您的节点的正确 IAM 角色 ARN。确保在 aws-auth-cm.yaml 文件中指定节点 IAM 角色 ARN(不是实例配置文件 ARN)。有关更多信息,请参阅启动自我管理的 Amazon Linux 节点。
节点 AWS CloudFormation 模板中的 ClusterName 与您希望节点加入的集群的名称不完全匹配。向此字段传递不正确的值会导致节点的 /var/lib/kubelet/kubeconfig 文件配置不正确,并且节点将不会加入集群。
该节点未标记为由集群拥有。您的节点必须应用以下标签,其中 替换为您的集群的名称。
Key Value kubernetes.io/cluster/<cluster-name>
Value owned
Run Code Online (Sandbox Code Playgroud)
节点可能无法使用公共 IP 地址访问集群。确保为公共子网中部署的节点分配了公共 IP 地址。如果没有,您可以在节点启动后将弹性 IP 地址关联到节点。有关更多信息,请参阅将弹性 IP 地址与正在运行的实例或网络接口关联。如果公有子网未设置为自动将公有 IP 地址分配给部署到其中的实例,那么我们建议启用该设置。有关详细信息,请参阅修改子网的公共 IPv4 寻址属性。如果节点部署到私有子网,则该子网必须具有到分配了公共 IP 地址的 NAT 网关的路由。
您的账户未启用您要将节点部署到的区域的 STS 终端节点。要启用区域,请参阅在 AWS 区域中激活和停用 AWS STS。
工作节点没有私有 DNS 条目,导致 kubelet 日志包含节点“”未找到错误。确保创建工作节点的 VPC 已将域名和域名服务器的值设置为 DHCP 选项集中的选项。默认值为domain-name:.compute.internal 和domain-name-servers:AmazonProvidedDNS。有关更多信息,请参阅 Amazon VPC 用户指南中的 DHCP 选项集。
我自己在标签方面遇到了问题,我需要一个大写字母。实际上,如果您可以使用其他途径来部署 EKS 集群,我会推荐它(eksctl、aws cli、terraform 甚至)。
| 归档时间: |
|
| 查看次数: |
4841 次 |
| 最近记录: |