Amazon EKS 附加组件 - Amazon EKS

帮助改进此页面

想为本用户指南做出贡献? 选择位于每个页面右侧窗格中的在 GitHub 上编辑此页面链接。您的贡献有助于我们的用户指南为每个人提供更充分的参考。

Amazon EKS 附加组件

附加组件是为 Kubernetes 应用程序提供辅助操作功能的软件,但并不特定于应用程序。这包括可观测性代理或 Kubernetes 驱动程序等软件,这些软件允许集群与用于联网、计算和存储的底层 AWS 资源进行交互。附加组件软件通常由 Kubernetes 社区、AWS 等云提供商或第三方供应商构建和维护。Amazon EKS 会自动为每个集群安装自我管理的附加组件,例如 Amazon VPC CNI plugin for Kubernetes、kube-proxy 和 CoreDNS。请注意,VPC CNI 附加组件与 Amazon EKS 混合节点功能不兼容,也不会部署到混合节点。您可以更改附加组件的默认配置并在需要时加以更新。

Amazon EKS 附加组件为 Amazon EKS 集群的一组经策管附加组件提供安装和管理。Amazon EKS 附加组件包含最新的安全补丁、错误修复,并经 AWS 验证能够与 Amazon EKS 一起使用。Amazon EKS 附加组件允许您始终如一地确保您的 Amazon EKS 集群安全稳定,并减少您在安装、配置和更新上所需执行的工作量。如果是类似于 kube-proxy 的自我管理附加组件,若已在您的集群上运行并且可作为 Amazon EKS 附加组件使用,那么您便可以安装 kube-proxy Amazon EKS 加载项开始享受 Amazon EKS 附加组件的功能所带来的益处。

您可以通过 Amazon EKS API 为 Amazon EKS 附加组件更新特定的 Amazon EKS 托管配置字段。在附加组件启动后,您还可以直接在 Kubernetes 集群中修改并非由 Amazon EKS 管理的配置字段,包括在适用时为附加组件定义特定的配置字段。Amazon EKS 不会覆盖您所做的这些更改。使用 Kubernetes 服务器端应用功能可以实现这一点。有关更多信息,请参阅 确定可以为 Amazon EKS 附加组件自定义的字段

您可以将 Amazon EKS 附加组件与任何 Amazon EKS 节点类型配合使用。有关更多信息,请参阅 使用节点来管理计算资源

您可以使用 Amazon EKS API、AWS Management Console、AWS CLI 和 eksctl 添加、更新或删除 Amazon EKS 附加组件。您也可以使用 AWS CloudFormation 创建 Amazon EKS 附加组件。

注意事项

使用 Amazon EKS 附加组件时应注意以下几点:

  • 要为集群配置附加组件,您的 IAM 主体必须具有 IAM 权限,以使用附加组件。如需了解更多信息,请参阅 Amazon Elastic Kubernetes Service 定义的操作 中的名称中带有 Addon 的操作。

  • Amazon EKS 附加组件能在您为集群预置或配置的节点上运行。节点类型包括 Amazon EC2 实例 、Fargate 和混合节点。

  • 您可以修改并非由 Amazon EKS 管理的字段以自定义 Amazon EKS 附加组件的安装。有关更多信息,请参阅 确定可以为 Amazon EKS 附加组件自定义的字段

  • 如果您使用 AWS Management Console 创建集群,则 Amazon EKS kube-proxy、Amazon VPC CNI plugin for Kubernetes 和 CoreDNS Amazon EKS 附加组件会自动添加到您的集群中。如果您借助 eksctl 使用 config 文件创建集群,则 eksctl 还可以使用 Amazon EKS 附加组件创建集群。如果使用不带有 config 文件的 eksctl 或使用任何其他工具创建集群,则自我管理的 kube-proxy、Amazon VPC CNI plugin for Kubernetes 和 CoreDNS 附加组件将会安装,而不会安装 Amazon EKS 附加组件。您可以自行管理,也可以在集群创建后手动添加 Amazon EKS 附加组件。无论您使用哪种方法创建集群,VPC CNI 附加组件都不会安装到混合节点上。

  • eks:addon-cluster-admin ClusterRoleBindingcluster-admin ClusterRole 绑定到 eks:addon-manager Kubernetes 身份。该角色拥有 eks:addon-manager 身份所需的权限,可以创建 Kubernetes 命名空间并将附加组件安装到命名空间中。如果删除 eks:addon-cluster-admin ClusterRoleBinding,Amazon EKS 集群将继续运行,但 Amazon EKS 将无法再管理任何附加组件。以下平台版本开头的所有集群都使用新的 ClusterRoleBinding

  • AWS 提供的部分 EKS 附加组件经过验证,可以与 Amazon EKS 混合节点功能兼容。有关更多信息,请参阅 AWS 附加组件中的兼容性表。

