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) 支持。

电脑数据的照片

完全托管式集群

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

Amazon EKS 自动模式使用户只需点击一下,即可完全自动管理 AWS 上用于计算、存储和联网的 Kubernetes 集群基础设施。它通过自动预置基础设施、选择最佳计算实例、动态扩展资源、持续优化成本、修补操作系统、管理附加组件以及与 AWS 安全服务集成,简化了 Kubernetes 的管理。

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

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

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

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

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

计算

通过 Amazon EKS,您将获得对 EC2 实例类型的完全访问权限,这为您提供了灵活性,让您可以自动为工作负载预置最佳计算资源。您可以按需购买、通过节省计划购买或通过竞价型实例购买计算资源。

AWS Nitro System 是专用硬件和轻量级虚拟机监控程序的组合,可推动加速创新和提高安全性。

AWS Graviton 是一系列处理器,旨在为在 Amazon EC2 中运行的云工作负载提供最佳性价比。

充分利用 AWS 云中未使用的 EC2 容量,与按需型实例的价格相比,可享受高达 90% 的折扣。竞价型实例可用于各种无状态、容错或灵活的应用程序,例如大数据、容器化工作负载、CI/CD、Web 服务器、高性能计算(HPC)以及测试和开发工作负载。

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

网络、安全和访问

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

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

Amazon EKS 支持使用弹性负载均衡,包括应用程序负载均衡器(ALB)、网络负载均衡器(NLB)和经典负载均衡器。您可以使用 Amazon EKS 集群运行标准 Kuberentes 集群负载平衡或任何 Kubernetes 支持的入口控制器。

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

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

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

Amazon EKS 通过多个合规性计划认证,适用于受管制的敏感应用程序。Amazon EKS 符合 SOCPCIISOFedRAMP-ModerateIRAPC5K-ISMSENS HighOSPARHITRUST CSF 的要求,同时是一项符合 HIPAA 资格的服务。

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

版本和更新

Amazon EKS 使得将正在运行的集群更新到最新 Kubernetes 版本非常简单,无需管理更新过程。Kubernetes 版本更新可就地完成,因而您无需创建新集群或将应用程序迁移至新集群。随着新的 Kubernetes 版本的发布和验证(供 Amazon EKS 使用),我们将在任何给定时间支持三个稳定的 Kubernetes 版本作为更新过程的一部分。您可以通过开发工具包、CLI 或 AWS 控制台启动新版本安装并查看动态更新状态。

Amazon EKS 与 Kubernetes 社区工具完全兼容,并支持常见的 Kubernetes 附加组件。这些包括用于为集群创建 DNS 服务的 CoreDNS 以及用于访问和管理 Amazon EKS 上集群的基于 Web 的 Kubernetes 控制面板 UI 和 kubectl 命令行工具。有关更多信息,请参阅 Kubernetes 社区工具 GitHub 页面。

附加组件

Amazon EKS 提供一系列精选的 Kubernetes 软件,也称为附加组件,用于实现对 Kubernetes 集群的各种操作功能以及与各种 AWS 服务的集成。这些附加组件包括像 CoreDNS 和 kube-proxy 这样的操作软件,前者用于实现集群 DNS 功能,后者用于在 Kubernetes 集群内实现服务联网功能。此外,这些附加组件还包括像 Amazon VPC CNI 这样的操作软件,它支持通过与 Amazon VPC 集成来实现容器组(pod)联网功能,以及支持与 Amazon Elastic Block Storage (Amazon EBS)、Amazon Elastic File System (Amazon EFS) 和 Amazon Simple Storage Service (Amazon S3) 集成的 CSI 驱动程序。另外,这些附加组件还包括允许与不同 AWS 服务集成的可观测性和安全代理程序。

Amazon EKS 支持通过 EKS API、AWS 管理控制台、AWS 命令行界面(AWS CLI)、eksctl、AWS CloudFormation 和第三方基础设施即代码(IaC)工具来安装、管理和配置附加组件。所有来自 AWS 的 Amazon EKS 附加组件均包含最新的安全补丁和错误修复,并经过 AWS 验证可以与 Amazon EKS 配合使用。这确保了 Amazon EKS 集群始终保持安全和稳定,并且减少了安装、配置和更新附加组件所需的工作量。要了解有关 AWS 附加组件的更多信息,请参阅 EKS 用户指南。

