

 **帮助改进此页面** 

要帮助改进本用户指南，请选择位于每个页面右侧窗格中的**在 GitHub 上编辑此页面**链接。

# 使用 EKS 自动模式实现集群基础设施自动化
<a name="automode"></a>

**提示**  
 [注册参加](https://aws-experience.com/emea/smb/events/series/get-hands-on-with-amazon-eks?trk=4a9b4147-2490-4c63-bc9f-f8a84b122c8c&sc_channel=el)即将举办的 Amazon EKS 自动模式讲习会。

EKS 自动模式将 Kubernetes 集群的 Amazon 管理扩展到集群本身之外，从而让 Amazon 还可以设置和管理基础设施，确保工作负载的平稳运行。您可以将关键基础设施决策委派给 Amazon 并利用其专业知识进行日常运营。由 Amazon 管理的集群基础设施将多种 Kubernetes 功能作为核心组件包含在内，而不是作为附加组件，例如计算自动扩缩、容器和服务联网、应用程序负载均衡、集群 DNS、块存储和 GPU 支持等。

要开始使用，您可以部署一个新的 EKS 自动模式集群或在现有集群上启用 EKS 自动模式。您可以使用 eksctl、Amazon CLI、Amazon Web Services 管理控制台、EKS API 或偏好的基础设施即代码工具，部署、升级或修改 EKS 自动模式集群。

使用 EKS 自动模式时，您可以继续使用自己偏好的 Kubernetes 兼容工具。EKS 自动模式与 Amazon EC2、Amazon EBS 和 ELB 等 Amazon 服务集成，利用遵循最佳实践的 Amazon 云资源。这些资源可自动扩展、优化成本并定期更新，有助您尽可能降低运营成本和开销。

## 功能
<a name="_features"></a>

EKS 自动模式提供以下高级别功能：

 **简化 Kubernetes 集群管理**：EKS 自动模式通过提供运行开销极小的生产就绪型集群，来简化 EKS 的管理。使用 EKS 自动模式时，您可以放心地运行要求严苛的动态工作负载，无需深入的 EKS 专业知识。

 **应用程序可用性**：EKS 自动模式会根据 Kubernetes 应用程序的需求动态添加或移除 EKS 集群中的节点。这尽可能减少了手动容量规划的需求，确保了应用程序的可用性。

 **效率**：EKS 自动模式旨在优化计算成本，同时符合节点池和工作负载要求所定义的灵活性。此外还会终止未使用的实例，并将工作负载整合到其他节点上，从而提高成本效率。

 **安全性**：EKS 自动模式使用对节点而言不可变的 AMI。这些 AMI 强制使用锁定软件，启用 SELinux 强制访问控制，并提供只读的根文件系统。此外，由 EKS 自动模式启动的节点最长生命周期为 21 天（并且您可以缩短此周期），之后会自动替换为新节点。这种方法通过定期循环节点来增强安全态势，也符合许多客户已经采用的最佳实践。

 **自动升级**：EKS 自动模式使用最新补丁来确保 Kubernetes 集群、节点和相关组件保持最新状态，同时遵守您配置的容器组中断预算（PDB）和节点池中断预算（NDB）。在不超过 21 天最长生命周期的前提下，如果阻止 PDB 或其他配置会妨碍更新，则可能需要进行干预。

 **托管式组件**：EKS 自动模式将 Kubernetes 和 Amazon 云功能等作为核心组件，而这些组件本来会作为附加组件管理。这包括对容器组 IP 地址分配、容器组网络策略、本地 DNS 服务、GPU 插件、运行状况检查器和 EBS CSI 存储的内置支持。

 **可自定义节点池和节点类**：如果工作负载需要更改存储、计算或联网配置，则可以使用 EKS 自动模式创建自定义节点池和节点类。虽然不应编辑默认的节点池和节点类，但可以在默认配置之外添加新的自定义节点池或节点类，来满足自己的特定需求。

## 自动化组件
<a name="_automated_components"></a>

EKS 自动模式通过自动管理关键基础设施组件来简化 Amazon EKS 集群的操作。启用 EKS 自动模式可进一步减少 EKS 集群管理任务。

以下是自动管理的数据面板组件列表：
+  **计算**：对于许多工作负载而言，使用 EKS 自动模式后，您都无需关注 EKS 集群计算的许多方面。这些方法包括：
  +  **节点**：EKS 自动模式节点在设计上可视为设备。EKS 自动模式可完成以下任务：
    + 选择合适的 AMI 并配置运行工作负载所需的多种服务，无需干预。
    + 使用 SELinux 强制实施模式和只读根文件系统锁定对 AMI 上文件的访问权限。
    + 通过禁用 SSH 或 SSM 访问来禁止直接访问节点。
    + 包含 GPU 支持，以及适用于 NVIDIA 和 Neuron GPU 的单独内核驱动程序和插件，从而支持高性能工作负载。
    + 自动处理 [EC2 竞价型实例中断通知](https://docs.amazonaws.cn/AWSEC2/latest/UserGuide/spot-instance-termination-notices.html)和 EC2 实例运行状况事件
  +  **自动扩缩**：依托 [Karpenter](https://karpenter.sh/docs/) 自动扩缩功能，EKS 自动模式可以监控不可调度的容器组，并通过部署新节点来运行这些容器组。当工作负载终止时，EKS 自动模式会动态中断和终止不再需要的节点，从而优化资源使用。
  +  **升级**：通过接管节点的控制，简化 EKS 自动模式根据需要提供安全补丁以及操作系统和组件升级的能力。这些升级旨在尽可能减少工作负载的中断。EKS 自动模式强制实施最长 21 天的节点生命周期，以确保始终使用最新的软件和 API。
+  **负载均衡**：EKS 自动模式通过与 Amazon 弹性负载均衡服务集成，自动为 Kubernetes 服务和 Ingress 资源预置和配置负载均衡器，从而简化负载均衡任务。支持应用程序均衡器和网络负载均衡器的高级功能，管理其生命周期，并根据集群需求进行扩展。这种集成提供了符合 Amazon 最佳实践的生产就绪型负载均衡解决方案，使您可以专注于应用程序，而无需关注基础设施管理。
+  **存储**：EKS 自动模式通过设置卷类型、卷大小、加密策略以及节点终止时的删除策略，来为您配置临时存储。
+  **联网**：EKS 自动模式可自动执行容器组和服务连接的关键联网任务。这包括 IPv4/IPv6 支持以及使用辅助 CIDR 块来扩展 IP 地址空间。
+  **身份和访问权限管理**：您无需在 EKS 自动模式集群上安装 EKS 容器组身份代理。

有关这些组件的更多信息，请参阅[了解 EKS 自动模式的工作原理](auto-reference.md)。

## 配置
<a name="_configuration"></a>

虽然 EKS 自动模式无需您干预即可有效地管理大部分数据面板服务，不过有时您可能需要更改某些服务的行为。您可以通过以下任一方式修改 EKS 自动模式集群的配置：
+  **Kubernetes 进程守护程序集**：您可以使用 Kubernetes 进程守护程序集，而不修改节点上安装的服务。进程守护程序集旨在由 Kubernetes 管理，不过是在集群中的每个节点上运行的。这样，您可以添加特殊服务来监控或以其他方式观察节点。
+  **自定义节点池和节点类**：默认节点池和节点类由 EKS 自动模式配置，不应编辑。要自定义节点行为，您可以针对应用场景创建其他节点池或节点类，例如：
  + 选择特定的实例类型（例如，加速处理器或 EC2 竞价型实例）。
  + 出于安全或成本跟踪目的隔离工作负载。
  + 配置临时存储设置，例如 IOPS、大小和吞吐量等。
+  **负载均衡**：EKS 自动模式作为 Kubernetes 对象运行的某些服务（例如负载均衡），可以直接在 EKS 自动模式集群上配置。

要详细了解配置 EKS 自动模式的选项，请参阅[配置 EKS 自动模式设置](settings-auto.md)。

## 责任共担模式
<a name="_shared_responsibility_model"></a>

Amazon 责任共担模式定义了 Amazon 与客户之间的安全与合规责任。下面的图片和文字比较和对比 EKS 自动模式与 EKS 标准模式之间客户与 Amazon 责任的区别。

![\[采用 EKS 自动模式与标准模式的责任共担模式\]](http://docs.amazonaws.cn/eks/latest/userguide/images/eksautosrm.png)


EKS 自动模式将 Kubernetes 基础设施的大部分共担责任从客户转移到 Amazon。使用 EKS 自动模式后，Amazon 承担了更多云安全责任，而云安全曾经是客户的责任，现在我们与客户共同承担。现在，客户可以更加专注于自己的应用程序，而 Amazon 负责管理底层基础设施。

 **客户责任** 

在 EKS 自动模式下，客户继续负责应用程序容器，包括可用性、安全性和监控。其还保留对 VPC 基础设施和 EKS 集群配置的控制。此模式使客户能够专注于应用程序特定的问题，同时将集群基础设施管理委派给 Amazon。通过 Amazon 附加组件可以在集群中加入可选的每节点功能。

 **Amazon 责任** 

使用 EKS 自动模式后，与未使用自动模式的 EKS 集群中已管理的组件相比，Amazon 的责任范围扩大到包括管理多个其他关键组件。具体而言，EKS 自动模式接管了启动的 EC2 实例的配置、管理、安全和扩展，以及负载均衡、IP 地址管理、联网策略和块存储等集群功能。在 EKS 自动模式下，以下组件由 Amazon 管理：
+  **自动模式启动的 EC2 实例**：Amazon 利用 Amazon EC2 托管实例处理节点的整个生命周期。EC2 托管实例负责操作系统配置、修补、监控和运行状况维护。在此模式下，实例本身和在其上运行的客户操作系统均由 Amazon 负责。这些节点使用为运行容器而优化的 [Bottlerocket](https://www.amazonaws.cn/bottlerocket) AMI 的变体。Bottlerocket AMI 具有锁定的软件、不可变的根文件系统，以及安全的网络访问（防止通过 SSH 或 SSM 直接通信）。
+  **集群功能**：Amazon 管理计算自动扩展、具有网络策略强制执行的容器组（pod）联网、Elastic Load Balancing 集成，以及存储驱动程序配置。
+  **集群控制面板**：与标准 EKS 一样，Amazon 继续管理 Kubernetes API 服务器、跨账户 ENI 和 etcd 数据库。
+  **基础服务和全球基础设施**：Amazon 负责底层计算、存储、联网和监控服务，以及区域、本地区域和边缘站点的全球基础设施。