将现有 GKE 集群添加到 terraform stat 文件

Posted

技术标签:

【中文标题】将现有 GKE 集群添加到 terraform stat 文件【英文标题】:Add existing GKE cluster to terraform stat file 【发布时间】:2021-10-15 00:36:46 【问题描述】:

假设我有一个现有的 GKE 集群,其中包含我的所有应用程序。它们都使用不同的方法进行部署。现在我想使用 Terraform 将一些资源部署到该集群。这里的问题是 terraform 在他的状态文件中看不到它,因此它无法与之交互。另一个问题是,即使我将该集群添加到我的状态文件中,terraform 也不会看到该集群中创建的所有资源。这可能会导致一些冲突,例如我正在尝试部署两个具有相同名称的资源。有没有办法解决这个问题,还是我只需要处理我存在的现实并为我使用 terraform 部署的每个新项目创建一个新集群?

【问题讨论】:

【参考方案1】:

您可以使用 terraform import command 将现有 GKE 集群导入到 terraform 状态。在运行它之前,您需要为您的集群进行足够的 terraform 配置。

导入命令示例:

terraform import google_container_cluster.<TF_RESOURCE_NAME> projects/<PROJECT_ID>/locations/<YOUR-CLUSTER-ZONE>/clusters/<CLUSTER_NAME>

对于 terraform 配置:

resource "google_container_cluster" "<TF_RESOURCE_NAME>" 
  name     = "<CLUSTER_NAME>"
  location = "<YOUR-CLUSTER-ZONE>"


CLUSTER_NAME 是您在 Google Cloud Console 上的 GKE 集群列表中显示的名称。

然后您还需要使用 terraform google_container_node_pool 资源以相同的方式导入集群节点池。

【讨论】:

以上是关于将现有 GKE 集群添加到 terraform stat 文件的主要内容,如果未能解决你的问题,请参考以下文章

在 GKE 集群上使用 Terraform 部署 Helm 工作负载

GKE Terraformed 集群发布通道设置

将谷歌云盔甲添加到 Terraform gke 和 kubernetes

Terraformed 私有 GKE 集群自动化访问

GKE terraform 的标签更改导致整个集群崩溃

在具有私有 GKE 集群的 Terraform 上使用 Kubernetes 提供程序