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 应用程序。
托管的 Kubernetes 集群
托管的控制面板
Amazon EKS 提供的 Kubernetes 控制面板不仅可扩展且可用,还能跨多个 AWS 可用区(AZ)运行。Amazon EKS 可管理 Kubernetes API 服务器和 etcd 持久层的可用性和可扩展性。Amazon EKS 可跨三个可用区运行 Kubernetes 控制面板以实现高可用性,并且设计为可自动检测和替换运行状况不佳的控制面板节点。Amazon EKS 还提供预置控制面板,该功能可以从明确定义的扩展层中选择集群的控制面板容量。
Amazon EKS 自动模式
Amazon EKS 自动模式旨在使用户可自动管理 AWS 上用于计算、存储和联网的 Kubernetes 集群基础设施。它通过预置基础设施、选择最佳计算实例、动态扩展资源、修补操作系统、管理附加组件以及与 AWS 安全服务集成,简化了 Kubernetes 的管理。
服务集成
AWS Controllers for Kubernetes(ACK)可让您从 Kubernetes 环境内部对 AWS 服务进行管理控制。ACK 使您可以利用 AWS 服务轻松构建可扩展且可用的 Kubernetes 应用程序。
托管的 Kubernetes 控制台
EKS 提供适用于 Kubernetes 集群的集成式控制台。集群操作人员和应用程序开发人员可将 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。
EKS Connector
Amazon EKS 帮助您将任何符合要求的 Kubernetes 集群连接到 AWS 并在 Amazon EKS 控制台中可视化显示。您可以连接任何符合要求的 Kubernetes 集群,包括在本地运行的 Amazon EKS Anywhere 集群、在 Amazon Elastic Compute Cloud(Amazon EC2)上自行管理的集群以及在 AWS 之外运行的其他 Kubernetes 集群。无论集群在哪里运行,您都可以通过 Amazon EKS 控制台来查看联网的集群以及在集群上运行的 Kubernetes 资源。
计算
Nitro
AWS Nitro System 是专用硬件和轻量级虚拟机监控程序的组合。
Graviton
AWS Graviton 是一系列处理器,适用于 Amazon EC2 中运行的云工作负载。
EC2 竞价型实例
充分利用 AWS 云中未使用的 EC2 容量。竞价型实例旨在用于各种无状态、容错或灵活的应用程序,例如大数据、容器化工作负载、CI/CD、Web 服务器、高性能计算(HPC)以及测试和开发工作负载。
无服务器计算
EKS 支持 AWS Fargate 使用无服务器计算运行 Kubernetes 应用程序。
网络、安全和访问
VPC 原生联网
您的 EKS 集群在 Amazon VPC 中运行,因此您可以使用自己的 VPC 安全组和网络访问控制列表(ACL)。EKS 使用 Amazon VPC 容器网络接口(CNI),使 Kubernetes 容器组(pod)能够从 VPC 中接收 IP 地址。Amazon EKS 与 Project Calico 网络策略引擎配合使用,可以为您的 Kubernetes 工作负载提供精细的网络策略。
IPv6 支持
Amazon EKS 支持 IPv6,让客户能够在 Kubernetes 上扩展容器化应用程序,摆脱私有 IPv4 地址空间的限制。EKS 的 IPv6 支持功能会为容器组(pod)分配一个可全局路由的 IPv6 地址,这使您能够扩展集群中的应用程序,而不会占用有限的私有 IPv4 地址空间。该可全局路由的 IPv6 地址可用于直接与 Amazon VPC、本地网络或公有互联网中的任何 IPv6 端点通信。此外,EKS 会配置联网,确保容器组(pod)仍能与集群外基于 IPv4 的端点通信,使您无需将整个组织中部署的所有依赖服务迁移至 IPv6,即可通过 Kubernetes 享受 IPv6 带来的优势。
负载均衡
Amazon EKS 支持使用 Elastic Load Balancing,包括应用程序负载均衡器(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 容器组身份
EKS 集群管理员可以通过工作流程,获取对 Kubernetes 应用程序进行身份验证以访问 AWS 资源所需的 IAM 凭证。EKS 容器组身份有助于支持跨 IAM 角色重复使用策略。
为 RBAC 使用 IAM
Amazon EKS 经在将 Kubernetes RBAC(Kubernetes 基于本机角色的访问控制系统)与 AWS IAM 集成。您可以将 RBAC 角色分配给每个 IAM 实体,从而对 Kubernetes 控制面板节点进行访问权限控制。
容器映像签名验证
Amazon EKS 与容器映像签名验证兼容,允许使用经批准的映像和构件部署容器工作负载。在您的 Amazon EKS 集群中部署映像之前,您可以验证由 AWS Signer(一种托管式签名解决方案)签名的映像(或任何其他 OCI 构件,例如软件物料清单)。AWS 支持基于开源的映像签名和验证解决方案,因此您可以为存储在注册表中的构件签名,并使用开源策略即代码或准入控制器对其进行验证。
版本和更新
托管的集群更新
Amazon EKS 使得将正在运行的集群更新到最新 Kubernetes 版本非常简单,无需管理更新过程。Kubernetes 版本更新可就地完成,因此您无需创建新集群或将应用程序迁移至新集群。
开源兼容性
Amazon EKS 与 Kubernetes 社区工具兼容,并支持常见的 Kubernetes 附加组件。这些包括用于为集群创建 DNS 服务的 CoreDNS 以及用于访问和管理 Amazon EKS 上集群的基于 Web 的 Kubernetes 控制面板 UI 和 kubectl 命令行工具。
EKS 功能
使用 Argo CD 进行持续部署
EKS 功能包括通过 Argo CD 实现托管的 GitOps,从而有助于在多个集群中实现应用程序的部署和管理。此功能从 Git 存储库同步您所需的应用程序状态来。同时,它还提供与 AWS Identity and Access Management Identity Center 的原生集成,用于单点登录身份验证,与 AWS Secrets Manager 集成进行凭证管理,以及与 AWS CodeConnections 集成进行存储库访问。在将 Argo CD 之类的工具部署用于管理分布在不同账户或 AWS 区域中的多个 EKS 集群的应用程序时,EKS 功能可以减少通常需要使用中转网关或虚拟私有云对等连接进行的网络设置。AWS 负责管理运营方面的工作,包括安全补丁、升级和扩展等,这样您就可以专注于应用程序交付,而无需操心部署工具的维护事宜。
使用 AWS Controllers for Kubernetes(ACK)进行 AWS 云资源编排
EKS 功能提供托管的 AWS Controllers for Kubernetes(ACK),以启用原生 Kubernetes 接口进行 AWS 资源管理。此功能使您能够使用熟悉的 Kubernetes API 和声明式配置来预置和管理 AWS 资源。AWS 负责处理运维方面的工作,包括控制器生命周期管理、安全补丁以及
使用 Kubernetes 资源编排工具(KRO)进行资源组合和管理
EKS 功能提供托管的 Kube 资源编排工具(KRO),它使您能够通过配置来定义自定义的 Kubernetes API,从而让您能够创建涵盖组织标准和最佳实践的规范性多资源配置。此功能使您能够轻松配置新的自定义 API,用于创建 Kubernetes 对象组。您可以为 API 规范定义默认值,并调用自定义 API 来创建分组的资源。
附加组件
来自 AWS 的 Amazon EKS 附加组件
Amazon EKS 提供一系列精选的 Kubernetes 软件,也称为附加组件,用于实现对 Kubernetes 集群的各种操作功能以及与各种 AWS 服务的集成。这些附加组件包括像 CoreDNS 和 kube-proxy 这样的操作软件,前者用于实现集群 DNS 功能,后者用于在 Kubernetes 集群内实现服务联网功能。此外,这些附加组件还包括像 Amazon VPC CNI 这样的操作软件,它支持通过与 Amazon VPC 集成来实现容器组(pod)联网功能,以及支持与 Amazon Elastic Load Balancing 集成的 CSI 驱动程序,集成的负载均衡器包括应用程序负载均衡器(ALB)、块存储(Amazon EBS)、网络负载均衡器(NLB)、Amazon Elastic File System(Amazon EFS)和经典负载均衡器。Amazon Simple Storage Service(Amazon S3)。另外,这些附加组件还包括允许与不同 AWS 服务集成的可观测性和安全代理程序。
Amazon EKS 支持通过 EKS API、AWS 管理控制台、AWS 命令行界面(AWS CLI)、eksctl、AWS CloudFormation 和第三方基础设施即代码(IaC)工具来安装、管理和配置附加组件
来自独立软件供应商的 Amazon EKS 附加组件
Amazon EKS 为在 EKS 集群上查找、选择、安装、管理和配置来自独立软件供应商的第三方 Kubernetes 操作软件(附加组件)提供统一的管理体验。这有助于简化管理体验,允许更轻松地查找、订阅和部署在 EKS 集群上提供可观测性、服务网格、GitOps 和存储等操作功能的第三方 Kubernetes 附加组件。仅提供与不同 Kubernetes 版本兼容的附加组件版本。
来自开源社区的 Amazon EKS 附加组件
Amazon EKS 中的社区附加组件目录将您连接到开源 Kubernetes 生态系统。直接从 EKS 控制台部署开源工具。
可观测性和监控
容器网络可观测性
借助容器网络可观测性功能,您可以利用与网络相关的精细指标,主动对集群流量、跨可用区流量和 AWS 服务进行更有效的异常检测。
Amazon Managed Service for Prometheus
Amazon Managed Service for Prometheus 为开源 Prometheus 提供了一项可扩展的 AWS 托管服务。您可以使用 Prometheus 查询语言(PromQL)来监控容器化工作负载的性能,而无需管理用于摄取、存储和查询运营指标的底层基础设施。您可以使用适用于 OpenTelemetry 的 AWS Distro 或 Prometheus 服务器作为收集代理程序,从 Amazon EKS 收集 Prometheus 指标。Amazon Managed Service for Prometheus 提供一种托管的无代理抓取工具,可从 Amazon EKS 集群中抓取指标。抓取时会从与 Prometheus 兼容的端点中拉取指标。
CloudWatch Container Insights
Amazon CloudWatch Container Insights 是一项托管式监控与可观测性服务,旨在提供对容器化应用和微服务环境的可见性。它以指标和日志的形式为您的集群、服务和容器组(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 成本。
Kubecost
Amazon EKS 支持 Kubecost,它使您能够监控按 Kubernetes 资源(包括容器组(pod)、节点、命名空间和标签)分解的成本。Kubernetes 平台管理员和财务主管可以使用 Kubecost 可视化其 Amazon EKS 相关费用的明细、分配成本并向应用程序团队等组织部门收取费用。
EKS 控制面板
Amazon EKS 控制面板能够对分布在不同 AWS 区域和账户中的 Kubernetes 集群提供统一的视图。通过可信访问设置,组织能够查看其 EKS 集群、托管节点组和 EKS 附加组件的关键基础设施详情,包括具有标准或扩展支持状态的 Kubernetes 版本、计划中的支持终止自动升级、具有特定 AMI 版本的托管节点组、运行特定版本的 EKS 附加组件等等。
AWS Integrations
AWS Controllers for Kubernetes(ACK)
AWS Controllers for Kubernetes(ACK)是一款允许您从 Kubernetes 管理 AWS 服务的工具。无论使用何种 AWS 服务 API,ACK 均为 AWS 提供一致的 Kubernetes 接口。
Amazon Elastic Container Registry(Amazon ECR)
Amazon ECR 是一项托管容器镜像仓库服务,提供托管能力,使您能够部署应用程序镜像和构件。您可以从 Amazon ECR 中拉取映像以便在 Amazon EKS 上运行 Kubernetes 工作负载。
GuardDuty EKS Protection
GuardDuty EKS Protection 通过分析 Kubernetes 审计日志,支持 Amazon GuardDuty 检测 EKS 集群的可疑活动和潜在入侵。Amazon GuardDuty EKS 运行时监控旨在检测运行时威胁,以保护您的 EKS 集群。EKS 运行时监控使用托管的 EKS 附加组件,该附加组件增加了对单个容器运行时活动。GuardDuty 旨在识别 Amazon EKS 集群中可能遭到入侵的特定容器,并检测试图将权限从单个容器升级到底层 Amazon EC2 主机和更广泛的 AWS 环境的行为。GuardDuty EKS 运行时监控的调查发现可提供元数据上下文,帮助识别潜在威胁并在威胁升级之前加以遏制。
混合部署
您可以使用 EKS on AWS Outposts 运行需要与本地系统保持低延迟通信的容器化应用程序。AWS Outposts 是一项托管服务,可将 AWS 基础设施、AWS 服务、API 和工具扩展到许多连接的站点。使用 EKS on Outposts,您可以像管理云中的容器一样管理本地容器。
您可以将 AWS Local Zones 或 AWS Wavelength 中运行的节点附加到 EKS,这能为 AWS 托管的边缘基础设施提供更多选择。
Amazon EKS Distro 将 AWS 上的 Amazon EKS 所使用的开源 Kubernetes 软件发行版打包,供您在自己的本地基础设施上使用。利用您自己的工具或 Amazon EKS Anywhere 来管理 EKS Distro 集群。
Amazon EKS 混合节点功能
Amazon EKS 混合节点功能统一了云、本地和边缘环境中的 Kubernetes 管理,让您可以灵活地运行工作负载。它标准化了不同环境中的 Kubernetes 操作和工具,并与 AWS CloudTrail 原生集成,以提供实现集中监控、记录和身份管理的可见性服务。EKS 混合节点将 Kubernetes 控制面板日志的可用性和可扩展性任务卸载至 Amazon CloudWatch。
AWS Outposts、AWS Local Zones、AWS Wavelength Zone
AWS Outposts、AWS Local Zones 和 AWS Wavelength Zones 可用于分析、调试,并可用来实现在距离最终用户更近的地方运行应用程序,从而帮助满足低延迟要求。
Amazon EKS Anywhere
Amazon EKS Anywhere 通过自动化无差别的繁重工作(例如基础设施设置和 Kubernetes 集群生命周期操作)来帮助简化本地和边缘环境中的 Kubernetes 集群管理。Amazon EKS Anywhere 基于 Kubernetes 的子项目集群 API(CAPI)构建而成,支持一系列基础设施。Amazon EKS Anywhere 可以在受物理隔离的环境中运行,并提供与区域性 AWS 服务的可选集成来实现可观测性和身份管理。
Amazon EKS Connector
您可以使用 Amazon EKS Connector 注册和连接符合要求的 Kubernetes 集群到 AWS,并在 Amazon EKS 控制台中查看该集群。连接集群后,您可以在 Amazon EKS 控制台中查看该集群的状态、配置和工作负载。您可以使用此功能在 Amazon EKS 控制台中查看已连接的集群,但 Amazon EKS Connector 不支持通过 Amazon EKS 控制台对已连接的集群进行管理或更改操作。
Amazon EKS Distro
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 集群。
其他信息
有关服务控制、安全特征和功能的更多信息,包括有关存储、检索、修改、限制和删除数据的信息(如适用),请参阅 https://docs.aws.amazon.com/index.html。就 http://aws.amazon.com/agreement 上的 AWS 客户协议或您与 AWS 之间签订的管理您使用 AWS 服务的其他协议而言,这些附加信息不构成文档的一部分。