AWS 附加组件 - Amazon EKS

帮助改进此页面

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

AWS 附加组件

可在您的集群上创建以下 Amazon EKS 附加组件。您可以使用 eksctl、AWS Management Console或 AWS CLI 查看可用附加组件的最新列表。要查看所有可用附加组件或安装附加组件,请参阅 创建 Amazon EKS 附加组件。如果附加组件需要 IAM 权限,则集群必须具有 IAM OpenID Connect(OIDC)提供商。要确定是否具有一个提供商,还是创建一个提供商,请参阅 为集群创建 IAM OIDC 提供商。安装附加组件后,您可以对其进行创建或将其删除。有关更多信息,请参阅更新 Amazon EKS 附加组件从集群中移除 Amazon EKS 附加组件。要详细了解有关使用 Amazon EKS 混合节点功能运行 EKS 附加组件的特定注意事项,请参阅为混合节点配置附加组件

您可以使用以下任何 Amazon EKS 附加组件。

描述 了解更多 兼容的计算类型

为集群提供原生 VPC 联网

适用于 Kubernetes 的 Amazon VPC CNI 插件

EC2

灵活、可扩展的 DNS 服务器,可用作 Kubernetes 集群 DNS

CoreDNS

EC2、Fargate、EKS 自动模式、Amazon EKS 混合节点功能

在每个 Amazon EC2 节点上维护网络规则

Kube-proxy

EC2、Amazon EKS 混合节点功能

为集群提供 Amazon EBS 存储

Amazon EBS CSI 驱动程序

EC2

为集群提供 Amazon EFS 存储

Amazon EFS CSI 驱动程序

EC2、EKS 自动模式

为集群提供 Amazon S3 存储

适用于 Amazon S3 的 Mountpoint CSI 驱动程序

EC2、EKS 自动模式

检测其他节点运行状况问题

节点监控代理

EC2

实现在兼容的 CSI 驱动程序(例如 Amazon EBS CSI 驱动程序)中使用快照功能

CSI 快照控制器

EC2、Fargate、EKS 自动模式、Amazon EKS 混合节点功能

SageMaker HyperPod 任务监管可优化 Amazon EKS 集群中各团队的计算资源分配和使用情况,从而解决任务优先级划分和资源共享效率低下的问题。

Amazon SageMaker HyperPod 任务监管

EC2、EKS 自动模式、

一种 Kubernetes 代理程序,用于收集网络流量数据并将其报告给 Amazon CloudWatch,从而全面监控集群节点之间的 TCP 连接。

AWS Network Flow Monitor Agent

EC2、EKS 自动模式

OpenTelemetry 项目的安全、生产就绪型发行版,由 AWS 提供支持

适用于 OpenTelemetry 的 AWS Distro

EC2、Fargate、EKS 自动模式、Amazon EKS 混合节点功能

用于分析和处理基础数据源的安全监控服务,包括 AWS CloudTrail 管理事件和 Amazon VPC 流日志等。Amazon GuardDuty 还处理 Kubernetes 审计日志和运行时监控等功能

Amazon GuardDuty 代理

EC2、EKS 自动模式

AWS 提供的监控和可观测性服务。此附加组件将会安装 CloudWatch 代理,并启用 CloudWatch Application Signals 和 CloudWatch Container Insights,从而增强 Amazon EKS 的可观测性

Amazon CloudWatch 可观测性代理

EC2、EKS 自动模式、Amazon EKS 混合节点功能

能够用于管理应用程序凭证,类似于 EC2 实例配置文件为 EC2 实例提供凭证的方式

EKS 容器组身份代理

EC2、Amazon EKS 混合节点功能

适用于 Kubernetes 的 Amazon VPC CNI 插件

Amazon VPC CNI plugin for Kubernetes Amazon EKS 附加组件是一种 Kubernetes 容器网络接口(CNI)插件,为集群提供原生 VPC 联网功能。默认情况下,在每个 Amazon EC2 节点上安装自行管理的或托管类型的附加组件。有关更多信息,请参阅 Kubernetes 容器网络接口(CNI)插件

注意

