使用Terraform和Argo CD管理Kubernetes集群 - piotr


在本文中,您将学习如何使用 Terraform 创建 Kubernetes 集群,然后使用 Argo CD 对其进行管理。Terraform 对于自动化基础设施非常有用。另一方面,Argo CD 帮助我们为我们的应用程序实施 GitOps 和持续交付。看来我们可以成功地结合这两种工具。让我们考虑一下它们如何帮助我们以 GitOps 风格使用 Kubernetes。

首先,我想定义整个集群并将其配置存储在 Git 中。我不能只使用 Argo CD 来实现它,因为 Argo CD 必须在现有的 Kubernetes 集群上运行。这就是为什么我需要一个能够创建集群然后在那里安装 Argo CD 的工具。在这种情况下,Terraform 似乎是一个自然的选择。另一方面,我不想使用 Terraform 来管理在 Kubernetes 上运行的应用程序。它非常适合创建集群等一次性活动,但不适用于应用交付和配置管理等持续任务。
这是我们要做的事情的清单:

  1. 第一步,我们将使用 Terraform 创建一个本地 Kubernetes 集群
  2. 然后我们将在集群上安装 OLM(Operator Lifecycle Manager)。我们需要它来使用 Strimzi 安装 Kafka(步骤 5)
  3. 我们将使用 Terraform 从 Helm chart 安装 Argo CD,并创建一个 Argo CDApplication负责基于 Git 的整个集群配置
  4. 之后,Argo CDApplication安装 Strimzi Operator,创建Project专用于 Kafka 安装的 Argo CD 和Application在 Kubernetes 上运行 Kafka 的Argo CD
  5. 最后,Argo CD 应用程序会自动创建运行 Kafka 所需的所有 CRD 对象

这里最重要的是,一切都应该在运行terraform apply命令之后发生。Terraform 安装 Argo CD,然后 Argo CD 安装 Kafka,这是我们在该场景中的示例应用程序。让我们看看它是如何工作的。

源代码
如果您想自己尝试一下,可以随时查看我的源代码。为此,您需要克隆我的 GitHub 存储库。之后,您应该按照我的指示进行操作。让我们开始。

后续具体步骤点击标题