aws EKS 配置
通过 AWS 管理控制台部署 EKS 集群
- Kubernetes 版本: v1.35
本示例中使用 EKS 自治模式
EKS 自治模式 接管了原本需要手动管理的节点、存储和网络配置,因此它需要一组非常具体且强大的权限
EKS 自治模式 有额外的费用,大概比 EC2 价格高 12%
EKS 自治模式 在集群创建完成后可修改(编辑)
创建 EKS 集群 IAM 角色
每个集群都需要一个 Amazon EKS 集群 IAM 角色。由 Amazon EKS 管理的 Kubernetes 集群会使用此角色来管理节点
AWS 官方参考文档: https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/cluster-iam-role.html#create-service-role进入 IAM 控制台 -> 角色 -> 创建角色。
选择 AWS 服务,找到 EKS。
选择 EKS - Cluster 用例。
确保关联了以下权限策略。
AmazonEKSClusterPolicyAmazonEKSComputePolicyAmazonEKSBlockStoragePolicyAmazonEKSNetworkingPolicyAmazonEKSLoadBalancingPolicy
修改角色 信任关系 (Trust relationships) ,在
Action列表中添加sts:TagSession{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": ["sts:AssumeRole",
"sts:TagSession"
]}
]
}命名为
eksClusterRole并保存。
创建 EKS 节点 IAM 角色
Amazon EKS 节点 kubelet 守护进程代表您调用 AWS API。节点通过 IAM 实例配置文件和关联的策略获得这些 API 调用的权限。您必须先为节点创建 IAM 角色以在启动它们时使用,然后才能启动这些节点并在集群中注册它们。
AWS 官方参考文档: https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/create-node-role.html通过 https://console.aws.amazon.com/iam/ 打开 IAM 控制台。
在左侧导航窗格中,选择 Roles(角色) 。
在 Roles(角色)页面上,选择
Create role(创建角色)。在
Select trusted entity(选择受信任的实体)页面上,请执行以下操作:- 在可信实体类型部分中,选择 AWS 服务。
2, 在 Use case(使用案例)下,选择 EC2。 - 选择下一步。
- 在可信实体类型部分中,选择 AWS 服务。
在添加权限页面上,附加自定义策略或执行以下操作:
- 在
Filter policies (筛选器策略)框中,输入AmazonEKSWorkerNodePolicy。 - 选中搜索结果中的
AmazonEKSWorkerNodePolicy左侧的复选框。 - 请选择 Clear filters(清除筛选条件) 。
- 在 Filter policies (筛选器策略) 框中,输入
AmazonEC2ContainerRegistryPullOnly。 - 选中搜索结果中的
AmazonEC2ContainerRegistryPullOnly左侧的复选框。 - 选择下一步。
- 在
在 Name, review, and create(命名、查看和创建)页面中 ,对角色(Role)命名,本示例使用
eksNodeRole。选择 创建角色 。
创建集群控制平面
- 进入 EKS 控制台 -> 集群 -> 添加集群 -> 创建。
- 配置集群:输入名称,选择 Kubernetes 版本,并选择已经创建的 集群 IAM 角色
eksClusterRole和 节点 IAM 角色eksNodeRole - 其他配置使用默认即可。
常见错误
集群角色缺少建议的托管策略
EKS 自治模式 的集群创建过程中缺少必要的权限
集群角色缺少建议的托管策略 |
EKS 自治模式 接管了原本需要手动管理的节点、存储和网络配置,因此它需要一组非常具体且强大的权限. 解决方法如下
登录 IAM 控制台,找到“角色 (Roles)”。
搜索并点击你为 EKS 集群创建的角色名称,本示例中为
eksClusterRole。在 权限 (Permissions) 选项卡下,点击
添加权限 (Add permissions) -> 附加策略 (Attach policies)。在搜索框中分别搜索并勾选上述四个策略:
AmazonEKSComputePolicyAmazonEKSBlockStoragePolicyAmazonEKSNetworkingPolicyAmazonEKSLoadBalancingPolicy
最终的 权限策略 如下图所示:
集群角色信任策略缺少必需的操作
EKS 自治模式 的集群创建过程中缺少必要的权限
集群角色信任策略缺少必需的操作 |
在 EKS 自治模式下,EKS 需要使用 sts:TagSession 来为它替你创建的资源(如自动生成的节点)进行身份标识和追踪。
修改 IAM 角色的 信任关系 (Trust relationships) ,将 sts:TagSession 操作添加到允许列表中。
- 进入 IAM 控制台 -> 角色 (Roles)。
- 搜索并点击你的 EKS 集群角色,本示例中为
eksClusterRole。 - 点击 信任关系 (Trust relationships) 选项卡。
- 点击 编辑信任策略 (Edit trust policy) 。默认内容如下 修改为以下内容,在
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}Action列表中添加sts:TagSession{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": ["sts:AssumeRole",
"sts:TagSession"
]}
]
} - 修改完成后,点击 更新策略 (Update policy)















