使用eksctl创建EKS

在上一篇中介绍了通过控制台创建eks,本章将介绍通过命令(eksctl)的方式创建EKS

先决条件

配置执行权限

使用命令的方式操作AWS 资源,我们可以以用户的身份去执行命令,也可以使用角色去执行命令。如果以用户的身份去执行命令,需要赋予用户相关权限然后配置cli,请参考上一篇中的先决条件赋予用户权限,如果以角色去执行命令,则需要创建一个新的角色(创建角色时案例选EC2),与赋予用户权限类似地将对应策略附加到角色上即可,然后将角色附加到需要操作命令的EC2 上。本篇中将介绍通过角色来执行命令

给EC2 附加角色

使用命令创建EKS与使用控制台创建不一样的地方是,通过命令创建时需要给用户或角色多一个CloudFormation 的操作权限,需要将如下策略添加给用户或角色以获取CloudFormation操作权限(注:下面策略中只允许在香港region进行操作,使用时请按需修改并替换AccountID 为自己账号的值)

配置服务器环境

配置AWS CLI

如果我们使用的是EC2来运行命令 ,EC2默认是已经自带CLI ,本节可以跳过。如果需要在自己的电脑上运行aws 命令,则需要安装CLI ,可参考CLI篇中如何安装CLI 。本篇中,我们是通过以角色的方式来创建EKS,因此不需要在机器上配置用户信息,如果使用以用户来创建EKS ,则需要通过aws configure 配置用户信息

配置eksctl

检查eksctl 版本(版本>=0.15.0)

配置kubectl

检查 kubectl 版本(版本>=1.15)

通过命令创建

命令大约需要二十分钟执行完成,正常执行如下图

输出参考
从控制台可以看到新创建的EKS

如果在创建过程中提示没有权限,请从以下几方面做检查

  1. 角色(或用户) 是否配置正确权限(IAM 角色,EKS,EC2,CloudFormation四个方面进行检查)

  2. 角色是否附加在EC2上

  3. 策略中约束的区域,与命令中的区域是否一致

验证

总结

  1. 使用eksctl 创建EKS 与 控制台创建EKS 在授权上是类似地,使用eksctl 多一个CloudFormation 权限需求

  2. 使用eksctl 创建EKS 不需要预先创建EKS 服务角色 和EKS 节点角色,这个通过CloudFormation完成

  3. 推荐使用角色创建EKS ,这样可以控制操作EKS 的权限在EC2 上而不是在用户手上,减少安全风险

参考 eks 创建教程

最后更新于

这有帮助吗?