是否有可能在不重新创建集群的情况下使用tertransform在GKE上调整节点池磁盘大小?



是否有可能在不重新创建集群(首先删除,然后使用新设置再次创建)的情况下,使用Terraform在GKE上调整节点池磁盘大小?

我想在不重新创建集群和不停机的情况下自动迁移节点池的工作负载。

这是我升级集群时得到的输出,它正在杀死和重新创建整个节点池,我不希望这样。

你不能减少磁盘的大小,但是你可以创建一个更小的磁盘并将它们添加到新节点。

参考:

只能增加磁盘的大小,不能减少磁盘的大小。如果要减少磁盘大小,必须创建一个较小的新磁盘。在您删除原来的大磁盘之前,您需要为两个磁盘付费。

https://cloud.google.com/compute/docs/disks/resize-persistent-disk

编辑:如果你想增加磁盘,你可以用新的配置创建一个新的节点池,然后你必须封锁。排水(kubectl警戒线&排泄)旧节点池的所有节点,这样你就可以删除它而不会停机。

因此,为了安全地更改节点池的规格,必须创建第二个节点池并将所有工作负载移动到那里,然后删除旧的节点池。你可以按照@Enrique Tejada说的做。参考:https://cloud.google.com/kubernetes-engine/docs/tutorials/migrating-node-pool#step_4_migrate_the_workloads这是关于machine_type的,但似乎对于disk_size也是如此。目前,我正在使用terraform解决这个问题——我的任务是使上级能够通过更改源代码中的值来更改disk_size和machine_type,而无需重新创建集群。这似乎不可能。

这是一个类似的问题

减少GKE集群的引导磁盘大小

正如Enrique所说,你可以增大尺寸,但不能减小尺寸。

resource "google_compute_disk" "test-np5-data1" {
project = <project_id>
name = "disk"
type = "pd-standard"
zone = "us-central1-a"
size = 30
}

所以如果你想增加磁盘,你也可以用terraform来做。

增加磁盘大小后,您可能需要为节点增加文件系统

Ref: https://cloud.google.com/compute/docs/disks/resize-persistent-disk#resize_partitions

所以你可以使用execremote-execSSH到GKE

:

根据您的更新,您也在更新磁盘大小和机器类型,因此我建议先使用lifecycle创建,然后再删除。

lifecycle {
create_before_destroy = true
}

如果运行多个副本并正确分布,在迁移时不要忘记封锁和耗尽节点,这会很好。

最新更新