一般性问题
问:什么是 Amazon Elastic Container Service for Kubernetes (Amazon EKS)?
答:Amazon EKS 是一种托管服务,使您可以轻松地在 亚马逊云科技上运行 Kubernetes,而无需安装和操作自己的 Kubernetes 控制平面。
问:什么是 Kubernetes?
答:Kubernetes 是一种开源软件,让您可以大规模部署和管理容器化应用程序。Kubernetes 将容器分组为逻辑分组,以实现管理和可发现性,然后将容器启动到 EC2 实例的集群中。通过 Kubernetes,您可以使用本地和云中的相同工具集运行容器化应用程序,包括微服务、批处理工作程序和平台即服务 (PaaS)。
问:为什么应该使用 Amazon EKS?
答:Amazon EKS 在多个 亚马逊云科技可用区中预置并扩展 Kubernetes 控制平面,包括 API 服务器和后端持久层,以实现高可用性和容错能力。Amazon EKS 会自动检测并替换运行状况不佳的控制平面节点,并为控制平面提供修补。Amazon EKS 与许多 亚马逊云科技服务集成,可为您的应用程序提供可扩展性和安全性。这些服务包括用于负载分配的 Elastic Load Balancing、用于身份验证的 IAM、用于隔离的 Amazon VPC、用于专用网络访问的 Amazon PrivateLink,以及用于日志记录的 Amazon CloudTrail。
问:Amazon EKS 的工作原理是什么?
答:Amazon EKS 的工作原理是为您预置(启动)和管理 Kubernetes 控制平面。在较高的层次上,Kubernetes 由两个主要组件组成:一个“工作程序节点”集群,用于运行容器;以及一个控制平面,用于管理容器在集群上的启动时间和位置,并监控其状态。
如果没有 Amazon EKS,您必须自己运行 Kubernetes 控制平面和工作程序节点集群。借助 Amazon EKS,您可以使用提供的 Amazon 系统映像 (AMI) 和 Amazon CloudFormation 脚本预置工作程序节点集群,并且我们可以在高度可用且安全的配置中处理 Kubernetes 控制平面的配置、扩展和管理。这消除了运行 Kubernetes 的重大操作负担,并使您可以专注于构建应用程序而不是管理 亚马逊云科技基础设施。
集成
问:Amazon EKS 能否与我现有的 Kubernetes 应用程序和工具配合使用?
答:Amazon EKS 运行的是最新版本的开源 Kubernetes 软件,因此您可以使用 Kubernetes 社区的所有现有插件和工具。运行在 Amazon EKS 上的应用程序与运行在所有标准 Kubernetes 环境中(无论是运行在本地数据中心还是公有云中)的应用程序完全兼容。这意味着您可以轻松地将所有标准 Kubernetes 应用程序迁移到 Amazon EKS,而无需进行任何代码修改。
问:Amazon EKS 能否与 Amazon Fargate 配合使用?答:可以。您可以使用
Amazon Fargate 和 Amazon EKS 将 Kubernetes 应用程序作为无服务器容器运行。
Kubernetes 版本和更新
问:Amazon EKS 支持哪些 Kubernetes 版本?
答:请参阅 Amazon EKS 文档,了解当前支持的 Kubernetes 版本。Amazon EKS 未来将继续增加对其他 Kubernetes 版本的支持。
问:是否可以将 Kubernetes 集群更新到新版本?
答:可以。Amazon EKS 为 Kubernetes 和 Amazon EKS 平台版本执行托管的就地集群升级。这简化了集群操作,让您可以利用最新的 Kubernetes 功能,以及 Amazon EKS 配置和安全补丁的更新。
您可以将两种类型的更新应用于 Amazon EKS 集群、Kubernetes 版本更新和 Amazon EKS 平台版本更新。由于 Kubernetes 已经发布了新版本,并且经验证可与 Amazon EKS 一起使用,因此作为更新过程的一部分,我们将在任何给定时间支持三个稳定的 Kubernetes 版本。
问:什么是 EKS 平台版本?
答:Amazon EKS 平台版本包含 Kubernetes 补丁和 API 服务器配置的更改。平台版本与 Kubernetes 次要版本分开,但鼬与之相关联。当为 Amazon EKS 推出新的 Kubernetes 版本时,其初始控制平面配置将作为“eks.1”平台版本发布。我们根据需要发布新的平台版本以启用 Kubernetes 补丁,或者当我们实施可能影响集群行为的 Amazon EKS API 服务器配置更改时。使用此版本控制方案,可以独立更新不同 Kubernetes 版本的配置;例如,如果我们需要发布 Kubernetes 版本 1.11(与 Kubernetes 版本 1.12 不兼容)的补丁。
问:为什么我要手动控制 Kubernetes 版本更新?
答:新版本的 Kubernetes 会对 Kubernetes API 进行重大更改,因此会导致应用程序行为发生变化。通过手动控制集群上的 Kubernetes 版本,您可以在升级生产集群之前针对新版本的 Kubernetes 测试应用程序。Amazon EKS 使您能够在向 EKS 集群引入更改时进行选择。
问:如何更新我的工作程序节点?
答:我们发布了 EKS Amazon 系统映像 (AMI),其中包括必要的工作程序节点二进制文件(Docker 和 Kubelet)。我们会定期更新此 AMI,并使用最新版本的组件构建。我们还发布了记录构建步骤的 Packer 脚本,方便您识别每个 AMI 版本中包含的二进制文件。您可以使用现有 Auto Scaling 功能将工作程序实例更新为最新版本的 EKS AMI。您还可以使用我们的 Packer 脚本来构建新版本的自定义 AMI。
可用性
问:哪些区域推出了 Amazon EKS?
答:请访问 亚马逊云科技全球基础设施区域表,以获取有关 Amazon EKS 区域可用性的最新信息。