Amazon EKS 为在 EKS 集群上查找、选择、安装、管理和配置来自独立软件供应商的第三方 Kubernetes 操作软件(附加组件)提供统一的管理体验。这是通过使用 EKS API、AWS 管理控制台、AWS CLI、eksctl、AWS CloudFormation 和第三方基础设施即代码工具(这些工具也用于从 AWS 管理 EKS 附加组件)来实现的。这有助于简化管理体验,允许更轻松地查找、订阅和部署在 EKS 集群上提供可观测性、服务网格、GitOps 和存储等操作功能的第三方 Kubernetes 附加组件。这些第三方附加组件来自 AWS Marketplace,后者会持续扫描软件是否存在公共漏洞和暴露(CVE)。仅会显示与不同 Kubernetes 版本兼容的附加组件版本,从而减少了验证附加组件兼容性的开销。通过 EKS 选择这些附加组件与使用 AWS Marketplace 中的任何其他产品时提供相同的好处,包括账单整合、灵活付款选项以及价格更低的长期合同。要了解有关 AWS 附加组件的更多信息,请参阅 EKS 用户指南

可观测性

Amazon Managed Service for Prometheus 为开源 Prometheus 提供了一项可扩展、安全的 AWS 托管服务。您可以使用 Prometheus 查询语言(PromQL)来监控容器化工作负载的性能,而无需管理用于摄取、存储和查询运营指标的底层基础设施。您可以使用适用于 OpenTelemetry 的 AWS Distro 或 Prometheus 服务器作为收集代理程序,从 Amazon EKS 收集 Prometheus 指标。Amazon Managed Service for Prometheus 提供一种完全托管的无代理抓取工具,可自动从 Amazon EKS 集群中抓取指标。抓取时会自动从与 Prometheus 兼容的端点中拉取指标。

Amazon CloudWatch Container Insights 是一项完全托管的监控和可观测性服务,为 DevOps 工程师、开发人员、网站可靠性工程师(SRE)和 IT 经理提供了对其容器化应用程序和微服务环境的开箱即用的可见性。借助 Amazon CloudWatch Container Insights,您可以轻松监控、隔离和诊断 EKS 集群中的问题。它以指标和日志的形式为您的集群、服务和容器组(pod)提供基础设施遥测数据,例如 CPU、内存、网络和磁盘使用情况,这些指标和日志可以在 CloudWatch 控制台中轻松可视化。

您可以使用 Amazon CloudWatch Observability EKS 附加组件来增强 Amazon EKS 集群的可观测性。Amazon EKS 附加组件可为您提供增强的 Amazon EKS 集群可观测性。此附加组件安装了 CloudWatch 代理程序和 Fluent Bit,为您提供基础设施和容器日志洞察。CloudWatch 代理程序会将重要基础设施指标从集群节点发送到 CloudWatch。这使您能够监控 CPU、网络、磁盘和其他低级节点指标。Fluent Bit 则会将容器日志从集群传送到 CloudWatch Logs。这使您能够深入了解容器中的应用程序和系统日志。

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

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

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

AWS integrations

AWS Controllers for Kubernetes(ACK)是一款允许您直接从 Kubernetes 管理 AWS 服务的工具。ACK 帮助您轻松构建使用 AWS 服务的可扩展且高度可用的 Kubernetes 应用程序。无论使用何种 AWS 服务 API,ACK 均为 AWS 提供一致的 Kubernetes 接口。

Amazon ECR 是完全托管式容器注册表,提供高性能托管,让您能在任何地方可靠地部署应用程序映像和构件。您可以从 Amazon ECR 中拉取映像以便在 Amazon EKS 上运行 Kubernetes 工作负载。

GuardDuty EKS Protection 通过分析 Kubernetes 审计日志,支持 Amazon GuardDuty 检测 EKS 集群的可疑活动和潜在入侵。Amazon GuardDuty EKS 运行时监控可检测来自 30 多个安全调查发现的运行时威胁,以保护您的 EKS 集群。EKS 运行时监控使用完全托管的 EKS 附加组件,该附加组件增加了对单个容器运行时活动(例如文件访问、流程执行和网络连接)的可见性。GuardDuty 现在可以识别 Amazon EKS 集群中可能遭到入侵的特定容器,并检测试图将权限从单个容器升级到底层 Amazon EC2 主机和更广泛的 AWS 环境的行为。GuardDuty EKS 运行时监控的调查发现可提供元数据上下文,帮助识别潜在威胁并在威胁升级之前加以遏制。