您无需在 Amazon EKS 自动模式集群上安装此附加组件。有关更多信息,请参阅 Amazon EKS 自动模式的注意事项

Amazon EKS 附加组件名称为 vpc-cni

所需的 IAM 权限

此附加组件使用 Amazon EKS 的服务账户 IAM 角色功能。有关更多信息,请参阅 服务账户的 IAM 角色

如果集群使用 IPv4 系列,则需要 AmazonEKS_CNI_Policy 中的权限。如果集群使用 IPv6 系列,则必须使用 IPv6 模式中的权限创建 IAM 策略。您可以创建 IAM 角色,将其中一个策略附加到该角色,并使用以下命令为附加组件使用的 Kubernetes 服务账户添加注释。

my-cluster 替换为集群名称,并将 AmazonEKSVPCCNIRole 替换为角色名称。如果集群使用 IPv6 系列,则将 AmazonEKS_CNI_Policy 替换为您创建的策略名称。此命令要求您为您的设备安装 eksctl。如果您需要使用其他工具来创建角色、将策略附加到该角色并为 Kubernetes 服务账户添加注释,请参阅 为 Kubernetes 服务账户分配 IAM 角色

eksctl create iamserviceaccount --name aws-node --namespace kube-system --cluster my-cluster --role-name AmazonEKSVPCCNIRole \ --role-only --attach-policy-arn arn:aws:iam::aws:policy/AmazonEKS_CNI_Policy --approve

更新信息

您一次只能更新一个次要版本。例如,如果当前版本为 1.28.x-eksbuild.y ,并且您想要更新到 1.30.x-eksbuild.y ,则必须首先更新到 1.29.x-eksbuild.y ,再更新到 1.30.x-eksbuild.y 。有关更新附加组件的更多信息,请参阅 更新 Amazon VPC CNI(Amazon EKS 附加组件)

CoreDNS

CoreDNS Amazon EKS 附加组件是一个灵活、可扩展的 DNS 服务器,可用作 Kubernetes 集群 DNS。默认情况下,创建集群时会安装自行管理或托管类型的附加组件。当您启动具有至少一个节点的 Amazon EKS 集群时,无论集群中部署的节点数量如何,预设情况下都会部署 CoreDNS 镜像的两个副本。这些 CoreDNS Pods 为集群中的所有 Pods 提供名称解析。如果集群包含命名空间与 CoreDNS 部署的命名空间相匹配的 fargate 配置文件,则可以将 CoreDNS Pods 部署到 Fargate 节点。有关更多信息,请参阅 定义启动时将使用 AWS Fargate 的Pods

注意

您无需在 Amazon EKS 自动模式集群上安装此附加组件。有关更多信息,请参阅 Amazon EKS 自动模式的注意事项

Amazon EKS 附加组件名称为 coredns

所需的 IAM 权限

此附加组件不需要任何权限。

其他信息

要了解有关 CoreDNS 的更多信息,请参阅 Kubernetes 文档中的 Using CoreDNS for Service DiscoveryCustomizing DNS Service

Kube-proxy

Kube-proxy Amazon EKS 附加组件在每个 Amazon EC2 节点上维护网络规则。它可以实现与 Pods 的网络通信。默认情况下,在集群中的每个 Amazon EC2 节点上安装自行管理或托管类型的附加组件。

注意

您无需在 Amazon EKS 自动模式集群上安装此附加组件。有关更多信息,请参阅 Amazon EKS 自动模式的注意事项

Amazon EKS 附加组件名称为 kube-proxy

所需的 IAM 权限

此附加组件不需要任何权限。

更新信息

在更新当前版本之前,请注意以下要求:

其他信息

要了解有关 kube-proxy 的更多信息,请参阅 Kubernetes 文档中的 kube-proxy

Amazon EBS CSI 驱动程序

Amazon EBS CSI 驱动程序 Amazon EKS 附加组件是一种 Kubernetes 容器存储接口(CSI)插件,为集群提供 Amazon EBS 存储。

注意

您无需在 Amazon EKS 自动模式集群上安装此附加组件。自动模式包含块存储功能。有关更多信息,请参阅 将示例有状态工作负载部署到 EKS 自动模式

