Amazon EKS 功能

概览

Amazon Elastic Kubernetes Service(Amazon EKS)是一项托管 Kubernetes 服务,让您能够轻松在 AWS 上和本地运行 Kubernetes。Kubernetes 是一种开源系统,用于自动化部署、扩展和管理容器化应用程序。Amazon EKS 经认证与 Kubernetes 一致,因此运行于上游 Kubernetes 的现有应用程序可与 Amazon EKS 兼容。

Amazon EKS 可自动管理负责安排容器、管理应用程序可用性、存储集群数据和其他关键任务的 Kubernetes 控制平面节点的可用性和可扩展性。

Amazon EKS 可让您在 Amazon Elastic Compute Cloud (Amazon EC2) 和 AWS Fargate 上运行 Kubernetes 应用程序。借助 Amazon EKS,您可以利用 AWS 基础设施的完整性能、规模、可靠性和可用性,以及与各种 AWS 联网和安全服务的集成,例如用于负载分配的 Application Load Balancer (ALB)、与基于角色的访问控制 (RBAC) 集成的 AWS Identity and Access Management (IAM) 和用于 Pod 联网的 AWS Virtual Private Cloud (VPC) 支持。

电脑数据的照片

托管的 Kubernetes 集群

Amazon EKS 提供的 Kubernetes 控制平面不仅可扩展且高度可用,还能跨多个 AWS 可用区 (AZ) 运行。Amazon EKS 可自动管理 Kubernetes API 服务器和 etcd 持久层的可用性和可扩展性。Amazon EKS 可跨三个 AZ 运行 Kubernetes 控制平面以确保高可用性,并且可自动检测和替换运行状况不佳的控制平面节点。

AWS Controllers for Kubernetes (ACK) 可让您直接从 Kubernetes 环境内部对 AWS 服务进行管理控制。ACK 帮助您利用 AWS 服务轻松构建可扩展且高度可用的 Kubernetes 应用程序。

EKS 提供适用于 Kubernetes 集群的集成式控制台。集群操作人员和应用程序开发人员可将 EKS 用作单一平台,来组织、可视化您在 Amazon EKS 中运行的 Kubernetes 应用程序并对其进行故障排除。EKS 控制台由 AWS 托管,并且可自动用于所有 EKS 集群。

EKS 附加组件是常用的操作软件,可扩展 Kubernetes 的操作功能。您可以使用 EKS 来安装此附加组件软件并保持最新。启动 Amazon EKS 集群时,选择想要在集群中运行的附加组件,包括用于可观测性、联网、自动扩展和 AWS 服务集成的 Kubernetes 工具。

Amazon EKS 可帮助您通过单个命令即可为集群创建、更新、扩展或终止节点。这些节点还能利用 Amazon EC2 竞价型实例来减少成本。 托管节点组使用 AWS 账户中经 EKS 优化或自定义的最新亚马逊云机器镜像(AMI)来运行 Amazon EC2 实例,同时更新和终止会以适当速度耗尽的节点,以确保应用程序保持可用。

混合部署

您可以使用 AWS Outposts 上的 EKS 来运行对本地系统的延迟要求特别低的容器化应用程序。AWS Outposts 是一项完全托管服务,可将 AWS 基础设施、AWS 服务、API 和工具扩展到几乎所有连接的站点。使用 EKS on Outposts,您可以像管理云中的容器一样轻松地管理本地容器。

您可以将 AWS Local ZonesAWS Wavelength 中运行的节点附加到 EKS,由此,您可对 AWS 托管的边缘基础设施有更多选择。

Amazon EKS Distro 软件包包含 AWS 上的 Amazon EKS 所用的相同开源 Kubernetes 软件发行版本,以便在您自己的本地基础设施上使用。利用您自己的工具或利用 Amazon EKS Anywhere 管理 EKS Distro 集群。

使用 Amazon EKS Anywhere,您可以在本地轻松创建及操作 Kubernetes 集群(利用 Amazon EKS Distro 中的软件构建),包括在您自己的虚拟机(VM)和裸机服务器上。EKS Anywhere 为您免去了构建和支持自己的工具来管理 Kubernetes 集群的烦恼。EKS Anywhere 提供自动化工具来简化在您裸机、VMware vSphere 和云虚拟机等基础设施上创建、管理和操作集群的过程。这还包括具有默认日志记录、监控、网络和存储配置的云虚拟机。EKS Anywhere 为您提供了在生产环境中运行 Kubernetes 所需的额外工具和组件,如集群安装和生命周期管理、可观测性、集群备份和策略管理。

使用 eksctl 启动节点和单行管理

使用 eksctl 命令行工具在几分钟内启动并运行 Amazon EKS。只需运行“eksctl create cluster”命令即可创建您的 EKS 集群。您可以使用 eksctl 来简化集群管理和操作,包括管理节点和附加组件。

Amazon EKS 支持 Windows 工作节点和 Windows 容器计划。EKS 支持 Windows 工作节点与 Linux 工作节点一起运行,从而使您可以使用同一集群来管理任一操作系统上的应用程序。

