Amazon Elastic Kubernetes Service - AWS 上的部署选项概述

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Elastic Kubernetes Service

Amazon Elastic Kubernetes Service(Amazon EKS)是一项完全托管经过认证的 Kubernetes 兼容服务,可简化在 AWS 上构建、保护、操作和维护 Kubernetes 集群的流程。Amazon EKS 与核心 AWS 服务(例如 CloudWatch Auto Scaling Groups 和 IAM)集成,可为容器化应用程序的监控、扩展和负载平衡提供无缝体验。

Amazon EKS 为 Kubernetes 工作负载提供了一个可扩展、高度可用的控制平面。当你在 Amazon EKS 上运行应用程序时,就像使用 Amazon ECS 一样,你可以选择使用亚马逊 EC2 实例或与之一起为容器提供底层计算能力 AWS Fargate。

Amazon VPC Lattice 是一项完全托管的应用程序联网服务,直接内置在 AWS 网络基础设施中,您可以使用它来连接、保护和监控跨多个账户和虚拟私有云的服务(VPCs)。借助 Amazon EKS,您可以通过使用 AWS Gateway API 控制器(Kubernetes Gateway API 的实现)来利用 VPC Lattice。使用 VPC Lattice,您可以以简单一致的方式设置具有标准 Kubernetes 语义的跨集群连接。

您可以将 Amazon EKS 与以下任何部署选项一起使用:

  • Amazon EKS Distro:Amazon EKS Distro 是 Amazon EKS 在云中部署的相同开源 Kubernetes 软件和依赖项的发行版。Amazon EKS Distro 遵循与 Amazon EKS 相同的 Kubernetes 版本发布周期,并作为开源项目项目提供。要了解更多信息,请参阅 Amazon EKS Distro

  • Amazon EK S 开启 AWS Outposts— 在您的本地设施中 AWS Outposts 启用原生 AWS 服务、基础设施和运营模式。在 Amazon EKS 上 AWS Outposts,您可以选择运行扩展集群或本地集群。对于扩展集群,Kubernetes 控制平面在中运行,节点在 AWS 区域 上面运行。 AWS Outposts对于本地集群,整个 Kubernetes 集群都可以在本地运行 AWS Outposts,包括 Kubernetes 控制平面和节点。

  • Amazon EKS Anywhere:Amazon EKS Anywhere 是 Amazon EKS 的部署选项,使您能够在本地轻松创建和操作 Kubernetes 集群。Amazon EKS 和 Amazon EKS Anywhere 都是基于 Amazon EKS Distro 构建的。要了解有关亚马逊 EKS Anywhere 的更多信息,请参阅使用亚马逊 EKS Anywhere 运行混合容器工作负载、亚马逊 E KS Anywhere 概述以及亚马逊 EKS Anywhere 与亚马逊 EKS 的比较

在选择用于 Kubernetes 集群的部署选项时,请考虑以下因素:

表 5:Kubernetes 部署功能

功能 Amazon EKS 亚马逊 EKS 开启 AWS Outposts Amazon EKS Anywhere Amazon EKS Distro
硬件 AWS 提供的 AWS 提供的 由您提供 由您提供
部署位置 AWS 云 您的数据中心 您的数据中心 您的数据中心
Kubernetes 控制面板位置 AWS 云 AWS 云 或者你的数据中心 您的数据中心 您的数据中心
Kubernetes 数据层面位置 AWS 云 您的数据中心 您的数据中心 您的数据中心
支持 AWS 支持 AWS 支持 AWS 支持 OSS 社群支持

表 6:亚马逊 EKS 部署功能

能力 描述
供应

Amazon EKS 会预配置某些资源来支持容器化应用程序:

  • 负载均衡器(如果需要)

  • 计算资源或工作人员(亚马逊 EKS 支持 Windows 和 Linux)

  • 应用程序容器实例或 p od

有关 Amazon EKS 集群配置的更多详细信息,请参阅 Amazon EKS 入门

配置

如果您使用 Amazon EC2 实例提供计算能力,Amazon EKS 支持自定义计算资源(工作程序)。Amazon EKS 还支持自定义应用程序容器 (pod) 的运行时条件。

有关更多详细信息,请参阅工作节点Fargate Pod 配置文档。

部署 Amazon EKS 支持与 Kubernetes 相同的部署策略。有关更多详细信息,请参阅编写 Kubernetes 部署规范-> 策略
扩展 Amazon EKS 使用 Kubernetes 集群自动扩缩器扩展工作人员,使用 Kubernetes 水平容器自动扩缩器和 Kubernetes 垂直容器自动扩缩器扩展 pod。Amazon EKS 还支持 Karpenter,这是一款开源、灵活、高性能的 Kubernetes 集群自动扩缩器,可根据不断变化的应用程序负载快速启动大小合适的计算资源,从而帮助提高应用程序可用性和集群效率。
监控

Amazon EKS 控制平面日志直接向 CloudWatch 日志提供审计和诊断信息。Amazon EKS 控制平面还与集成 AWS CloudTrail ,用于记录在 Amazon EKS 中执行的操作。

有关更多详细信息,请参阅记录和监控 Amazon EKS

Amazon EKS 允许组织利用开源 Kubernetes 工具和插件,对于使用现有 Kubernetes 环境迁移到 AWS 的组织来说,这可能是一个不错的选择。下图说明了使用 Amazon EKS 管理常规容器化应用程序的情况。

Amazon EKS architecture with control plane, data plane, and three availability zones.
Amazon EKS use case

Amazon EKS Anywhere

Amazon EKS Anywh ere 允许您在自己的基础设施上创建和运行 Kubernetes 集群。Amazon EKS Anywhere 建立在亚马逊 EKS Distro 的优势之上,提供最新且经过补丁的开源软件,因此您可以拥有比自我管理的 Kubernetes 产品更可靠的本地 Kubernetes 环境。

Amazon EKS Anywhere 在本地为选定的提供商创建一个 Kubernetes 集群。支持的提供商包括 Bare Metal(通过 Tinkerbell)和 vSp CloudStack here。要管理该集群,您可以从 Ubuntu 或 Mac 管理计算机上运行集群创建和删除命令。