关于kubernetes:AWS简单搭建使用EKS一

背景:

海内服务合作方服务器部署在新加坡AWS,而后就顺便应用了一下AWS下面的各项服务。最近要给合作方写交付文档,就顺便写一下相干服务的简略应用,并没有太深刻,因为所有环境搭建根本都是速成流程,小公司说上就上,没有工夫深入研究积攒,且次要服务环境都运行在国外腾讯云and阿里云。上面是一些流程的演示!
留神:演示流程搭建在aws北京区,故很多arn:aws-cn会,请留神各项区别!以下操作区域都默认为北京。在集体各项操作中请确认操作区域!

从VPC开始

注: 如果已有VPC并且vpc合乎应用需要能够疏忽这一步。

对于VPC

aws官网文档:https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html

也能够依照国内两个云商的文档了解:
VPC Virtual Private Cloud(Virtual Private Cloud)户基于xxxx创立的自定义公有网络, 不同的专有网络之间二层逻辑隔离,用户能够在本人创立的专有网络内创立和治理云产品实例,比方ECS、SLB、RDS等。借用国内两家云商的官网文档,大同小异!

登录aws控制台

登陆aws控制台,点击左上角Services

搜寻VPC并进入VPC控制台

点击ServiceAll services 搜寻 vpc 。点击进入vpc控制台。

创立VPC

VPC控制台面版点击创立VPC:

VPC设置这里抉择VPC等还是很不便的间接抉择VPC等,设置自定义VPC名称ipv4 cidr块能够自定义设置,这里就默认10.0.0.0/16,如果有须要多VPC网络互通,避免地址段抵触,进行更具体的划分,能够应用子网划分工具更好的划分设计网络。IPV6 cidr块放弃默认未启用。可用区AZ这里设置为3,毕竟多可用区能够更好的容灾高可用。子网设置这里没有启动公有子网private网络,设置了3个public子网跟AZ的数量是统一的

创立,期待VPC创立实现,查看VPC

重要揭示

VPC控制台找到三个对应子网subset操作编辑子网设置

启动主动调配IP设置,否则EC2无奈主动生成绑定公网IP,须要手动创立并绑定EC2!

留神:是三个public子网都要设置一下,否则无奈启用主动调配公网IP.当然也能够用private私网,这里演示都是以public子网演示

创立EKS服务

EKS -Amazon Elastic Kubernetes Service 跟国内的tke ack一样 都是托管的kubernetes服务

参照:创立 AWS EKS 集群

创立EKS相干IAM 受权

创立 EKS Cluster Role

留神:以下操作能够用一个普通用户操作然而要有角色 策略的相干权限
在 AWS 控制台,抉择“IAM”,进入 IAM 界面,抉择右边的“角色”,而后在左边点击“创立角色”:

依照下图红色箭头进行相干操作,进入 抉择可信实体页面,顺次抉择“AWS 服务”, “EKS”,“EKS – Cluster”后,点击“下一步”:

在增加 权限页面,“AmazonEKSClusterPolicy”曾经主动增加,所以能够间接点击“下一步”

增加 角色 名称“EksClusterRole”后,其余默认,点击“创立角色”:

创立实现点击角色- EksClusterRole”,查看已绑定AmazonEKSClusterPolicy权限策略:

阐明:此 policy 为 EKS 集群,提供运行必要的权限,比方操作 EC2,主动扩大等等。角色名称能够自定义名称!

创立 EKS Node Role

办法根本与创立 Cluser Role 基本相同,依照下图选项操作:
在增加权限页面中,顺次搜寻勾选以下三个 policy,而后点击“下一步”

  • AmazonEC2ContainerRegistryReadOnly
  • AmazonEKSWorkerNodePolicy
  • AmazonEKS_CNI_Policy

输出角色名称EKSnoderole创立角色:

创立实现点击角色- EKSnoderole”,查看已绑定的权限策略如下:
留神AmazonEBSCSIDriverPolicy 我也加了进来,EBS绑定目测会须要到的

创立eks集群

进入eks治理控制台

All services 搜寻EKS关键词,点击进入EKS治理控制台:

创立eks集群

创立EKS集群,输出自定义集群名称:

抉择版本1.24(默认)与集群服务角色(EksClusterRole),下一步:

抉择创立的VPC先默认平安组,对于kubernetes的服务的IP地址范畴能够自定义(不能与VPC网络重合),这里也间接默认了。抉择集群拜访形式看本人需要能够私有OR私有和公有,下一步:

这里配置记录日志先默认不开启了,后续能够批改:

抉择插件,默认就好,下一步

插件版本抉择,默认下一步即可:

点击创立,创立EKS集群:

EKS 集群创立好之后,自身并没有工作节点 Node,下一步咱们增加 NodeGroup。

EKS集群增加Node Group

创立ssh-key密钥

登陆EC2控制台,先创立密钥对,不便ssh登陆治理node节点:

输出密钥对名称,其余默认即可

下载密钥对文件到本地,不便当前登陆服务器

eks集群增加NodeGroup主机组

关上eks治理控制台,点击eks 集群 点开计算标签,增加 节点组

创立节点组:输出节点组名称,抉择后面创立的EKSnoderole的IAM角色,点击下一步:

设置计算和扩大配置这里,只设置了实例类型和磁盘的大小,节点扩缩默认2先不批改:

点击下一步:

指定联网 抉择subset子网,滑动配置对节点的 SSH 拜访权限,开启配置ssh设置:

点击启用:

先默认所有,后续批改平安组,点击下一步

放弃默认,点击创立:

期待node创立就绪:

期待一分钟左右 node就绪:

kubectl 不想装置在集群内了离开在上面独自配置 ,设置计算和扩大配置能够作更多ec2的自定义设置。这里简略演示!

配置Kubelet客户端

启动一个ec2实例

登陆ec2控制台,启动一个ec2新实例:

留神VPC设置,抉择集体创立的VPC并搭建了ACK集群的VPC.不同VPC集群默认不能通信的,最初点击启动实例:

期待实例初始化……

登陆EC2主机,并配置kubelet客户端

  1. 登陆ec2主机

    ssh -i xxx.pem ec2-user@xx.xx.xxx.xx

  2. 装置kubelet客户端

参照:https://docs.aws.amazon.com/zh_cn/eks/latest/userguide/install-kubectl.html

sudo -i
wget --no-check-certificate https://s3.us-west-2.amazonaws.com/amazon-eks/1.24.9/2023-01-11/bin/linux/amd64/kubectl
chmod +x kubelet
cp kubectl /usr/bin/
kubectl version

  1. 配置aws configure

    aws configure
    aws sts get-caller-identity
    

    aws configure 输出 key secret

    aws eks --region cn-north-1 update-kubeconfig --name xxxx
    kubectl get pods 

    呈现以下谬误:

    依据https://github.com/aws/aws-cli/issues/6920更换kubelet版本:

    curl -LO https://storage.googleapis.com/kubernetes-release/release/v1.23.6/bin/linux/amd64/kubectl
    chmod +x kubectl 
    cp kubectl /usr/bin/
    

    如果呈现下图无反馈状态,则能够查看一下平安组,放行一下:

    查看一下平安组…能够先临时放开一下
    最终实现如下:

    内部拜访api server这里能够额定设置,这里默认设置了0.0.0.0/0

    初始化搭建集群实现,后续会挂载csi存储,搭建ingress裸露服务

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理