适用于 ACK 的 EKS 功能与自主管理型 ACK 功能的比较 - Amazon EKS
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

帮助改进此页面

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

适用于 ACK 的 EKS 功能与自主管理型 ACK 功能的比较

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

与上游 ACK 的区别

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

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

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

有关完整的 ACK 文档及针对具体服务的指南,请参阅 ACK 文档

迁移路径

您可以从自主管理型 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,从而允许托管功能与其协调。

  2. 在集群上创建 ACK 功能(请参阅创建 ACK 功能

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

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

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

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

后续步骤