【问题标题】:AWS EKS - cluster no nodes availabe to schedule podsAWS EKS - 集群没有可用于调度 Pod 的节点
【发布时间】:2020-04-16 11:12:01
【问题描述】:

我是 AWS-EKS 的新手,我正在尝试创建集群和攻击工作节点,我遵循 AWS 文档 https://docs.aws.amazon.com/eks/latest/userguide/getting-started-console.html 并使用 cloudformation 创建具有私有和公有子网的 VPC,并使用私有和公有子网启动集群然后按照文档中的指导配置 kubectl、AWS CLI 和安装 aws-iam-authenticator 并使用 cloudformation yaml 格式启动 Amazon EKS Linux 工作节点并运行所有命令以使工作节点加入您的集群但是当我运行 kubectl get nodes 我得到结果如未找到资源。

我已运行以下命令进行故障排除:

kubectl 获取 pod following is the response

kubectl 获取事件following is the response

我已经在 linux 实例和工作节点以及 linux 实例中安装了 kubectl。请帮我解决这个问题。

【问题讨论】:

  • 您用于运行 kubectl 命令的机器应配置有与创建 EKS 集群相同的 IAM 凭据。你检查过吗?
  • 您好 Mrudav,感谢您的回复。这是 aws CLI 中的访问密钥 ID 和秘密访问密钥吗?我在 AWS 控制台中拥有管理员权限,并且在 aws cli 中使用了相应的访问密钥 ID 和秘密访问密钥。
  • 好的。您为此 EKS 集群添加的节点组是否已启动并正在运行?
  • 是的,他们正在运行
  • 这总是由于某些网络配置错误而发生。确保您为该特定 k8s 版本使用了正确的 AMI。还要检查 nodegroup 是否具有适当的 iam 角色,并且允许关联的安全组连接到控制平面。

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


【解决方案1】:

在我的脑海中,有 3 件事可能导致这种情况:

  1. aws-auth 可能未正确设置。确保 kubectl get cm -n kube-system aws-auth -oyaml 存在并包含由 cloudformation 输出(节点组角色 arn)给出的正确 rolearn
  2. ControlPlane 安全组可能不允许您的节点的子网。
  3. ClusterName 与实际的 EKS ClusterName 不匹配

【讨论】:

    猜你喜欢
    • 2019-07-16
    • 2022-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2021-11-14
    • 2021-07-20
    • 2020-01-05
    相关资源
    最近更新 更多