目录
1. 前言
2. 创建EKS集群
2.2.1 创建集群角色
2.2.2 创建 EKS 集群
2.2.3 添加主机组
3. 配置kubectl访问集群
3.1 安装kubectl
3.2 使用AWS CLi配置.kube/config
4. 安装ingress controll
创建集群文档参考:创建 Amazon EKS 集群 - Amazon EKS
1. 前言
aws官方用户指南中关于创建EKS集群部分,看了几次才理解了整个创建过程,这里总结了创建集群的过程和步骤,可以通过eksctl、管理控制台和aws cli创建集群,这里通过管理控制台进行创建
EKS创建后默认没有worker节点、附加组件只有vpc cni、coredns、kubeproxy,因此需要自己添加worker节点和其它自定义组件,如ingress controll
创建步骤
- 创建集群角色
- 创建EKS集群
- 添加node
- 配置kubectl
- 安装ingress/alb(可选)
2. 创建EKS集群
2.2.1 创建集群角色
- 创建 Amazon EKS 集群角色参考文档:Amazon EKS 集群 IAM 角色 - Amazon EKS
- 需要创建两个角色
- EKS Cluster Role: 管理EKS集群用
- EKS Node Role: 添加EC2主机组用
创建EKS Cluster Role
打开 IAM 控制台:https://console.aws.amazon.com/iam/
选择 Roles,然后选择 Create role。
在 Trusted entity type(受信任的实体类型)下,选择 AWS service(AWS 服务)
从 Use cases for other AWS 服务(其他 AWS 服务 的使用案例)下拉列表中,选择 EKS
为您的使用案例选择 EKS - Cluster(EKS - 集群),然后选择 Next(下一步)
在 Add permissions(添加权限)选项卡上,选择 Next(下一步)
对于 Role name(角色名称),请为角色输入唯一名称,例如 eksClusterRole
其它可默认,点击 Create role(创建角色)
创建EKS Node Role
打开 IAM 控制台:https://console.aws.amazon.com/iam/
选择 Roles,然后选择 Create role。
在 Trusted entity type(受信任的实体类型)下,选择 AWS service(AWS 服务)
从 Use cases for other AWS 服务(其他 AWS 服务 的使用案例)下拉列表中,选择 EC2
然后选择 Next(下一步)
在 Add permissions(添加权限)选项卡上,添加下面三个权限,然后选择 Next(下一步)
AmazonEC2ContainerRegistryReadOnly
AmazonEKSWorkerNodePolicy
AmazonEKS_CNI_Policy
对于 Role name(角色名称),请为角色输入唯一名称,例如 eksNodeRole
其它可默认,Create role(创建角色)
2.2.2 创建 EKS 集群
打开控制台:https://console.aws.amazon.com/eks/home#/clusters
Add cluster(添加集群),然后选择 Create(创建)
在 Configure cluster(配置集群)页面上,输入以下字段:
Name: 集群的名称
Kubernetes version: 集群 Kubernetes 版本
Cluster Service Role: 集群服务角色,选择2.2.1创建的eks集群角色
Secrets encryption(密钥加密)–(可选,加密集群密钥),下一步
VPC: 指定VPC网络
subnets:指定子网,至少选两个,多可用区部署
security groups:安全组,可选,看情况自己配置
Cluster endpoint access:api访问,生产环境使用Private,只能内部访问
网络附加组件,默认限可,cni只有aws vpc cni可选
日志按需配置
下一步后,选create创建集群,等待10分钟左右
集群创建后默认没有工作节点,需要手动添加主机节点
2.2.3 添加主机组
可选操作,创建key pair,用于管理托管主机组的ssh,如有规划这里可跳过
创建完成后,会自动下载秘钥
创建Node group
等待集群状态显示为 ACTIVE,无法为状态尚未处于 ACTIVE 的集群创建托管节点组
打开 Amazon EKS 控制台:https://console.aws.amazon.com/eks/home#/clusters。
选择要在其中创建托管节点组的集群的名称
选择 Compute(计算)选项卡
选择 Add node group(添加节点组)
在 Configure node group (配置节点组) 页面上,填写相应参数,然后选择 Next (下一步)。
这里用上一开始创建的 IAM 角色
标签、污点视具体需要配置
下一步
Set compute and scaling configuration
这里按实际需求进行选配
节点伸缩配置(初始及最小/大节点数)
配置网络配置:子网(可将同一VPC下多个子网都选中,具体看规划),配置Configure SSH access to nodes,开启ssh用于管理节点(会弹出Warning弹窗,确认即可),配置key pairs,配置安全组acl,限制访问源IP
最后点Create开始添加节点
添加完成后如下
3. 配置kubectl访问集群
因为api只配置了私网访问,因此需要找同一VPC下的主机来配置kubectl
3.1 安装kubectl
参考文档: 安装或更新 kubectl - Amazon EKS
安装相同k8s版本的kubectl
curl -o kubectl https://s3.us-west-2.amazonaws.com/amazon-eks/1.22.6/2022-03-09/bin/linux/amd64/kubectl
chmod +x ./kubectl
mv kubectl /bin/
3.2 使用AWS CLi配置.kube/config
AWS CLi环境,基本上任一个ec2都有,如果没有aws这个命令,再行安装, 配置过程如下
- 查看 aws cli配置信息
aws sts get-caller-identity
- 生成config文件
# 命令如下
aws eks --region us-east-1 update-kubeconfig --name eks_east-1
# 参数说明
--region 集群所在的可用区
--name 集群的名字
命令成功的话会有以下输出
Added new context arn:aws:eks:us-east-1:504379495848:cluster/eks_east-1 to /root/.kube/config
# 至此集群创建和kubectl配置完毕,可以通过kubectl对集群进行管理和配置
kubectl get node
4. 安装ingress controll
ingress control版本查看:https://github.com/kubernetes/ingress-nginx/
安装命令如下
# 安装1.3.1版本
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.3.1/deploy/static/provider/aws/deploy.yaml
安装成功后会效果如下
其中ingress conrtoller svc会自动绑定一个clb,如果需要使用alb,请参考Load Balancers | EC2 Management Console (amazon.com)
至此,安装教程就到这文章来源:https://www.toymoban.com/news/detail-810233.html
觉得有用的点个收藏吧 文章来源地址https://www.toymoban.com/news/detail-810233.html
到了这里,关于玩转aws之(一)eks集群部署的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!