AWS Graviton2 处理器为基于 ARM 的 EC2 实例提供支持,从而实现性能和功能的巨大飞跃,同时节省大量成本。提高应用程序成本效率是运行容器的主要目标。二者结合,便可带来理想的性价比。例如,工作负载测试显示,与其基于 x86 的 M5、C5 和 R5 系列的同类产品相比,基于 Graviton2 处理器的实例类型的性价比提升高达 40%。在两项服务同时可用的区域内,AWS Graviton2 上的 Amazon EKS 通常可用。

网络和安全性

借助 AWS 服务和技术合作伙伴解决方案的高级功能和集成,Amazon EKS 使您能够轻松为 Kubernetes 群集提供安全性。例如,IAM 提供精细访问控制,Amazon VPC 将您的 Kubernetes 群集与其他客户隔离。

Amazon Elastic Kubernetes Service(EKS)支持 IPv6,使客户能够在 Kubernetes 上扩展容器化应用程序,远远超出私有 IPv4 地址空间的限制。借助 EKS 对 IPv6 的支持,只需为 Pod 分配一个可全局路由的 IPv6 地址,这使您能够扩展集群中的应用程序,而不会占用有限的私有 IPv4 地址空间。该可全局路由的 IPv6 地址可用于直接与 Amazon VPC、本地网络或公有互联网中的任何 IPv6 端点通信。此外,EKS 配置联网,这样 Pod 仍然可以与集群外基于 IPv4 的端点通信,使您能够使用 Kubernetes 充分利用 IPv6 的优势,而不需要将整个组织中部署的所有相关服务迁移到 IPv6。

EKS Pod Identity 简化了客户在 EKS 集群上设置应用程序以访问 AWS 服务所需的工作。EKS 集群管理员可以简化工作流程,获取对 Kubernetes 应用程序进行身份验证以访问 S3 存储桶、DynamoDB 表等 AWS 资源所需的 IAM 凭证。借助 EKS Pod Identity,可在多个集群中轻松使用 IAM 角色,并通过支持在 IAM 角色之间重复使用策略来简化 IAM 策略管理。

AWS Cloud Map 是一项云资源发现服务。 借助 Cloud Map,您可以为动态变化的应用程序资源定义自定义名称,并维护这些动态变化的应用程序资源的更新位置。这将提高应用程序可用性,因为您的 Web 服务始终会发现最新的资源位置。Cloud Map 可与 external-dns 搭配使用,external-dns 是一个开源 Kubernetes 连接器,可以在 Kubernetes 服务启动时自动将内部服务位置传播到 Cloud Map 服务注册表,并在终止时将其删除。基于 Kubernetes 的服务可通过 Cloud Map 发现,Cloud Map 为所有容器工作负载提供统一的服务注册表。

服务网格可以标准化应用程序中的每种微服务的通信方式,从而轻松地构建和运行复杂的微服务应用程序。 AWS App Mesh 可以配置应用程序,以实现端到端的可见性和高可用性。您可以使用适用于 Kubernetes 的 AWS App Mesh 控制器来创建连接到网格的新服务、定义流量路由并配置诸如加密等安全功能。此外,App Mesh 还允许您在 AWS Cloud Map 中自动注册 Kubernetes pod 以发现服务。App Mesh 将指标、日志和跟踪导出至在提供的 Envoy 引导配置中指定的终端节点。App Mesh 提供 API,以配置已启用网格功能的微服务之间的流量路由、断路、重试及其他控制。 App Mesh Mutual TLS 有助于加密服务之间的所有请求,即使此类请求处于您的私有网络中。此外,您可以添加身份验证控件以仅在所允许的服务之间启用通信。

您的 EKS 集群在 Amazon VPC 中运行,因此您可以使用自己的 VPC 安全组和网络访问控制列表(ACL)。不将计算资源与其他客户共享,这为构建安全可靠的应用程序提供了高度的隔离。EKS 使用 Amazon VPC 容器网络接口(CNI),使 Kubernetes 容器组(pod)能够从 VPC 中接收 IP 地址。 Amazon EKS 与 Project Calico 网络策略引擎配合使用,可以为您的 Kubernetes 工作负载提供精细的网络策略。使用 Kubernetes 网络策略 API 按每个服务来控制访问。

Amazon EKS 将 Kubernetes RBAC(Kubernetes 基于本机角色的访问控制系统)与 AWS IAM 集成。您可以将 RBAC 角色直接分配给每个 IAM 实体,从而对 Kubernetes 控制平面节点进行精细访问权限控制。

Amazon EKS 允许您为 Kubernetes 服务账户分配 IAM 权限。IAM 角色可以控制对其他容器化服务、集群外部的 AWS 资源(如数据库和机密信息)或在 AWS 外部运行的第三方服务和应用程序的访问。这样,当运行具有多个主机托管服务的集群时,可以为您提供精细的 Pod 级访问控制,同时可以简化集群可用性和成本优化。

