

 **帮助改进此页面** 

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

# 适用于 ACK 的 EKS 功能与自主管理型 ACK 功能的比较
<a name="ack-comparison"></a>

适用于 ACK 的 EKS 功能提供了与自主管理型 ACK 控制器相同的功能，且具备显著的运营优势。有关 EKS 功能与自主管理型解决方案的总体比较，请参阅 [EKS 功能和注意事项](capabilities-considerations.md)。本主题将重点介绍 ACK 特有的差异。

## 与上游 ACK 的区别
<a name="_differences_from_upstream_ack"></a>

适用于 ACK 的 EKS 功能基于上游 ACK 控制器，但在 IAM 集成方面有所不同。

 **IAM 功能角色**：该功能将使用专用 IAM 角色，其信任策略允许 `capabilities.eks.amazonaws.com` 服务主体，而不允许 IRSA（用于服务账户的 IAM 角色）。您可以将 IAM 策略直接附加到功能角色，而无需创建 Kubernetes 服务账户或为其添加注释，也无需配置 OIDC 提供者。对于生产使用案例，最佳实践是使用 `IAMRoleSelector` 来配置服务权限。有关更多信息，请参阅[配置 ACK 权限](ack-permissions.md)。

 **会话标签**：托管功能会为所有 Amazon API 请求自动设置会话标签，从而实现精细的访问控制和审计。标签包括 `eks:eks-capability-arn`、`eks:kubernetes-namespace` 和 `eks:kubernetes-api-group`。这与自主管理的 ACK 有所不同，后者默认不设置这些标签。有关在 IAM 策略中使用会话标签的详细信息，请参阅 [配置 ACK 权限](ack-permissions.md)。

 **资源标签**：该功能为 Amazon 资源应用的默认标签与自主管理的 ACK 所应用的标签不同。该功能使用 `eks:` 前缀标签（例如 `eks:kubernetes-namespace`、`eks:eks-capability-arn`），而不是自主管理的 ACK 使用的 `services.k8s.aws/` 标签。有关默认资源标签的完整列表，请参阅 [针对 EKS 的 ACK 注意事项](ack-considerations.md)。

 **资源兼容性**：ACK 自定义资源的工作方式与上游 ACK 完全相同，您无需更改 ACK 资源 YAML 文件。该功能使用同一 Kubernetes API 和 CRD，因此 `kubectl` 等工具的使用方式将保持不变。支持上游 ACK 中所有已正式发布的控制器和资源。

有关完整的 ACK 文档及针对具体服务的指南，请参阅 [ACK 文档](https://aws-controllers-k8s.github.io/community/)。

## 迁移路径
<a name="_migration_path"></a>

您可以从自主管理型 ACK 迁移到托管功能，且停机时间为零：

1. 更新自主管理型 ACK 控制器，使其使用 `kube-system` 实现主节点选举租约，例如：

   ```
   helm upgrade --install ack-s3-controller \
     oci://public.ecr.aws/aws-controllers-k8s/s3-chart \
     --namespace ack-system \
     --set leaderElection.namespace=kube-system
   ```

   这会将控制器的租约移至 `kube-system`，从而允许托管功能与其协调。

1. 在集群上创建 ACK 功能（请参阅[创建 ACK 功能](create-ack-capability.md)）

1. 托管功能可识别出由 ACK 托管的 Amazon 现有资源，并接管协调工作

1. 逐步缩减或移除自主管理型控制器部署：

   ```
   helm uninstall ack-s3-controller --namespace ack-system
   ```

此方法允许两个控制器在迁移期间安全共存。托管功能会自动接管先前由自主管理型控制器托管的资源，确保持续协调且不发生冲突。

## 后续步骤
<a name="_next_steps"></a>
+  [创建 ACK 功能](create-ack-capability.md)：创建 ACK 功能资源
+  [ACK 概念](ack-concepts.md)：了解 ACK 概念和资源生命周期
+  [配置 ACK 权限](ack-permissions.md)：配置 IAM 和权限