当前位置:首页 > 问答 > 正文

其实就是想说怎么用AWS一步步搭建个EKS集群,过程那些坑和注意点啥的

其实就是想跟你说说怎么用AWS一步步搭个EKS集群,还有过程中会遇到的坑和要注意的地方,这事儿吧,说简单也简单,AWS有现成的服务;说麻烦也麻烦,一堆配置和细节,一不小心就掉坑里了。

第一步:准备工作,别急着动手

先别上来就创建EKS,准备工作没做好,后面全是坑,你得有个AWS账号,这个不用说,关键是,你得想好在哪个“地区”搭你的集群,比如北京区域或者宁夏区域,选地区很重要,因为这决定了你后续所有资源(像虚拟机、网络)的位置,选错了延迟可能很高,改起来还特别麻烦。

你得准备好权限,AWS的权限管理叫IAM,这是个大事儿,你用来操作的那个用户(最好是专门创建一个用来做运维的用户,别用根用户),必须得有足够的权限去创建EJS集群、EC2虚拟机、VPC网络这些,权限给不够,走到哪一步就会卡住,报的错误信息有时候还看不懂,很头疼,最简单粗暴的方法是先给这个用户分配一个管理员的权限,等集群搭熟了,再根据最小权限原则慢慢收窄,但生产环境可千万别一直用管理员权限。

第二步:创建网络(VPC)是基础

EKS集群不是飘在天上的,它需要跑在一个虚拟网络里,这个就是VPC,你可以让AWS帮你自动创建一个默认的VPC,但我强烈建议自己手动创建一个新的VPC,为啥呢?因为自动创建的VPC的网段可能跟你公司内网或者其他环境冲突,而且子网的划分也不一定符合你的需求。

创建VPC的时候,要规划好IP地址范围,你选 0.0.0/16 这样一个大网段,你得在这个VPC里创建子网。这里有个超级大坑:EKS要求你的集群必须分布在至少2个不同的“可用区”(可以理解成同一个城市里不同的、物理隔离的数据中心),你至少要创建2个子网,并且每个子网位于不同的可用区,子网A在可用区A,网段是 0.1.0/24;子网B在可用区B,网段是 0.2.0/24,这样做的目的是保证高可用,一个机房出问题了,另一个还能用。

第三步:真正创建EKS集群

网络搞定了,现在可以创建EKS集群本身了,在AWS控制台找到EKS服务,点击“创建集群”,这里有几个关键点:

  1. 集群版本:建议选一个稳定的、不是最新刚出的版本,最新版本可能有不稳定的风险。
  2. 集群服务角色:这里又是IAM权限的问题,你需要先创建一个IAM角色,这个角色要信任EKS服务,并且有操作集群的权限,AWS官方文档有具体的策略文件,照着填就行,如果这个角色没提前创建好或者权限不对,这一步就会失败。
  3. 选择VPC和子网:就选你上一步自己精心准备的那个VPC和那多个子网。

创建集群本身其实很快,大概十来分钟,但注意,这时候你只有一个“控制平面”(就是Kubernetes的大脑,Master节点),你还不能跑任何服务,因为还没有真正干活的“工人”——节点。

第四步:添加节点组(Node Group)

节点组就是一组用来运行你容器应用的EC2虚拟机,在集群创建成功后,你需要在它的配置页里找到“计算”选项卡,去添加节点组。

  • 节点IAM角色:看,IAM又来了,你需要为这些干活的EC2虚拟机创建一个新的IAM角色,这个角色需要能拉取容器镜像、操作负载均衡器等权限,如果这个权限没给对,你的Pod(容器组)就会启动失败,日志里会报权限拒绝的错误,排查起来很费劲。
  • 实例类型:选哪种EC2虚拟机?根据你的业务需求来,如果只是测试,用 t3.medium 这种小规格的就行,生产环境就得选计算优化型或者内存优化型了。
  • 远程访问:强烈建议勾选“允许远程访问”,并提供一个你已有的SSH密钥对,这样万一节点出问题了,你还能SSH登录上去看个日志,不然就只能干瞪眼。

节点组创建后,EC2虚拟机会自动启动并注册到你的EKS集群里,你可以在EC2控制台看到这些机器,也可以用 kubectl get nodes 命令查看它们是否就绪。

第五步:配置本地kubectl命令

集群和节点都有了,你怎么在你自己电脑上操作这个集群呢?需要用 kubectl 这个命令行工具。

  1. 先在你电脑上安装好 kubectlaws-cli
  2. 然后用一条AWS提供的命令更新你的本地kubeconfig文件,这条命令大概是 aws eks update-kubeconfig --region 你的区域 --name 你的集群名
  3. 执行成功后,运行 kubectl get nodes,如果能看到你刚才创建的节点,并且状态是Ready,那就恭喜你,大功告成了!

最后总结一下核心注意点:

  • IAM是万坑之源:创建集群的角色、节点角色的权限一定要给对,这是最容易出错的地方。
  • 网络规划要先行:自己创建VPC和跨可用区的子网,避免后续麻烦。
  • 版本选择求稳定:别盲目追新。
  • 开启远程访问:给节点留个SSH后路,方便排查问题。
  • 费用问题:EKS控制平面本身就要收费,不管你用不用,EC2节点更是按秒计费,测试完如果不用了,记得把集群和所有相关资源(特别是负载均衡器)都删掉,不然月底账单会吓你一跳。

整个过程大概就是这样,顺着这个流程走,避开这些坑,搭起来就顺利多了。

其实就是想说怎么用AWS一步步搭建个EKS集群,过程那些坑和注意点啥的