来自 AWS 的 Amazon EKS 附加组件 - Amazon EKS

帮助改进此页面

想为本用户指南做出贡献? 滚动到页面底部,然后选择在 GitHub 上编辑此页面。您的贡献有助于我们的用户指南为每个人提供更充分的参考。

来自 AWS 的 Amazon EKS 附加组件

可在您的集群上创建以下 Amazon EKS 附加组件。您可以使用 eksctl、AWS Management Console或 AWS CLI 查看可用附加组件的最新列表。要查看所有可用附加组件或安装附加组件,请参阅 创建 Amazon EKS 附加组件。如果附加组件需要 IAM 权限,则集群必须具有 IAM OpenID Connect(OIDC)提供商。要确定是否具有一个提供商,还是创建一个提供商,请参阅 为集群创建 IAM OIDC 提供商。安装附加组件后,您可以对其进行更新或将其删除

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

描述 了解更多

为集群提供原生 VPC 联网

Amazon VPC CNI plugin for Kubernetes

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

CoreDNS
在每个 Amazon EC2 节点上维护网络规则 Kube-proxy
为集群提供 Amazon EBS 存储 Amazon EBS CSI 驱动程序
为集群提供 Amazon EFS 存储 Amazon EFS CSI 驱动程序
为集群提供 Amazon S3 存储 适用于 Amazon S3 的 Mountpoint CSI 驱动程序
实现在兼容的 CSI 驱动程序(例如 Amazon EBS CSI 驱动程序)中使用快照功能 CSI 快照控制器
OpenTelemetry 项目的安全、生产就绪型发行版,由 AWS 提供支持 适用于 OpenTelemetry 的 AWS Distro
用于分析和处理基础数据源的安全监控服务,包括 AWS CloudTrail 管理事件和 Amazon VPC 流日志等。Amazon GuardDuty 还处理 Kubernetes 审计日志和运行时监控等功能 Amazon GuardDuty 代理
AWS 提供的监控和可观测性服务。此附加组件将会安装 CloudWatch 代理,并启用 CloudWatch Application Signals 和 CloudWatch Container Insights,从而增强 Amazon EKS 的可观测性 Amazon CloudWatch 可观测性代理
能够用于管理应用程序凭证,类似于 EC2 实例配置文件为 EC2 实例提供凭证的方式 EKS 容器组身份代理

Amazon VPC CNI plugin for Kubernetes

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

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

所需的 IAM 权限

此附加组件使用 Amazon EKS 的服务账户 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.29.x-eksbuild.y,并且您想要更新到 1.31.x-eksbuild.y,则必须首先更新到 1.30.x-eksbuild.y,再更新到 1.31.x-eksbuild.y。有关更新附加组件的更多信息,请参阅 更新 Amazon VPC CNI plugin for Kubernetes Amazon EKS 附加组件

CoreDNS

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

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 附加组件名称为 kube-proxy

所需的 IAM 权限

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

更新信息

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

其他信息

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

Amazon EBS CSI 驱动程序

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

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

所需的 IAM 权限

此附加组件使用 Amazon EKS 的服务账户 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 角色功能。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 角色需要一个允许访问 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 卷启用快照功能

适用于 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 作为先决条件部署在集群上,否则如果使用 Amazon EKS Terraform 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 角色功能。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 附加组件名称为 eks-pod-identity-agent

所需的 IAM 权限

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

更新信息

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