问题描述
在创建新的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角色,但在角色列表中看不到它们。这可能是因为界面的缓存问题。如果你遇到这种情况,请尝试以下步骤:
- 单击角色列表旁边的刷新按钮。
- 如果刷新按钮没有起作用,请尝试硬刷新页面,通常是按下
Ctrl + F5
(Windows/Linux)或Command + Shift + R
(Mac)。
检查其他可能引起问题的因素
如果在按照上述步骤操作后仍然无法在下拉列表中看到正确的IAM角色选项,可以考虑以下几个可能的问题:
- 权限问题: 确保你具有足够的权限来创建和使用IAM角色。可能需要联系管理员以获取适当的权限。
- 网络问题: 确保你的网络连接稳定,可以正常访问AWS服务。
- 区域问题: 确保你在正确的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支持以获取进一步的帮助。