文章目录
- 前言 | 亚马逊云科技 re:Invent前沿资讯
- 一、介绍篇🎨
- 什么是AWS 云计算
- 什么是Amazon EKS
- 二、部署篇🔨
- 1、创建集群VPC
- 2、创建集群子网
- 3、创建IGW网关
- 4、创建路由表与子网绑定
- 5、EKS集群创建
- 6、创建kubeconfig配置文件
- 7、添加计算节点组
- 8、查看EKS各个节点运行状态
- 9、删除集群
- 10、角色创建(附)
- 10.1 集群服务角色创建
- 10.2 集群节点组创建
- 三、参考链接🔗
前言 | 亚马逊云科技 re:Invent前沿资讯
凌云驭势,重塑未来,与开发者一起构建未来
亚马逊云科技 re:Invent 全球大会是全球云计算引领者——亚马逊云科技(Amazon Web Services )举办的年度盛会,首届大会始于2012年。
在Amazon.com 副总裁兼首席技术官 Dr. Werner Vogels 主题演讲中, Dr. Werner Vogels通过订单流程操作的例子引入他的演讲,阐述了同步性与异步性的关系。讲述了松散耦合系统带来的好处。突出说明了事件驱动型架构的发展趋势和重要意义。以及谈到了数字世界的基础是操作系统,设备与操作系统之间的交互式基于终端的事件驱动系统。所以,操作系统底层和进程进度式完全异步的。等等。
🔼 图 Amazon.com副总裁兼首席技术官 Dr. Werner Vogels 主题演讲
在亚马逊云科技首席执行官 Adam Selipsky 主题演讲中,我知道了亚马逊云科技reLInvent大会已经成功举办过11次。Adam Selipsky在演讲中,讲述了创新信息共享、创新产品共享正在推动着科技技术高速发展,资本市场的发展带来了云计算的发展,企业上云用云的成本大幅度降低,效能产能明显提升。同时也谈到了,业务决策流程的应用中心是几乎每个组织数字化转型的基石,但处理数据很棘手。其中,数据和数字化在能源转型中起着关键作用,以及亚马逊云科技数据的安全性是如何保证客户的数据安全的(使用正确的工具确保它们安全),推出了
Container runtime threat detection for GuardDuty
的产品。还谈到了亚马逊云科技的第三代处理器Graviton3
,基于Graviton3的实例比Graviton2快25%,并且与同类的EC2实例相比可减少能源使用高达60%。以及高性能计算HPC、connect三项新功能等等相关技术内容。“云正在消除限制,重新构想业务挑战。” —— Adam Selipsky 🔼 图 亚马逊云科技首席执行官 Adam Selipsky 主题演讲中
接下来,笔者将利用
Amazon Elastic Kubernetes Service (Amazon EKS)
的一项完全托管kubernetes服务,从产品介绍到安装部署kubernetes集群,进行详细演示说明。
一、介绍篇🎨
什么是AWS 云计算
Amazon Web Services (AWS) 是全球最全面、应用最广泛的云平台,从全球数据中心提供超过 200 项功能齐全的服务。数百万客户(包括增长最快速的初创公司、最大型企业和主要的政府机构)都在使用 AWS 来降低成本、提高敏捷性并加速创新。
什么是Amazon EKS
Amazon Elastic Kubernetes Service (Amazon EKS)是一项完全托管的 Kubernetes 服务。Intel、Snap、Intuit、GoDaddy 和 Autodesk 等客户均依赖 EKS 运行其最敏感的任务关键型应用程序,因为它具有安全性、可靠性和可扩展性。
二、部署篇🔨
基于EKS部署 Kubernetes 集群
Amazon EKS 和 Amazon EKS Distro 现在支持 Kubernetes 1.24 版本。本实验将使用 Kubernetes 1.23 版本进行部署。
1、创建集群VPC
VPC介绍:通过 Amazon Virtual Private Cloud (Amazon VPC),可以在已定义的虚拟网络中启动 AWS 资源。这个虚拟网络与在数据中心运行的传统网络极其相似,并具有能够使用 AWS 的可扩展基础设施的优势。
1.1 切换至
VPC控制面板
,点击“创建VPC”。
1.2 VPC设置。选择仅VPC,设置Name标签为
k8s-vpc
,IPv4 CIDR为172.19.0.0/24
。
1.3 VPC创建完成。结果如下图所示。
2、创建集群子网
子网介绍:子网是 VPC 中的 IP 地址范围。在创建 VPC 之后,可以在每个可用区中添加一个或多个子网。
2.1 创建子网。选择“子网”,点击“子网创建”。
2.2 子网设置。选择刚刚创建好的VPC,设置三个子网。如下图所示。子网网段分别设置如下:
172.19.1.0/24 172.19.2.0/24 172.19.3.0/24
2.3 创建三个子网完成。如图所示。
3、创建IGW网关
IGW网关介绍:互联网网关是一种横向扩展、支持冗余且高度可用的 VPC 组件,可实现 VPC 与互联网之间的通信。
要使用互联网网关,将其附加到VPC 并在适用于互联网可路由 IPv4 或 IPv6 流量的子网路由表中将其指定为目标。互联网网关为已经分配了公有 IPv4 地址的实例执行网络地址转换(NAT)。
3.1 创建互联网网关。点击"创建互联网网关"。
3.2 互联网网关设置。设置Name标签为“k8s-igw”,点击“创建互联网网关”。
3.3 将IGW附加到VPC。
3.4 选择可用的VPC,点击“连接互联网网关”。
3.5 互联网网关附加VPC成功。
4、创建路由表与子网绑定
路由表介绍:路由表包含一组称为路由的规则,用于确定来自子网或网关的网络流量定向到何处。
4.1 创建路由表。选择“路由表”,点击“创建路由表”。
4.2 路由表设置。填写路由表名称“k8s-gw”,选择要用于此路由表的VPC。
4.3 创建路由表成功后,选择“路由”,点击“编辑路由”。
4.4 编辑路由(仅测试),点击“保存更改”。
4.5 子网关联。
在路由表选项栏中,选择刚刚创建的路由表,选择“子网关联”,点击“编辑子网关联”。
4.6 关联以下三个可用子网。点击”保存关联“。
4.7 子网关联成功。
至此,网络部分设置完成,开始部署EKS。
5、EKS集群创建
5.1 搜索框搜索“EKS”。
5.2 点击 “添加集群” —>“创建”。
5.3 第1步:配置集群
注意:集群服务角色需要提前创建好。也可以现在去创建,点击刷新即可显示出来。
集群服务角色创建请参考:
角色创建(附)
一小节
5.4 第2步:指定联网。
5.5 第3步:配置日志记录(保持默认,禁用)
5.6 第4步:选择插件。默认即可。
5.7 第5步:配置选定的插件设置。
5.8 第6步:查看和创建。确认信息无误后,点击“创建”。
5.9 等待集群创建完成。状态显示“正在创建”,需要等待一会,预计10分钟。
5.10 集群创建完成,状态显示“活跃”。
6、创建kubeconfig配置文件
[cloudshell-user@ip-10-6-6-158 ~]$ aws --version
aws-cli/2.9.5 Python/3.9.11 Linux/4.14.296-222.539.amzn2.x86_64 exec-env/CloudShell exe/x86_64.amzn.2 prompt/off
aws eks --region ap-northeast-1 update-kubeconfig --name xybdiy-k8s
7、添加计算节点组
点击“添加节点组”。
第1步:配置节点组。
节点组是向Amazon EKS集群提供计算容量的一组EC2实例。可以向集群添加多个节点组。
注意:节点组角色需要提前创建好。也可以现在去创建,点击刷新即可显示出来。
节点组角色创建请参考:
角色创建(附)
一小节
第2步:设置计算和扩展配置。
第3步:指定联网。
第4步:查看和创建。
等待
k8s-xybdiy-nodegroup
节点组创建完成。
节点创建完成,状态显示“活动”。
进入
xybdiy-k8s
集群,点击“计算”,查看计算节点已就绪
。
点击其中一个计算节点,查看详细信息。如下图所示。
xybdiy-k8s
集群概览详细信息。
k8s-xybdiy
集群资源节点信息查看。
k8s-xybdiy
集群联网信息查看。
k8s-xybdiy
集群插件信息查询。
xybdiy-k8s
集群
至此,基于Amazon EKS集群搭建的xybdiy-k8s
集群部署完成。
8、查看EKS各个节点运行状态
开启AWS CloudShell查看EKS各个节点运行状态。
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
ip-172-31-0-88.ap-northeast-1.compute.internal Ready <none> 22m v1.23.13-eks-fb459a0
ip-172-31-24-208.ap-northeast-1.compute.internal Ready <none> 22m v1.23.13-eks-fb459a0
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl get pods
No resources found in default namespace.
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl get pod -n kube-system
NAME READY STATUS RESTARTS AGE
aws-node-877nw 1/1 Running 0 22m
aws-node-mfvvx 1/1 Running 0 22m
coredns-69cfddc4b4-dtf8z 1/1 Running 0 67m
coredns-69cfddc4b4-glks2 1/1 Running 0 67m
kube-proxy-7nnks 1/1 Running 0 22m
kube-proxy-fbcfc 1/1 Running 0 22m
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl get cs
Warning: v1 ComponentStatus is deprecated in v1.19+
NAME STATUS MESSAGE ERROR
etcd-1 Healthy {"health":"true","reason":""}
controller-manager Healthy ok
etcd-0 Healthy {"health":"true","reason":""}
scheduler Healthy ok
etcd-2 Healthy {"health":"true","reason":""}
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl version --short
Client Version: v1.23.7-eks-4721010
Server Version: v1.23.13-eks-fb459a0
[cloudshell-user@ip-10-6-18-35 ~]$ kubectl get svc -n kube-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.100.0.10 <none> 53/UDP,53/TCP 68m
9、删除集群
9.1 首先,删除节点组。
9.2 删除
xybdiy-k8s
集群。
10、角色创建(附)
在 IAM 控制台中创建 Amazon EKS 集群角色
- 通过以下网址打开 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
。- 对于 Description(说明),请输入描述性文本,例如
Amazon EKS - Cluster role
。- 选择 Create role(创建角色)。
参考链接:Amazon EKS 集群 IAM 角色 - Amazon EKS
10.1 集群服务角色创建
点击“创建角色”。
添加权限。如图所示。
添加权限策略。
命令、查看和创建。
点击“创建集群”。
创建角色完成。
10.2 集群节点组创建
选择“EC2”。
添加权限策略。如下图所示。
集群节点组角色创建完成。
三、参考链接🔗
🔴Amazon EKS Kubernetes托管_kubernetes集群管理服务-AWS云服务
🟡Amazon Elastic Kubernetes Service Documentation
🟢什么是 Amazon EKS? - Amazon EKS
🔵2022亚马逊云科技re:Invent全球大会 - 官方网站
🟣Monitoring using Prometheus and Grafana :: Amazon EKS Workshop
🟠自主管理的容器 – Amazon ECS Anywhere – Amazon Web Services
🟤Amazon Elastic Kubernetes Service 文档