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

Posted

技术标签:

【中文标题】GKE terraform 的标签更改导致整个集群崩溃【英文标题】:Label change of GKE terraform brought down entire cluster 【发布时间】:2020-04-13 09:17:24 【问题描述】:

我对 GKE 上的节点池的 terraform 代码进行了更改,我只更改了与节点池关联的标签,然后它拆除了整个集群(包括主集群)并重新创建了它。现在,每次我尝试对集群进行更改时,无论大小,terraform 都希望拆除并重新创建整个集群。

我们使用 Terraform Cloud 来管理集群。

我在几个实例组的提交中做了这样的事情:

labels = 
-       role = "nodes"
+       "kops.k8s.io/instancegroup" = "nodes"

这些是相应地形计划的前几行:

An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
-/+ destroy and then create replacement

Terraform will perform the following actions:

  # module.kubernetes.google_container_cluster.master must be replaced
-/+ resource "google_container_cluster" "master" 

我能想到的唯一可能导致此问题的事情是,我之前的一些提交修改了实例组的范​​围,以便它们可以从 Google 存储中读取和写入,但这些更改已应用于所有实例集群中的组。

找到解决方案:

上面描述的是与此人类似的问题: https://github.com/gruntwork-io/terraform-google-gke/issues/59

解决方案是将ignore_changes 添加到我们的主配置中,如下所示: https://github.com/gruntwork-io/terraform-google-gke/pull/60/files

【问题讨论】:

你能把你的编辑变成答案吗 正如我的@Patrick 建议的那样,请随时提供您的解决方案作为答案,以便其他社区成员可以利用它。 【参考方案1】:

我将我的编辑放入这个答案:

上面描述的是与此人类似的问题:https://github.com/gruntwork-io/terraform-google-gke/issues/59

解决方案是将 ignore_changes 添加到我们的主配置中,如下所示:https://github.com/gruntwork-io/terraform-google-gke/pull/60/files

【讨论】:

以上是关于GKE terraform 的标签更改导致整个集群崩溃的主要内容,如果未能解决你的问题,请参考以下文章

如何在terraform中更改GKE Cluster的节点池中的节点名称?

使用 terraform 将公共 GKE 更改为私有 GKE 集群

Terraformed 私有 GKE 集群自动化访问

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

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

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