许多团队使用 Terraform 提供 AWS 资源后继续使用它:Helm charts、命名空间、附加组件,甚至应用清单到 EKS 中。
这看起来很高效,但实际上这是模糊基础设施与平台边界的最快方式。
更好的模型最初可能不太方便:
- 应用仓库存放源代码和构建;
- 运维仓库存放 Terraform 和 GitOps 清单;
- Terraform 仅负责 AWS 和 EKS 边界;
- ArgoCD 负责集群内的一切。
真正的问题是生命周期不匹配。VPC、IAM 角色和节点组变化缓慢,而 Kubernetes 清单、平台附加组件和镜像标签变化频繁。将两层都通过 Terraform 管理,会把基础设施供应变成发布引擎。
问题由此产生:
- 应用部署会继承基础设施风险;
- 回滚比应有的更重;
- Terraform 和 ArgoCD 可能对同一集群状态产生冲突;
- CI 流水线需要本不应拥有的集群凭证。
我在这里写下了完整分析,包括仓库结构、Terraform 示例、ArgoCD 清单以及确切的部署流程:
👉 阅读完整文章
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.