Amazon EKS 附加组件名称为 aws-ebs-csi-driver

所需的 IAM 权限

此附加组件使用 Amazon EKS 的服务账户 IAM 角色功能。有关更多信息,请参阅 服务账户的 IAM 角色AmazonEBSCSIDriverPolicy AWS 托管策略中的权限是必需的。您可以使用以下命令创建 IAM 角色并将托管策略附加到其上。将 my-cluster 替换为您的集群的名称,并将 AmazonEKS_EBS_CSI_DriverRole 替换为您的角色的名称。此命令要求您为您的设备安装 eksctl。如果您需要使用其他工具或需要使用自定义 KMS 密钥进行加密,请参阅 步骤 1:创建 IAM 角色

eksctl create iamserviceaccount \ --name ebs-csi-controller-sa \ --namespace kube-system \ --cluster my-cluster \ --role-name AmazonEKS_EBS_CSI_DriverRole \ --role-only \ --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEBSCSIDriverPolicy \ --approve

其他信息

要了解有关此附加组件的更多信息,请参阅 使用 Amazon EBS 存储 Kubernetes 卷

Amazon EFS CSI 驱动程序

Amazon EFS CSI 驱动程序 Amazon EKS 附加组件是一种 Kubernetes 容器存储接口(CSI)插件,为集群提供 Amazon EFS 存储。

Amazon EKS 附加组件名称为 aws-efs-csi-driver

所需的 IAM 权限

必需的 IAM 权限 – 此附加组件使用 Amazon EKS 的服务账户的 IAM 角色功能。有关更多信息,请参阅 服务账户的 IAM 角色AmazonEFSCSIDriverPolicy AWS 托管策略中的权限是必需的。您可以使用以下命令创建 IAM 角色并为其附加托管式策略。将 my-cluster 替换为您的集群的名称,并将 AmazonEKS_EFS_CSI_DriverRole 替换为您的角色的名称。这些命令要求您的设备事先安装 eksctl。如果您需要使用其他工具,请参阅 步骤 1:创建 IAM 角色

export cluster_name=my-cluster export role_name=AmazonEKS_EFS_CSI_DriverRole eksctl create iamserviceaccount \ --name efs-csi-controller-sa \ --namespace kube-system \ --cluster $cluster_name \ --role-name $role_name \ --role-only \ --attach-policy-arn arn:aws:iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \ --approve TRUST_POLICY=$(aws iam get-role --role-name $role_name --query 'Role.AssumeRolePolicyDocument' | \ sed -e 's/efs-csi-controller-sa/efs-csi-*/' -e 's/StringEquals/StringLike/') aws iam update-assume-role-policy --role-name $role_name --policy-document "$TRUST_POLICY"

其他信息

要了解有关此附加组件的更多信息,请参阅 使用 Amazon EFS 存储弹性文件系统

适用于 Amazon S3 的 Mountpoint CSI 驱动程序

适用于 Amazon S3 CSI 驱动程序的 Mountpoint Amazon EKS 附加组件是一种 Kubernetes 容器存储接口(CSI)插件,为集群提供 Amazon S3 存储。

Amazon EKS 附加组件名称为 aws-mountpoint-s3-csi-driver

所需的 IAM 权限

此附加组件使用 Amazon EKS 的服务账户 IAM 角色功能。有关更多信息,请参阅 服务账户的 IAM 角色

创建的 IAM 角色需要一个允许访问 S3 的策略。创建策略时,请遵循 Mountpoint IAM 权限建议。或者,您可以使用 AWS 托管策略 AmazonS3FullAccess,但此托管策略授予的权限超出了 Mountpoint 所需的权限。

您可以使用以下命令创建 IAM 角色,并为其附加策略。将 my-cluster 替换为您的集群的名称,将 region-code 替换为正确的 AWS 区域代码,将 AmazonEKS_S3_CSI_DriverRole 替换为您的角色的名称,并将 AmazonEKS_S3_CSI_DriverRole_ARN 替换为角色 ARN。这些命令要求您的设备事先安装 eksctl。有关如何使用 IAM 控制台或 AWS CLI 的说明,请参阅创建 IAM 角色

