Amazon EKS(Amazon Elastic Kubernetes Service)是一项托管服务,允许您在 AWS 云上运行 Kubernetes,而无需设置、管理或维护自己的控制平面和节点。
Kubernetes是一种开源技术,可以自动部署、扩展和管理容器,即容器化应用程序。
为了实现高可用性,EKS 跨不同的 AWS 可用区运行和扩展 Kubernetes 控制平面。在 Amazon EKS 中,控制平面实例会根据负载自动扩展,不健康的控制平面实例会被检测和替换,自动版本升级和修补也会自动完成。
Amazon EKS 可以与其他 AWS 服务集成以预置各种设施,例如,工作节点可由 AWS EC2 实例、用于容器映像的 ECR(弹性容器注册表)、用于隔离资源的 VPC(虚拟私有云)预置。
Amazon EKS 集群由两个重要组件组成。
Amazon EKS 控制平面由执行 Kubernetes 软件(如etcd)和Kubernetes API 服务器的节点组成。控制平面在 AWS 账户上运行,并且可以通过集群的 Amazon EKS 终端节点访问 Kubernetes API。每个 Amazon EKS 集群控制平面都有自己的一组 Amazon EC2 实例,并且是单租户且唯一的。
EKS 控制平面可跨多个可用区使用;如果任何控制平面出现问题,EKS 会自动识别并替换那些不健康的控制平面节点,并提供按需、零停机时间更新和修补。
Amazon EKS 节点在您的 AWS 账户中运行,并通过 API 服务器终端节点和为您的集群颁发的证书文件连接到集群的控制平面。应创建节点组以配置 EKS 集群中的节点。
一个节点组由一个或多个节点组成,在 Amazon EC2 Auto Scaling 组中,节点组由一个或多个 Amazon EC2 实例组成,并且所有实例必须是具有相同 Amazon 系统映像 (AMI) 的相同类型,而且,节点组应该使用相同的 IAM 角色。
您可以通过两种方式创建 EKS 集群。
考虑 Amazon EKS 的最简单方法是 AWS Cloud 的“Kubernetes 即服务”。
如上所述,Amazon EKS 由两个主要组件组成;正在构建 EKS 集群的 EKS 控制平面/主节点和数据平面/工作节点。这两架飞机都在自己的虚拟私有云 (VPC) 中运行。
VPC 中的节点负责运行容器镜像或工作负载。AWS 还提供连接这些组件并形成 Kubernetes 集群所需的网络基础设施。
可以在 Amazon EKS 集群中的任何自管理节点、Amazon EKS 控制的节点组和 AWS Fargate 组合上调度 Pod。
Amazon EKS 节点在您的账户下运行,并使用集群的 API 服务器终端节点与控制平面通信。
以下详细信息和图表说明了 EKS 集群中的应用程序部署。
您可以在 AWS 管理控制台或使用 AWS CLI 或 AWS 开发工具包之一创建集群
您可以从 AWS Fargate 或 Amazon EC2 实例启动计算节点。为了设置工作节点以执行应用程序容器,EKS 提供了以下选项。
Kubernetes 通过一个名为 Kubectl 的命令行工具与其集群进行通信。您需要在您的机器上安装 kubectl 并对其进行配置以连接 Amazon EKS 并运行应用程序。
创建完整的 EKS 集群后,您必须部署基于 Web 的管理界面的 Kubernetes 仪表板来管理和监控您的 EKS 集群。
在这里,我列出了 Amazon EKS 的一些重要功能。
Amazon EKS 提供具有自动可扩展性选项的高可用性控制平面。由于 EKS 在三个可用区中运行,它会自动检测运行状况不佳的控制平面并将其替换。
AWS Kubernetes 控制器 (ACK) 允许您直接从 Kubernetes 环境管理 AWS 服务。使用 AWS 资源,ACK 使构建可扩展且高度可用的 Kubernetes 应用程序变得简单。
它是一个命令行工具,可以安装在您的 Windows 或 Linux 机器上,以创建、运行和管理您的 EKS 集群。它简化了集群管理和操作。
Amazon EKS 与各种服务和技术集成以提供高度安全的环境。例如,IAM 支持细粒度的访问控制,而 VPC 隔离并保护您的 EKS 集群免受第三方访问。
Amazon EKS 支持使用 Application Load Balancer,它非常适合 HTTP 和 HTTPS 流量的高级负载均衡。此外,EKS 还利用了网络负载均衡器和经典负载均衡器。
为了利用无服务器计算执行您的 Kubernetes 应用程序,EKS 支持 AWS Fargate。Fargate 消除了构建和维护服务器的需要。它允许您为每个应用程序选择和支付资源。
“AWS Outposts”上的 EKS 可用于以最小的本地系统延迟执行容器化应用程序。AWS Outposts 是一种完全托管的解决方案,可将任何连接的位置与 AWS 基础设施、服务、API 和工具连接起来。您可以像使用 EKS on Outposts 在云中管理容器一样简单地管理本地容器。
Amazon EKS 支持常见的 Kubernetes 插件,并且 EKS 与 Kubernetes 社区工具高度兼容。
Kubernetes 的版本升级是即时执行的,无需构建新集群或将应用程序转移到新集群。
对于您构建的每个 Amazon EKS 集群,您每小时支付 0.10 美元。通过利用 Kubernetes 命名空间和 IAM 安全设置,您可以在单个 EKS 集群上运行多个应用程序。
在 AWS 上,您可以使用 Amazon Elastic Compute Cloud (Amazon EC2) 或 AWS Fargate 来运行 EKS,而在本地,您可以使用 AWS Outposts。因此,将计算价格。
AWS 提供计算器来估算价格。您可以使用以下链接估算 EKS 集群的价格。
有关 AWS EC2 实例定价模型的更多详细信息,请参阅以下文章,因为您可以将 EC2 实例用于 EKS 工作程序节点。
如果您使用 AWS Fargate,价格取决于从您开始下载容器映像到 Amazon EKS pod 完成所消耗的 vCPU 和 RAM 量,时间计算将四舍五入到最接近的秒数。即使您使用 10 秒,也会收取一分钟的最低费用。
使用此链接估算您的 AWS Fargate 定价。在这里您需要填写操作系统型号、POD 数量、vCPU 数量、内存等详细信息。
在 AWS Outposts 上,您可以构建和运行您的 Amazon EKS 节点。AWS Outposts 允许本地设施使用原生 AWS 服务、基础设施和运营模式。
AWS Outposts 上的 Amazon EKS 的成本很简单,与部署在 AWS 中的 Amazon EKS 集群的成本相同,您每小时支付 0.10 美元。
您可以根据需要购买不同类型的 AWS Outposts 机架配置,机架配置是 EC2 实例类型、EBS gp2 Volume 和 S3 on Outposts 的组合。请参阅此链接以估算您的 AWS Outposts 定价模型。
在本文中,我们了解了 Amazon EKS 的基本概念、其工作和定价模型及其重要功能。我们将在下一篇文章中看到 Amazon EKS 集群构建过程。