使用 eksctl 创建 ACK 功能 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

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

使用 eksctl 创建 ACK 功能

本主题将介绍如何使用 eksctl 创建 Amazon Controllers for Kubernetes(ACK)功能。

注意

以下步骤需要 eksctl 版本 0.220.0 或更高版本。要检查版本,请运行 eksctl version

步骤 1:创建 IAM 功能角色

创建信任策略文件:

cat > ack-trust-policy.json << 'EOF' { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "capabilities.eks.amazonaws.com" }, "Action": [ "sts:AssumeRole", "sts:TagSession" ] } ] } EOF

创建 IAM 角色:

aws iam create-role \ --role-name ACKCapabilityRole \ --assume-role-policy-document file://ack-trust-policy.json

AdministratorAccess 托管式策略附加到角色:

aws iam attach-role-policy \ --role-name ACKCapabilityRole \ --policy-arn arn:aws:iam::aws:policy/AdministratorAccess
重要

建议的 AdministratorAccess 策略授予了广泛权限,旨在简化入门流程。对于生产用途,请将其替换为自定义策略,该策略仅授予您计划通过 ACK 管理的特定 Amazon 服务所需的权限。有关创建最低权限策略的指导,请参阅配置 ACK 权限EKS 功能的安全注意事项

重要

此策略通过 "Resource": "*" 授予 S3 存储桶管理权限,允许对所有 S3 存储桶进行操作。

用于生产用途:* 将 Resource 字段限制为特定的存储桶 ARN 或名称模式 * 使用 IAM 条件键通过资源标签限制访问权限 * 仅授予使用案例所需的最低权限

有关其他 Amazon 服务,请参阅配置 ACK 权限

将该策略附加到角色:

aws iam attach-role-policy \ --role-name ACKCapabilityRole \ --policy-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):policy/ACKS3Policy

步骤 2:创建 ACK 功能

使用 eksctl 创建 ACK 功能。将 region-code 替换为您的集群所在的 Amazon 区域,并将 my-cluster 替换为您的集群的名称。

eksctl create capability \ --cluster [.replaceable]`my-cluster` \ --region [.replaceable]`region-code` \ --name ack \ --type ACK \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ACKCapabilityRole \ --ack-service-controllers s3
注意

--ack-service-controllers 标记是可选的。如果省略,ACK 将启用所有可用的控制器。为了获得更好的性能和安全性,请考虑仅启用所需的控制器。您可以指定多个控制器,例如:--ack-service-controllers s3,rds,dynamodb

命令会立即返回,但该功能需要一些时间才能变为活动状态。

步骤 3:验证功能是否处于活动状态

检查功能状态:

eksctl get capability \ --cluster [.replaceable]`my-cluster` \ --region [.replaceable]`region-code` \ --name ack

当状态显示为 ACTIVE 时,表示功能已准备就绪。

步骤 4:验证自定义资源是否可用

功能激活后,验证 ACK 自定义资源是否已在集群中可用:

kubectl api-resources | grep services.k8s.aws

您应该会看到列出的多个用于 Amazon 资源的 API。

注意

Amazon Controllers for Kubernetes 功能将为各种 Amazon 资源安装大量 CRD。

后续步骤