玩转aws之(一)eks集群部署

目录

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 创建集群角色

创建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)

至此,安装教程就到这

觉得有用的点个收藏吧 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值