Можно ли изменить размер диска пула узлов в GKE с помощью terraform без повторного создания кластера?

Можно ли изменить размер диска пула узлов в GKE с помощью Terraform без повторного создания (сначала удалить, а затем снова создать с новыми настройками) кластера?

Я хочу автоматизировать миграцию пула узлов с рабочими нагрузками без повторного создания кластера и без простоев.

Это вывод, который я получил, когда увеличил кластер, он убивает и воссоздает весь пул узлов, и я этого не хочу.

Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Развертывание модели машинного обучения с помощью Flask - Angular в Kubernetes
Kubernetes - это портативная, расширяемая платформа с открытым исходным кодом для управления контейнерными рабочими нагрузками и сервисами, которая...
0
0
104
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Вы не можете уменьшить размер диска, но можете создать новый диск меньшего размера и добавить их к новым узлам.

Ссылка:

Вы можете только увеличить, а не уменьшить размер диска. Чтобы уменьшить размер диска, необходимо создать новый диск меньшего размера. Пока вы не удалите исходный диск большего размера, плата взимается за оба диска.

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

Это результат, который я получил, когда увеличил кластер, он убивает и воссоздает весь пул узлов, и я этого не хочу. postimg.cc/1g52LsD1

clustermania 10.01.2023 14:55

Enrique Tejeda 10.01.2023 15:11

Как сказал Энрике, вы можете увеличить размер, но не можете уменьшить его.

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

Таким образом, вы можете использовать exec или remote-exec в terraform и SSH для узлов GKE и увеличивать разделы диска.

Обновлять :

На основе вашего обновления вы также обновляете размер диска и тип машины, поэтому я бы рекомендовал использовать lifecycle для создания в первую очередь и перед удалением.

lifecycle {
    create_before_destroy = true
  }

Не забудьте оцепить и слить узел во время миграции, если запущено несколько реплик и правильно распределено, все будет в порядке.

Это результат, который я получил, когда увеличил кластер, он убивает и воссоздает весь пул узлов, и я этого не хочу. postimg.cc/1g52LsD1

clustermania 10.01.2023 14:55

Вы можете использовать обновленный ответ жизненного цикла { create_before_destroy = true } с проверкой деталей.

Harsh Manvar 10.01.2023 15:09

У меня это не работает с жизненным циклом создания перед удалением, потому что я должен изменить диапазон адресов плоскости управления, иначе возникнет конфликт между двумя кластерами. Я предполагаю, что это можно сделать автоматически (для генерации IP-адреса или чего-то подобного), но я не думаю, что это масштабируемое и безопасное решение. Также в конце процесса, насколько я понимаю, мне нужно вручную перенести все рабочие нагрузки (микросервисы) из старого кластера (или пула узлов) в новый.

clustermania 10.01.2023 15:49

Это не похоже на тот способ переноса рабочей нагрузки, который вы можете оцепить и слить узел с помощью terraform также после того, как новые узлы будут запущены и запущены автоматически.

Harsh Manvar 10.01.2023 17:08
Ответ принят как подходящий

Таким образом, чтобы безопасно изменить спецификации пула узлов, необходимо создать второй пул узлов и переместить туда все рабочие нагрузки, после чего удалить старый. Вы можете сделать это так, как сказал @Enrique Tejada. См.: https://cloud.google.com/kubernetes-engine/docs/tutorials/migrating-node-pool#step_4_migrate_the_workloads Речь идет о типе_машины, но похоже, что и для размера диска то же самое. В настоящее время я борюсь с этим, используя terraform - у меня есть задача дать начальству возможность изменять disk_size и machine_type, изменяя значения в исходном коде, без повторного создания кластера. Кажется, что это невозможно.

Вот похожий вопрос Уменьшить размер загрузочного диска кластера GKE

Другие вопросы по теме