帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 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。