所需平台版本

参阅该表格,确定在集群中使用此功能所需的最低平台版本。您可以使用列出的平台版本或更新的平台版本。例如,假设表中列出了“eks.14”,则可以使用平台版本“eks.15”。有关更多信息,请参阅 查看每个 Kubernetes 版本的 Amazon EKS 平台版本

Kubernetes 版本 EKS 平台版本

1.25 或更新版本

所有平台版本

1.20

eks.12

1.21

eks.14

1.22

eks.9

1.23

eks.5

1.24

eks.3

Amazon EKS 自动模式的注意事项

Amazon EKS 自动模式包含了若干提供基本集群功能的功能,包括:

  • 容器组联网

  • 服务联网

  • 集群 DNS

  • 自动扩缩

  • 数据块存储

  • 负载均衡器控制器

  • 容器组身份代理

  • 节点监控代理

使用自动模式计算时,许多常用的 EKS 附加组件都变得多余,例如:

  • Amazon VPC CNI

  • kube-proxy

  • CoreDNS

  • Amazon EBS CSI 驱动程序

  • EKS 容器组身份代理

但是,如果集群将自动模式与其他计算选项(例如自主管理型 EC2 实例、托管式节点组或 AWS Fargate)结合使用,则这些附加组件仍然是必需的。AWS 使用反亲和性规则增强了 EKS 附加组件,可自动确保附加组件容器组仅在支持的计算类型上进行调度。此外,用户现在可以利用 EKS 附加组件 DescribeAddonVersions API,来验证每个附加组件及其特定版本支持的计算类型。此外,使用 EKS 自动模式时,上面列出的控制器是在 AWS 拥有的基础设施上运行的。因此,您可能不会在账户中看到这些控制器,除非您在其他类型的计算中使用 EKS 自动模式,对于后一种情况,您会看到在集群上安装的控制器。

如果您计划在现有集群上启用 EKS 自动模式,则可能需要升级某些附加组件的版本。有关更多信息,请参阅 EKS 自动模式的必需的附加组件版本

支持

AWS 会发布具有不同支持级别的多种附加组件。

  • AWS 附加组件:此类附加组件由 AWS 构建并提供全面支持。

    • 将 AWS 附加组件与其他 AWS 服务配合使用,例如 Amazon EFS。

    • 有关更多信息,请参阅 AWS 附加组件

  • AWS Marketplace 附加组件:此类附加组件经 AWS 扫描并由独立的 AWS 合作伙伴提供支持。

    • 使用 Marketplace 附加组件可为集群添加重要的复杂功能,例如使用 Splunk 进行监控。

    • 有关更多信息,请参阅 AWS Marketplace 附加组件

  • 社区附加组件:此类附加组件由 AWS 扫描,但由开源社区提供支持。

    • 使用社区附加组件可降低安装常用开源软件(例如 Kubernetes Metrics Server)的复杂性。

    • 有关更多信息,请参阅 社区附加组件

下表详细说明了每种附加组件类型的支持范围:

类别 功能 AWS 附加组件 AWS Marketplace 附加组件 社区附加组件

开发

由 AWS 构建

开发

经 AWS 验证

开发

经 AWS 合作伙伴验证

维护

经 AWS 扫描

支持

维护

由 AWS 修补

维护

由 AWS 合作伙伴修补

分配

由 AWS 发布

分配

由 AWS 合作伙伴发布

支持

由 AWS 提供基本安装支持

支持

支持

AWS 提供全面支持

支持

AWS 合作伙伴提供全面支持

AWS Marketplace 附加组件可能会从 AWS 之外的来源下载其他软件依赖项。这些外部依赖项未经 AWS 扫描或验证。在部署会获取外部依赖项的 AWS Marketplace 附加组件时,请注意您的安全要求。