背景:
海内服务合作方服务器部署在新加坡 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 控制台
点击 Service–All 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 客户端
-
登陆 ec2 主机
ssh -i xxx.pem ec2-user@xx.xx.xxx.xx
- 装置 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
-
配置 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 裸露服务