CLUSTER_NAME=my-cluster REGION=region-code ROLE_NAME=AmazonEKS_S3_CSI_DriverRole POLICY_ARN=AmazonEKS_S3_CSI_DriverRole_ARN eksctl create iamserviceaccount \ --name s3-csi-driver-sa \ --namespace kube-system \ --cluster $CLUSTER_NAME \ --attach-policy-arn $POLICY_ARN \ --approve \ --role-name $ROLE_NAME \ --region $REGION \ --role-only

其他信息

要了解有关此附加组件的更多信息,请参阅 使用适用于 Amazon S3 的 Mountpoint CSI 驱动程序访问适用于 Amazon S3 对象

CSI 快照控制器

借助容器存储接口(CSI)快照控制器,可以在 Amazon EBS CSI 驱动程序等兼容的 CSI 驱动程序中使用快照功能。

Amazon EKS 附加组件名称为 snapshot-controller

所需的 IAM 权限

此附加组件不需要任何权限。

其他信息

要了解有关此附加组件的更多信息,请参阅 为 CSI 卷启用快照功能

Amazon SageMaker HyperPod 任务监管

SageMaker HyperPod 任务监管是一个强大的管理系统,旨在简化资源分配,并确保团队和项目高效利用 Amazon EKS 集群计算资源。这为管理员提供了设置以下方面的功能:

  • 各种任务的优先级别

  • 各个团队的计算分配

  • 各个团队如何借出和借用闲置计算

  • 某个团队是否抢占了自己的任务

HyperPod 任务监管还提供 Amazon EKS 集群可观测性功能,从而实现对集群容量的实时可见性。这包括计算可用性和使用情况、团队分配和利用率以及任务运行和等待时间信息,使您能够做出明智的决策以及主动进行资源管理。

Amazon EKS 附加组件名称为 amazon-sagemaker-hyperpod-taskgovernance

所需的 IAM 权限

此附加组件不需要任何权限。

其他信息

要了解有关该附加组件的更多信息,请参阅 SageMaker HyperPod 任务监管

AWS Network Flow Monitor Agent

Amazon CloudWatch Network Flow Monitor Agent 是一款 Kubernetes 应用程序,可从集群中的所有节点收集 TCP 连接统计数据,并将网络流量报告发布到 Amazon CloudWatch Network Flow Monitor Ingestion API。

Amazon EKS 附加组件名称为 aws-network-flow-monitoring-agent

所需的 IAM 权限

此附加组件需要 IAM 权限。

您需要向此附加组件附加 CloudWatchNetworkFlowMonitorAgentPublishPolicy 托管式策略 。

有关所需 IAM 设置的更多信息,请参阅 Amazon CloudWatch Network Flow Monitor Agent GitHub 存储库中的 IAM Policy

有关此托管式策略的更多信息,请参阅《Amazon CloudWatch 用户指南》中的 CloudWatchNetworkFlowMonitorAgentPublishPolicy

其他信息

要了解有关此附加组件的更多信息,请参阅 Amazon CloudWatch Network Flow Monitor Agent GitHub 存储库

节点监控代理

节点监控代理 Amazon EKS 附加组件可以检测其他的节点运行状况问题。可选的节点自动修复功能也可以利用这些额外的运行状况信号,根据需要自动替换节点。

注意

您无需在 Amazon EKS 自动模式集群上安装此附加组件。有关更多信息,请参阅 Amazon EKS 自动模式的注意事项

Amazon EKS 附加组件名称为 eks-node-monitoring-agent

所需的 IAM 权限

此附加组件不需要额外的权限。

其他信息

有关更多信息,请参阅 启用节点自动修复并调查节点运行状况问题

适用于 OpenTelemetry 的 AWS Distro

适用于 OpenTelemetry 的 AWS Distro Amazon EKS 是 OpenTelemetry 项目的安全、受 AWS 支持的生产就绪型发行版。有关更多信息,请参阅 GitHub 上的 AWS Distro for OpenTelemetry

Amazon EKS 附加组件名称为 adot

所需的 IAM 权限

仅在使用可通过高级配置选择加入的预配置自定义资源时,此附加组件才需要 IAM 权限。

