使用 AWS 控制台创建 Amazon EKS 集群
参考文档 :AWS EKS 入门指南
本文档将指导您使用 AWS 控制台创建 Amazon EKS 集群,涵盖从网络配置到资源清理的完整流程。
前提条件
- 拥有 AWS 账户并具备相应权限
- 已安装 AWS CLI 并完成配置
- 已安装 kubectl 工具
1. 创建 Amazon VPC
VPC(虚拟私有云)是 AWS 中的虚拟网络环境,为 EKS 集群提供隔离的网络空间。
步骤
- 使用以下 CloudFormation 模板创建 VPC:
bash
aws cloudformation create-stack \
--region ap-northeast-1 \
--stack-name eks-vpc-stack \
--template-url https://amazon-eks.s3.us-west-2.amazonaws.com/cloudformation/2020-10-29/amazon-eks-vpc-private-subnets.yaml
注意 :如果遇到 SSL 错误,可添加
--no-verify-ssl选项。创建进度可通过 AWS Console 的 CloudFormation 服务查看。
2. 创建集群 IAM 角色
IAM 角色定义了 EKS 集群的权限,允许集群访问所需的 AWS 资源。
2.1 创建信任策略文件
创建名为 cluster-role-trust-policy.json 的文件,内容如下:
json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eks.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
2.2 创建 IAM 角色
使用以下命令创建 IAM 角色:
bash
aws iam create-role \
--role-name AmazonEKSClusterRole \
--assume-role-policy-document file://"cluster-role-trust-policy.json"
2.3 附加 EKS 管理策略
为角色附加必要的 EKS 管理策略:
bash
aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/AmazonEKSClusterPolicy \
--role-name AmazonEKSClusterRole
3. 创建 EKS 集群
EKS 集群是 Kubernetes 的控制平面,负责管理容器编排和调度。
3.1 访问 Amazon EKS 控制台
- 登录 AWS 管理控制台
- 导航到 Amazon EKS 服务
- 点击"创建集群"
配置选项
集群配置
- 集群名称:
cluster - Kubernetes 版本:选择最新稳定版本
- 集群服务角色:选择
AmazonEKSClusterRole - 其他选项:保持默认
网络配置
- VPC:选择之前创建的 VPC(
vpc-00x0000x000x0x000 | eks-vpc-stack-VPC) - 子网:选择 VPC 中的公有和私有子网
- 安全组:使用默认安全组或创建新的
- 其他选项:保持默认
日志记录配置
- 所有选项保持默认
确认与创建
- 检查配置信息,点击"创建"
- 集群状态将显示为"创建中",此过程需要 10-15 分钟
- 等待状态变为"活跃"
4. 配置集群连接
配置连接让本地 kubectl 能够与远程 EKS 集群通信。
4.1 更新 kubeconfig 文件
运行以下命令更新本地 kubeconfig:
bash
aws eks update-kubeconfig \
--region ap-northeast-1 \
--name cluster
4.2 测试连接
验证集群连接是否正常:
bash
kubectl get svc
预期输出示例:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.100.0.1 <none> 443/TCP 4m37s
如果看到类似输出,说明连接成功。
5. 创建节点组
节点组是运行容器的工作节点集合,为集群提供计算资源。
本手顺使用托管节点组。
5.1 创建节点角色信任策略文件
创建 node-role-trust-policy.json 文件,内容如下:
json
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
5.2 创建节点 IAM 角色
bash
aws iam create-role \
--role-name AmazonEKSNodeRole \
--assume-role-policy-document file://"node-role-trust-policy.json"
5.3 附加必要的托管 IAM 策略
bash
# 附加 EKS 工作节点策略
aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/AmazonEKSWorkerNodePolicy \
--role-name AmazonEKSNodeRole
# 附加 ECR 只读权限
aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryReadOnly \
--role-name AmazonEKSNodeRole
# 附加 CNI 网络策略
aws iam attach-role-policy \
--policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy \
--role-name AmazonEKSNodeRole
5.4 在 EKS 控制台创建节点组
- 打开 Amazon EKS 控制台
- 选择已创建的集群
cluster - 点击"添加节点组"
- 按以下步骤配置:
节点组配置
- 名称:
nodegroup - 节点 IAM 角色:
AmazonEKSNodeRole - 其他选项:保持默认
计算与扩缩容配置
- 所有选项保持默认
网络配置
- 所有选项保持默认
确认与创建
- 检查配置信息,点击"创建"
- 节点组状态将显示为"创建中",此过程需要几分钟
- 等待状态变为"活跃"
6. 验证资源
6.1 查看集群资源
- 在 Amazon EKS 控制台选择集群
- 查看创建的集群
cluster详情
6.2 获取集群令牌(可选)
bash
aws eks get-token --cluster-name cluster
7. 清理资源(评估完成后)
7.1 删除节点组
- 访问 Amazon EKS 控制台
- 选择集群
cluster - 进入"配置" → "计算"标签页
- 选择节点组,点击"删除"
7.2 删除集群
- 访问 Amazon EKS 控制台
- 选择集群
cluster - 点击"删除集群",确认删除
7.3 删除 VPC CloudFormation 堆栈
- 访问 AWS CloudFormation 控制台
- 选择堆栈
eks-vpc-stack - 点击"删除",确认删除
7.4 删除 IAM 角色
- 访问 IAM 控制台
- 进入"角色"页面
- 分别选择并删除以下角色:
AmazonEKSNodeRoleAmazonEKSClusterRole