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

帮助改进此页面

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

使用 Amazon CLI 创建 ACK 功能

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

先决条件

  • Amazon CLI:版本 2.12.3 或更高版本。要检查版本,请运行 aws --version。有关更多信息,请参阅《Amazon 命令行界面用户指南》中的安装

  • kubectl:用于与 Kubernetes 集群结合使用的命令行工具。有关更多信息,请参阅 设置 kubectl 和 eksctl

步骤 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 功能的安全注意事项

步骤 2:创建 ACK 功能

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

aws eks create-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-ack \ --type ACK \ --role-arn arn:aws:iam::$(aws sts get-caller-identity --query Account --output text):role/ACKCapabilityRole \ --delete-propagation-policy RETAIN

命令会立即返回,但是由于 EKS 正在创建所需的功能基础设施和组件,该功能需要一些时间才能变为活动状态。在创建集群时,EKS 将在集群中安装与此功能相关的 Kubernetes 自定义资源定义。

注意

如果收到集群不存在或您没有权限的错误消息,请验证:

  • 集群名称是否正确

  • Amazon CLI 是否针对正确的区域进行配置

  • 您是否拥有所需的 IAM 权限

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

等待功能变为活动状态。将 region-code 替换为您的集群所在的 Amazon 区域,并将 my-cluster 替换为您的集群的名称。

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-ack \ --query 'capability.status' \ --output text

当状态显示为 ACTIVE 时,表示功能已准备就绪。在该状态变为 ACTIVE 之前,请勿继续执行下一步。

您也可以查看完整功能详细信息:

aws eks describe-capability \ --region region-code \ --cluster-name my-cluster \ --capability-name my-ack

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

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

kubectl api-resources | grep services.k8s.aws

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

注意

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

后续步骤