其他信息

有关更多信息,请参阅适用于 OpenTelemetry 的 AWS Distro 文档中的使用 EKS 插件且适用于 OpenTelemetry 的 AWS Distro 入门

ADOT 要求将 cert-manager 作为先决条件部署在集群上,否则如果使用 https://registry.terraform.io/modules/terraform-aws-modules/eks/aws/latest cluster_addons 属性直接部署,此附加组件将无法运行。有关更多要求,请参阅适用于 OpenTelemetry 的 AWS Distro 文档中的使用 EKS 插件且适用于 OpenTelemetry 的 AWS Distro 入门要求

Amazon GuardDuty 代理

Amazon GuardDuty 代理 Amazon EKS 附加组件是一项安全监控服务,用于分析和处理基础数据源,包括 AWS CloudTrail 管理事件和 Amazon VPC 流日志等。Amazon GuardDuty 还处理 Kubernetes 审计日志和运行时监控等功能

Amazon EKS 附加组件名称为 aws-guardduty-agent

所需的 IAM 权限

此附加组件不需要任何权限。

其他信息

有关更多信息,请参阅 Runtime Monitoring for Amazon EKS clusters in Amazon GuardDuty

  • 要检测 Amazon EKS 集群中的潜在安全威胁,请启用 Amazon GuardDuty 运行时监控,然后将 GuardDuty 安全代理部署到您的 Amazon EKS 集群。

Amazon CloudWatch 可观测性代理

Amazon CloudWatch 可观测性代理 Amazon EKS 附加组件是由 AWS 提供的监控和可观测性服务。此插件将安装 CloudWatch 代理,并启用 CloudWatch Application Signals 和 CloudWatch Container Insights,从而增强 Amazon EKS 的可观测性。有关更多信息,请参阅 Amazon CloudWatch 代理

Amazon EKS 附加组件名称为 amazon-cloudwatch-observability

所需的 IAM 权限

此附加组件使用 Amazon EKS 的服务账户 IAM 角色功能。有关更多信息,请参阅 服务账户的 IAM 角色AWSXrayWriteOnlyAccessCloudWatchAgentServerPolicy AWS 托管策略中的权限是必需的。您可以创建 IAM 角色,将托管策略附加到该角色,并使用以下命令为附加组件使用的 Kubernetes 服务账户添加注释。将 my-cluster 替换为您的集群的名称,并将 AmazonEKS_Observability_role 替换为您的角色的名称。此命令要求您为您的设备安装 eksctl。如果您需要使用其他工具来创建角色、将策略附加到该角色并为 Kubernetes 服务账户添加注释,请参阅 为 Kubernetes 服务账户分配 IAM 角色

eksctl create iamserviceaccount \ --name cloudwatch-agent \ --namespace amazon-cloudwatch \ --cluster my-cluster \ --role-name AmazonEKS_Observability_Role \ --role-only \ --attach-policy-arn arn:aws:iam::aws:policy/AWSXrayWriteOnlyAccess \ --attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \ --approve

其他信息

有关更多信息,请参阅安装 CloudWatch 代理

EKS 容器组身份代理

Amazon EKS 容器组身份代理 Amazon EKS 附加组件提供了管理应用程序凭证的功能,类似于 EC2 实例配置文件为 EC2 实例提供凭证的方式。

注意

您无需在 Amazon EKS 自动模式集群上安装此附加组件。Amazon EKS 自动模式与 EKS 容器组身份集成。有关更多信息,请参阅 Amazon EKS 自动模式的注意事项

Amazon EKS 附加组件名称为 eks-pod-identity-agent

所需的 IAM 权限

此附加组件使用来自 Amazon EKS 节点 IAM 角色的权限。

更新信息

您一次只能更新一个次要版本。例如,如果当前版本为 1.28.x-eksbuild.y,并且您想要更新到 1.30.x-eksbuild.y,则必须首先更新到 1.29.x-eksbuild.y,再更新到 1.30.x-eksbuild.y。有关更新附加组件的更多信息,请参阅 更新 Amazon VPC CNI(Amazon EKS 附加组件)