Amazon EKS(弹性 Kubernetes 服务)简介

亚马逊 Cloud (AWS) 提供了许多有助于容器编排的服务,包括 Amazon Elastic Container Service (ECS)、Amazon Elastic Kubernetes Service (EKS)、Amazon LightSail 和 Amazon Elastic Container Registry (ECR)。 在本文中,我们将了解 Amazon EKS,它是 AWS 云中的 Kubernetes。

1. 什么是 Amazon EKS?

Amazon EKS(Amazon Elastic Kubernetes Service)是一项托管服务,允许您在 AWS 上运行 Kubernetes Cloud 无需设置、管理或维护您自己的控制平面和节点。

Kubernetes 是一种开源技术,可以自动部署、扩展和管理容器,即容器化应用程序。

为了实现高可用性,EKS 跨不同的 AWS 可用区运行和扩展 Kubernetes 控制平面。 在 Amazon EKS 中,控制平面实例会根据负载自动扩展,不健康的控制平面实例会被检测和替换,自动版本升级和修补也会自动完成。

Amazon EKS 可以与其他 AWS 服务集成以预置各种设施。 为了 example,工作节点可由 AWS EC2 实例、容器映像的 ECR(弹性容器注册表)、VPC(虚拟私有 Cloud) 用于隔离资源。

2. Amazon EKS 集群组件

Amazon EKS 集群由两个重要组件组成。

  1. EKS 控制平面
  2. EKS 节点

2.1. EKS 控制计划

Amazon EKS 控制平面由执行 Kubernetes 软件的节点组成,例如 Kubernetes API 服务器. 控制平面在 AWS 账户上运行,并且可以通过集群的 Amazon EKS 终端节点访问 Kubernetes API。 每个 Amazon EKS 集群控制平面都有自己的一组 Amazon EC2 实例,并且是单租户且唯一的。

EKS 控制平面可跨多个可用区使用; 如果任何控制平面出现问题,EKS 会自动识别并替换那些不健康的控制平面节点,并提供按需、零停机时间更新和修补。

2.2. EKS 节点

Amazon EKS 节点在您的 AWS 账户中运行,并通过 API 服务器终端节点和为您的集群颁发的证书文件连接到集群的控制平面。 应创建节点组以配置 EKS 集群中的节点。

一个节点组由一个或多个节点组成。 在 Amazon EC2 Auto Scaling 组中,节点组由一个或多个 Amazon EC2 实例组成,并且所有实例必须是具有相同 Amazon 系统映像 (AMI) 的相同类型。 而且,节点组应该使用相同的 IAM 角色。

三、EKS集群部署方式

您可以通过两种方式创建 EKS 集群。

  • 亚马逊 EKS – eksctl: 它是一个用于构建和维护 Kubernetes 集群的简单命令行实用程序。 AWS 和 Weaveworks 合作 eksctl, 一种工具,可自动执行设置 EKS 集群的大部分过程。 Eksctl 还支持通过配置文件配置资源,这是更可取的方法,因为它允许您对 EKS 集群配置进行版本控制。
  • AWS 管理控制台和 AWS CLI: 这是部署 Amazon EKS 集群的最简单方法,您可以在其中启动 EKS 作为 AWS 中的服务,并通过在 AWS 控制台本身中创建节点组来添加节点。

4. Amazon EKS 的工作原理

考虑 Amazon EKS 的最简单方法是 AWS 的“Kubernetes 即服务” Cloud.

如上所述,Amazon EKS 由两个主要组件组成; 正在构建 EKS 集群的 EKS 控制平面/主节点和数据平面/工作节点。 这两架飞机都在自己的虚拟私有云 (VPC) 中运行。

VPC 中的节点负责运行容器镜像或工作负载。 AWS 还提供连接这些组件并形成 Kubernetes 集群所需的网络基础设施。

可以在 Amazon EKS 集群中的任何自管理节点、Amazon EKS 控制的节点组和 AWS Fargate 组合上调度 Pod。

