使用相同的 terraform 项目创建 Kubernetes 基础设施并部署应用程序

问题描述 投票:0回答:1

我想要一个包含 2 个模块基础设施和应用程序的 terraform 项目。 是否可以使用 Infrstruction 模块创建实例并安装 Kubernetes 并检索 kube-config 文件并将其传递给第二个模块来部署应用程序?

这是一个好方法吗?或者我需要将其移动到 2 个不同的项目吗?

kubernetes terraform
1个回答
0
投票

虽然在技术上可以使用具有两个模块(基础设施和应用程序)的单个 Terraform 项目,但这种方法可能并不理想。 更好的方法是使用 Terraform 设置 Kubernetes 集群,该模块的输出是 kubeconfig 文件。 然后,您可以将此 kubeconfig 文件与更适合应用程序部署的工具结合使用,例如 Helm Charts、Kustomize 或 Argo CD。

使用 Terraform 进行应用程序部署会导致管理资源状态的复杂性。 Terraform 将资源视为不可变的,但 Kubernetes 资源经常需要更新(例如滚动部署),这可能与 Terraform 的模型发生冲突。

此外,将代码分成两个独立的工作流程将提高安全性,并帮助您将应用程序生命周期与基础设施生命周期分离,基础设施生命周期的演变应该有不同的节奏。

© www.soinside.com 2019 - 2024. All rights reserved.