混合部署

Amazon EKS 让您可以在 AWS 区域、AWS Local Zones、AWS Wavelength Zone 的 AWS 托管基础设施上运行节点,或者通过 AWS Outposts 和 Amazon EKS Hybrid Nodes 在您自己的本地环境中运行节点。AWS Outposts 是您在自己的数据中心或托管设施中运行的 AWS 托管基础设施,而 Amazon EKS Hybrid Nodes 运行在您在本地或边缘环境中管理的虚拟机或裸机基础设施上。如果您需要在受隔离或受物理隔离的环境中运行,可使用 Amazon EKS Anywhere,它是一款受 AWS 支持的 Kubernetes 管理软件,在您管理的基础设施上运行。使用 Amazon EKS Anywhere 时,您将负责 Amazon EKS Anywhere 集群的集群生命周期操作和维护。Amazon EKS Connector 可用于在 Amazon EKS 控制台中查看任何 Kubernetes 集群及其资源。Amazon EKS Distro 是底层 Kubernetes 组件的 AWS 发行版,可为所有 Amazon EKS 产品提供支持。

Amazon EKS Hybrid Nodes 统一了云、本地和边缘环境中的 Kubernetes 管理,让您可以灵活地在任何地方运行工作负载,同时提高可用性、可扩展性和效率。它标准化了不同环境中的 Kubernetes 操作和工具,并与多项 AWS 服务原生集成以实现集中监控、记录和身份管理。EKS Hybrid Nodes 可将 Kubernetes 控制面板的可用性和可扩展性转移到 AWS,减少在本地和边缘管理 Kubernetes 所需的时间和精力。EKS Hybrid Nodes 可以在您的现有基础设施上运行,让您无需额外的硬件投资即可加速现代化改造。

AWS OutpostsAWS Local ZonesAWS Wavelength Zone 可用来实现在距离最终用户更近的地方运行应用程序,以满足低延迟和数据驻留要求。您可以通过 Amazon EKS,使用与在 AWS 区域中运行应用程序所用的相同 Amazon EKS 集群、功能和工具,在这些 AWS 基础设施类型上运行节点。

Amazon EKS Anywhere 通过自动化无差别的繁重工作(例如基础设施设置和 Kubernetes 集群生命周期操作)来简化本地和边缘环境中的 Kubernetes 集群管理。Amazon EKS Anywhere 基于 Kubernetes 的子项目 Cluster API(CAPI)构建而成,支持一系列基础设施,包括 VMware vSphere、裸机、Nutanix、Apache CloudStack 和 AWS Snow Family。Amazon EKS Anywhere 可以在受物理隔离的环境中运行,并提供与区域性 AWS 服务的可选集成来实现可观测性和身份管理。要获取对 Amazon EKS Anywhere 的支持和使用 AWS 提供的 Kubernetes 附加组件,您可以购买 Amazon EKS Anywhere 企业订阅

您可以使用 Amazon EKS Connector 注册和连接任何符合要求的 Kubernetes 集群到 AWS,并在 Amazon EKS 控制台中查看该集群。连接集群后,您可以在 Amazon EKS 控制台中查看该集群的状态、配置和工作负载。您可以使用此功能在 Amazon EKS 控制台中查看已连接的集群,但 Amazon EKS Connector 不支持通过 Amazon EKS 控制台对已连接的集群进行管理或更改操作。

Amazon EKS Distro 是底层 Kubernetes 组件的 AWS 发行版,可为所有 Amazon EKS 产品提供支持。它包括 Kubernetes 集群正常运行所需的核心组件,例如 Kubernetes 控制面板组件(etcd、kube-apiserver、kube-scheduler 和 kube-controller-manager)和网络组件(CoreDNS、kube-proxy 和 CNI 插件)。Amazon EKS Distro 可用于通过您选择的工具自行管理 Kubernetes 集群。