Я перемещаю свое приложение MVP в GCP. Это обычное веб-приложение со стандартной рабочей нагрузкой базы данных (CRUD). Я использую cassandra
и play
, у каждого свой образ докера. Я не ожидаю большого трафика для начала, поэтому хотел бы начать с небольших виртуальных машин, чтобы снизить затраты. Я также использую оператор kubernetes
для Cassandra
- https://github.com/datastax/cass-operator
Можно ли будет позже изменить конфигурацию машины (процессоры, размер диска) для Cassandra
, когда увеличится трафик? Придется ли мне полностью останавливать приложение при обновлении или я смогу выполнить последовательное обновление?
Любые советы о том, как подойти к обновлению позже, будут высоко оценены.
Я буду использовать GKE для этого.
Я отправил ответ с подробностями для GKE
Да, при использовании кластера GKE можно изменить конфигурацию машины позже без простоев.
Ознакомьтесь с документацией Перенос рабочих нагрузок на разные типы машин:
Пул узлов — это подмножество машин, имеющих одинаковые конфигурация, включая авторизацию типа машины (процессор и память) масштабы. Пулы узлов представляют собой подмножество узлов в кластере; а кластер контейнеров может содержать один или несколько пулов узлов.
Когда вам нужно изменить профиль машины вашего Compute Engine кластер, вы можете создать новый пул узлов, а затем перенести рабочие нагрузки в новый пул узлов.
и
Чтобы перенести рабочие нагрузки без простоев, вам необходимо:
- Отметьте существующий пул узлов как незапланированный.
- Сбросьте рабочие нагрузки, выполняемые в существующем пуле узлов.
- Удалите существующий пул узлов.
Kubernetes — система оркестровки кластеров GKE. автоматически переназначает выселенные поды в новый пул узлов по мере истощает существующий пул узлов.
Примечание. Это руководство применимо только в том случае, если в вашем контейнере не включено автомасштабирование кластера. Если средство автомасштабирования добавляет или удаляет узлов, пока вы пытаетесь выполнить миграцию, возможно, вы не сможете пометить все узлы в пуле как незапланированные и слить их правильно.
Подробная пошаговая инструкция с командами и примерами доступна в документации. Чтобы отключить автомасштабирование кластера, вы можете следовать документации Отключение автомасштабирования для существующего пула узлов:
gcloud container clusters update cluster-name --no-enable-autoscaling \
--node-pool pool-name [--zone compute-zone --project project-id]
Какой сервис GCP вы собираетесь использовать? Если вы решили начать с простого экземпляра виртуальной машины GCE, его следует остановить для внесения таких изменений. Если вы решили использовать кластер GKE, вы сможете переключиться на другой узел с другими типами машин без простоев.