在新的EKS集群中无法配置节点组,因为找不到节点IAM角色

113次阅读
没有评论

问题描述

在创建新的Amazon Elastic Kubernetes Service (EKS)集群后,尝试添加一个新的节点组(node group),但在选择节点IAM角色时遇到问题。用户无法从下拉列表中找到可用的IAM角色选项。

用户尝试了创建多个适合角色的选项,但仍然没有在下拉列表中看到任何角色。

用户希望能够解决这个问题,以便能够继续配置节点组并在测试账户下运行一些 Proof of Concept (POC)。

解决方案

确保正确创建节点IAM角色并设置信任关系

在创建节点组之前,需要确保已经创建了一个包含以下IAM策略的IAM角色:

  • AmazonEKSWorkerNodePolicy
  • AmazonEKS_CNI_Policy
  • AmazonEC2ContainerRegistryReadOnly

另外,还需要确保IAM角色的信任关系(Trust Relationships)可以被Amazon EKS所假定。以下是一个允许EC2实例扮演该角色的示例信任关系策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "ec2.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
}

刷新角色列表

在一些情况下,尽管已经创建了新的IAM角色,但在角色列表中看不到它们。这可能是因为界面的缓存问题。如果你遇到这种情况,请尝试以下步骤:

  1. 单击角色列表旁边的刷新按钮。
  2. 如果刷新按钮没有起作用,请尝试硬刷新页面,通常是按下Ctrl + F5(Windows/Linux)或Command + Shift + R(Mac)。

检查其他可能引起问题的因素

如果在按照上述步骤操作后仍然无法在下拉列表中看到正确的IAM角色选项,可以考虑以下几个可能的问题:

  1. 权限问题: 确保你具有足够的权限来创建和使用IAM角色。可能需要联系管理员以获取适当的权限。
  2. 网络问题: 确保你的网络连接稳定,可以正常访问AWS服务。
  3. 区域问题: 确保你在正确的AWS区域内操作,角色可能在其他区域中不可见。

示例配置

以下是一个可能的节点组配置示例,其中包含了在创建节点组时需要的IAM角色配置:

apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig

metadata:
  name: my-cluster
  region: us-west-2

nodeGroups:
  - name: ng-1
    instanceType: t2.micro
    desiredCapacity: 2
    iam:
      withAddonPolicies:
        autoScaler: true
        albIngress: true
      attachPolicyARNs:
        - arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy
        - arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy
        - arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly

在上述示例中,attachPolicyARNs 部分列出了需要附加到节点组IAM角色的策略ARN,以确保节点组正常运行所需的权限被授予。

请根据你的实际需求进行适当的调整,确保在配置节点组时使用了正确的IAM角色和策略。

注意:上述示例中的配置可能随着EKS和IAM的更新而变化,建议随时查阅官方文档以获取最新的配置信息。

总结

在配置Amazon EKS节点组时,确保正确创建了包含所需IAM策略的IAM角色,并设置了正确的信任关系。如果遇到角色列表不更新的问题,尝试刷新页面或者进行硬刷新。如果问题仍然存在,可以检查权限、网络连接和区域等因素,以确定问题的根本原因。

希望上述解决方案能够帮助你成功配置EKS节点组并运行你的测试。如果你仍然遇到问题,建议参考官方文档或联系AWS支持以获取进一步的帮助。

正文完