AWS EKS 集群部署与清理手顺

使用 AWS 控制台创建 Amazon EKS 集群

参考文档AWS EKS 入门指南

本文档将指导您使用 AWS 控制台创建 Amazon EKS 集群,涵盖从网络配置到资源清理的完整流程。

前提条件

  • 拥有 AWS 账户并具备相应权限
  • 已安装 AWS CLI 并完成配置
  • 已安装 kubectl 工具

1. 创建 Amazon VPC

VPC(虚拟私有云)是 AWS 中的虚拟网络环境,为 EKS 集群提供隔离的网络空间。

步骤

  1. 使用以下 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 控制台

  1. 登录 AWS 管理控制台
  2. 导航到 Amazon EKS 服务
  3. 点击"创建集群"

配置选项

集群配置

  • 集群名称: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 控制台创建节点组

  1. 打开 Amazon EKS 控制台
  2. 选择已创建的集群 cluster
  3. 点击"添加节点组"
  4. 按以下步骤配置:

节点组配置

  • 名称:nodegroup
  • 节点 IAM 角色:AmazonEKSNodeRole
  • 其他选项:保持默认

计算与扩缩容配置

  • 所有选项保持默认

网络配置

  • 所有选项保持默认

确认与创建

  • 检查配置信息,点击"创建"
  • 节点组状态将显示为"创建中",此过程需要几分钟
  • 等待状态变为"活跃"

6. 验证资源

6.1 查看集群资源

  • 在 Amazon EKS 控制台选择集群
  • 查看创建的集群 cluster 详情

6.2 获取集群令牌(可选)

bash 复制代码
aws eks get-token --cluster-name cluster

7. 清理资源(评估完成后)

7.1 删除节点组

  1. 访问 Amazon EKS 控制台
  2. 选择集群 cluster
  3. 进入"配置" → "计算"标签页
  4. 选择节点组,点击"删除"

7.2 删除集群

  1. 访问 Amazon EKS 控制台
  2. 选择集群 cluster
  3. 点击"删除集群",确认删除

7.3 删除 VPC CloudFormation 堆栈

  1. 访问 AWS CloudFormation 控制台
  2. 选择堆栈 eks-vpc-stack
  3. 点击"删除",确认删除

7.4 删除 IAM 角色

  1. 访问 IAM 控制台
  2. 进入"角色"页面
  3. 分别选择并删除以下角色:
    • AmazonEKSNodeRole
    • AmazonEKSClusterRole
相关推荐
GreatVicent5 小时前
AI Agent互操作标准化加速:A2A协议正式加入Linux基金会
linux·运维·人工智能·agent·aws·a2a
故乡dee云1 天前
多云账单代付靠谱吗?付款流程、费用核对和账号安全注意事项
安全·阿里云·云计算·腾讯云
fengkai45451 天前
三、存储基础知识
华为·云计算·存储
C厂工沛1 天前
安装VMware tools时无法在更新系统中找到组件?(解决)
云计算
Akiyama_Mio-Kon1 天前
AWS AI 自动安全修复深度解读:从生成脚本到最小权限、双人审批与回滚审计闭环
aws·ai agent·security hub·guardduty·安全自动化·云安全治理
weixin_307779131 天前
Databricks里用PySpark统计指定表和字段中各字段的空值、空字符串或零值比例
运维·数据仓库·python·spark·云计算
ai小陈3 天前
大模型推理显存不够怎么办?量化、KV Cache与CPU Offload优化实战
大数据·人工智能·ai·云计算·gpu算力
@HNUSTer3 天前
基于 GEE 的 Sentinel-2 多光谱数据实现河流浊度指数(NDTI)遥感监测
云计算·数据集·遥感大数据·gee·云平台·河流浊度(ndti)·水质遥感反演
DolitD3 天前
云流技术深度剖析:单服务器下如何实现3D应用的多实例并发?
java·服务器·前端·3d·云原生·云计算
小马同学-3 天前
四、虚拟化技术
运维·云计算