Amazon EKS 节点在您的账户下运行,并使用集群的 API 服务器终端节点与控制平面通信。

以下详细信息和图表说明了 EKS 集群中的应用程序部署。

预置 Amazon EKS 集群 – 预置主机

您可以在 AWS 管理控制台或使用 AWS CLI 或 AWS 开发工具包之一创建集群

部署 Compute – Provisioning Worker

您可以从 AWS Fargate 或 Amazon EC2 实例启动计算节点。 为了设置工作节点以执行应用程序容器,EKS 提供了以下选项。

  • 自我管理: 用户负责预置链接到集群的 EC2 实例。 在设置工作节点时,这为您提供了更多选择。
  • 管理: 对于 Amazon EKS Kubernetes 集群,托管节点组可自动执行节点(Amazon EC2 实例)的预置和生命周期管理。
  • AWS 法门: Fargate 是 AWS 托管的无服务器计算引擎,允许您执行容器应用程序而无需维护服务器。

连接 Amazon EKS 集群

Kubernetes 通过一个名为 Kubectl 的命令行工具与其集群进行通信。 您需要在您的机器上安装 kubectl 并对其进行配置以连接 Amazon EKS 并运行应用程序。

监控 Kubernetes 应用

创建完整的 EKS 集群后,您必须部署 Kubernetes 仪表板,它是基于 Web 的管理界面来管理和监控您的 EKS 集群。

使用 EKS 在 Cloud

5. 亚马逊 EKS 功能

在这里,我列出了 Amazon EKS 的一些重要功能。

托管控制平面

Amazon EKS 提供具有自动可扩展性选项的高可用性控制平面。 由于 EKS 在三个可用区中运行,它会自动检测运行状况不佳的控制平面并将其替换。

服务集成

AWS Kubernetes 控制器 (ACK) 允许您直接从 Kubernetes 环境管理 AWS 服务。 使用 AWS 资源,ACK 使构建可扩展且高度可用的 Kubernetes 应用程序变得简单。

Eksctl – 单行管理

它是一个命令行工具,可以安装在您的 Windows 或 Linux 机器上,以创建、运行和管理您的 EKS 集群。 它简化了集群管理和操作。

安全

Amazon EKS 与各种服务和技术集成以提供高度安全的环境。 为了 exampleIAM 支持细粒度的访问控制,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 的版本升级是即时执行的,无需构建新集群或将应用程序转移到新集群。

6.亚马逊 EKS 定价

对于您构建的每个 Amazon EKS 集群,您需要付费 每小时 0.10 美元. 通过利用 Kubernetes 命名空间和 IAM 安全设置,您可以在单个 EKS 集群上运行多个应用程序。

在 AWS 上,您可以使用 Amazon Elastic Compute Cloud (Amazon EC2) 或 AWS Fargate 来运行 EKS,在本地,您可以使用 AWS Outposts。 因此,将计算价格。

AWS 提供 计算器 估计价格。 您可以使用以下链接估算 EKS 集群的价格。

AWS 定价计算器

有关 AWS EC2 实例定价模型的更多详细信息,请参阅以下文章,因为您可以将 EC2 实例用于 EKS 工作程序节点。

  • 亚马逊网络服务 (AWS) 简介

如果您使用 AWS Fargate,价格取决于从您开始下载容器映像到 Amazon EKS pod 完成所消耗的 vCPU 和 RAM 量,时间计算将四舍五入到最接近的秒数。 将申请最低收费 等一下 即使您使用 10 秒。

采用 这个链接 估算您的 AWS Fargate 定价。 在这里您需要填写操作系统型号、POD 数量、vCPU 数量、内存等详细信息。

计算 AWS Fargate 定价计算 AWS Fargate 定价

在 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 集群构建过程。

阅读下一篇:

  • 如何使用 Amazon EKS 在 AWS 上部署 Kubernetes 集群

资源: