Valerio Uberti

许多团队使用 Terraform 提供 AWS 资源后继续使用它:Helm charts、命名空间、附加组件,甚至应用清单到 EKS 中。

这看起来很高效,但实际上这是模糊基础设施与平台边界的最快方式。

更好的模型最初可能不太方便:

  • 应用仓库存放源代码和构建;
  • 运维仓库存放 Terraform 和 GitOps 清单;
  • Terraform 仅负责 AWS 和 EKS 边界;
  • ArgoCD 负责集群内的一切。

真正的问题是生命周期不匹配。VPC、IAM 角色和节点组变化缓慢,而 Kubernetes 清单、平台附加组件和镜像标签变化频繁。将两层都通过 Terraform 管理,会把基础设施供应变成发布引擎。

问题由此产生:

  • 应用部署会继承基础设施风险;
  • 回滚比应有的更重;
  • Terraform 和 ArgoCD 可能对同一集群状态产生冲突;
  • CI 流水线需要本不应拥有的集群凭证。

我在这里写下了完整分析,包括仓库结构、Terraform 示例、ArgoCD 清单以及确切的部署流程:

👉 阅读完整文章