Amazon EKS 通过多个合规性计划认证,适用于受管制的敏感应用程序。Amazon EKS 现在还符合 SOCPCIISOFedRAMP-ModerateIRAPC5K-ISMSENS HighOSPARHITRUST CSFHIPAA 的要求。

Amazon EKS 与容器映像签名验证兼容,允许使用经批准的映像和构件部署容器工作负载。在您的 Amazon EKS 集群中部署映像之前,您可以验证由 AWS Signer(一种完全托管的签名解决方案)签名的映像(或任何其他 OCI 构件,例如软件物料清单)。AWS 支持基于开源的映像签名和验证解决方案,因此您可以轻松为存储在注册表中的构件签字,并使用开源策略即代码或准入控制器对其进行验证。

负载均衡

Amazon EKS 支持使用弹性负载均衡,包括应用程序负载均衡器(ALB)、网络负载均衡器(NLB)和经典负载均衡器。

您可以使用 Amazon EKS 集群运行标准 Kuberentes 集群负载平衡或任何 Kubernetes 支持的入口控制器。

无服务器计算

EKS 支持 AWS Fargate 使用无服务器计算运行 Kubernetes 应用程序。使用 Fargate,您无需预置和管理服务器,而且可以为每个应用程序指定资源并为其付费,并通过设计隔离应用程序来提高安全性。

成本监控

Amazon EKS 简化了理解与 Kubernetes 使用相关的成本的过程,无论是在集群级别还是单个应用程序级别。

Amazon EKS 会自动将 AWS 成本分配标签添加到加入集群的每个 EC2 实例。这使您不必在整个组织中强制实施自定义标签策略,就能了解集群级别的成本。在 AWS Billing Console 中激活 EKS 集群名称成本分配标签后,您可以使用 AWS 成本和使用情况报告跟踪与 EKS 集群相关的 EC2 成本。

Amazon EKS 支持 Kubecost,它使您能够监控按 Kubernetes 资源(包括容器组 [pod]、节点、命名空间和标签)分解的成本。Kubernetes 平台管理员和财务主管可以使用 Kubecost 可视化其 Amazon EKS 相关费用的明细、分配成本并向应用程序团队等组织部门收取费用。您可以根据其实际 AWS 账单为内部团队和业务部门提供透明和准确的成本数据,并根据其集群内的基础设施环境和使用模式获得自定义的成本优化建议。

日志记录

Amazon EKS 集成了 AWS CloudTrail,可为 EKS 管理操作提供可见性,包括审计历史。您可以使用 CloudTrail 查看对 Amazon EKS API 的 API 调用。Amazon EKS 还可向 Amazon CloudWatch 交付 Kubernetes 控制面板日志,以便进行分析、调试和审计。

经认证一致

Amazon EKS 可运行上游 Kubernetes,并且经认证与 Kubernetes 一致,因此您可以使用 Kubernetes 社区中的所有现有插件和工具。无论是在本地数据中心还是在公有云中,在 Amazon EKS 上运行的应用程序都与在任何标准 Kubernetes 环境中运行的应用程序完全兼容。这意味着您可以轻松地将任何标准 Kubernetes 应用程序迁移到 Amazon EKS,而无需重构您的代码。

托管的集群更新

Amazon EKS 使得将正在运行的集群更新到最新 Kubernetes 版本非常简单,无需管理更新过程。Kubernetes 版本更新可就地完成,因而您无需创建新集群或将应用程序迁移至新集群。

随着新的 Kubernetes 版本的发布和验证(供 Amazon EKS 使用),我们将在任何给定时间支持三个稳定的 Kubernetes 版本作为更新过程的一部分。您可以通过开发工具包、CLI 或 AWS 控制台启动新版本安装并查看动态更新状态。

高级工作负载支持

Amazon EKS 提供的优化型亚马逊机器映像(AMI)包含为启用了 GPU 的 P2P3 Amazon EC2 实例配置的 NVIDIA 驱动程序,从而可以方便地使用 Amazon EKS 来运行高级的计算型工作负载,包括机器学习 (ML)、Kubeflow、深度学习 (DL) 容器、高性能计算 (HPC)、财务分析和视频转码。

开源兼容性

Amazon EKS 与 Kubernetes 社区工具完全兼容,并支持常见的 Kubernetes 附加模块。这些包括用于为集群创建 DNS 服务的 CoreDNS 以及用于访问和管理 Amazon EKS 上集群的基于 Web 的 Kubernetes 控制面板 UI 和 kubectl 命令行工具。

有关更多信息,请参阅 Kubernetes 社区工具 GitHub 页面。

EKS Connector

Amazon EKS 允许您将任何符合要求的 Kubernetes 集群连接到 AWS 并在 Amazon EKS 控制台中可视化显示。您可以连接任何符合要求的 Kubernetes 集群,包括在本地运行的 Amazon EKS Anywhere 集群、在 Amazon Elastic Compute Cloud (Amazon EC2) 上自行管理的集群以及在 AWS 之外运行的其他 Kubernetes 集群。不论集群在哪里运行,您都可以通过 Amazon EKS 控制台来查看所有联网的集群以及在集群上运行的 Kubernetes 资源。