簡體   English   中英

是否可以在不重新創建集群的情況下使用 terraform 在 GKE 上調整節點池磁盤大小?

[英]Is it possible to resize a node pool disk size on GKE with terraform whitout recreating the cluster?

是否可以使用 Terraform 在 GKE 上調整節點池磁盤大小而不重新創建(首先刪除,然后使用新設置再次創建)集群?

我想使用工作負載自動遷移節點池,而無需重新創建集群且無需任何停機時間。

這是我在升級集群時得到的 output,它正在殺死並重新創建整個節點池,我不希望這樣。

您不能減小磁盤大小,但可以創建一個更小的新磁盤並將它們添加到新節點。

參考:

您只能增加而不能減少磁盤的大小。 要減小磁盤大小,您必須創建一個更小的新磁盤。 在您刪除原來的較大磁盤之前,您需要為這兩個磁盤付費。

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

編輯:如果你想增加磁盤,你可以用新的配置創建一個新的節點池,然后你必須封鎖和排空(kubectl cordon & drain)舊節點池的所有節點,這樣你就可以在不停機的情況下刪除它。

正如恩里克所說,您可以增加尺寸但不能減小尺寸。

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

所以如果你想增加磁盤,你也可以用 terraform 來完成。

增加磁盤大小后,您可能需要為節點增加文件系統

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

因此,您可以將 terraform 和SSH中的execremote-exec用於GKE節點並增加磁盤分區。

更新

根據您的更新,您也在更新磁盤大小和機器類型,因此我建議使用lifecycle先創建,再刪除。

lifecycle {
    create_before_destroy = true
  }

遷移時不要忘記封鎖和排空節點,如果運行多個副本並正確分布就可以了。

因此,為了安全地更改節點池的規格,必須創建第二個節點池並將所有工作負載移到那里,然后刪除舊節點池。 您可以按照@Enrique Tejada 所說的方式執行此操作。 參考: https://cloud.google.com/kube.netes-engine/docs/tutorials/migrating-node-pool#step_4_migrate_the_workloads是關於machine_type的,但是好像disk_size是一樣的。 目前我正在努力解決這個問題,使用 terraform - 我的任務是讓上級能夠通過更改源代碼中的值來更改 disk_size 和 machine_type,而無需重新創建集群。 似乎是不可能的。

這是一個類似的問題Reduce boot disk size of a GKE cluster

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM