帮助改进此页面
要帮助改进本用户指南,请选择位于每个页面右侧窗格中的在 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 迁移到托管功能,且停机时间为零:
-
更新自主管理型 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,从而允许托管功能与其协调。 -
在集群上创建 ACK 功能(请参阅创建 ACK 功能)
-
托管功能可识别出由 ACK 托管的 Amazon 现有资源,并接管协调工作
-
逐步缩减或移除自主管理型控制器部署:
helm uninstall ack-s3-controller --namespace ack-system
此方法允许两个控制器在迁移期间安全共存。托管功能会自动接管先前由自主管理型控制器托管的资源,确保持续协调且不发生冲突。