Google Cloud Compute - масштабирование виртуальной машины и балансировка нагрузки
Я зарегистрировался в Google Cloud на днях, используя бесплатную пробную версию. Я люблю это до сих пор. У меня есть пара вопросов, которые, вероятно, являются общими для облачных вычислений, и я новичок в этом. У меня есть тестовая виртуальная машина без проблем, использующая Ubuntu Linux.
Мой вопрос с облачными концепциями - во-первых: - Как масштабировать экземпляр. Можно ли масштабировать от микро до малого (тоже наоборот)?
Если масштабирование не выполняется таким образом и речь идет об использовании групп экземпляров, как работает балансировка нагрузки и группы экземпляров?
Это концепция, с которой меня больше всего смущает... как бы я подтолкнул обновление кода, если бы у меня было 3 экземпляра для балансировщика нагрузки?
Спасибо за вашу помощь!
1 ответ
Первый вопрос: как вы масштабируете экземпляр по вертикали? Ответ: вы должны заново создать экземпляр и уничтожить старый. Вы не можете просто сделать существующий экземпляр меньше или больше. К счастью, вы можете написать весь сценарий. GCE позволяет добавить флаг с именем --metadata-from-file
, Если вы используете systemd, я рекомендую кое-что --metadata-from-file user-data=cloud-config.yaml
, Поскольку вы используете Ubuntu, а поддержка systemd в Ubuntu в лучшем случае отрывочна, вы, вероятно, просто захотите сделать что-то вроде: --metadata-from-file startup-script=my-startup-script.sh
Сценарии вашего развертывания позволят вам масштабировать, заново создавать и документировать ваше развертывание, и это лучшая практика в облачных вычислениях.
Второй вопрос: как работают группы экземпляров и группы балансировки нагрузки? Ответ: Группы экземпляров в GCE почти всегда имеют "управляемый" вариант. Это позволяет вам создать шаблон, который определяет, как вы хотите, чтобы ваши экземпляры работали. Затем вы можете масштабировать их по горизонтали (то есть добавлять или убирать) за балансировщиком нагрузки. Вы даже можете использовать упреждающие экземпляры, чтобы сэкономить деньги.
Третий вопрос: как мне отправить обновление? Это зависит от того, как вы развернете. Но в целом я бы сказал:
- Если вы используете Docker, отправьте новое изображение в GCR и пусть ваши экземпляры вытянут его.
- Если вы используете CM (например, Salt или Ansible), просто используйте эти инструменты как обычно. Они отлично работают на GCE
- Если вы используете сценарии запуска, сделайте что-то вроде
gcloud compute instances myinstance add-metadata metadata-from-file startup-script=newScript.sh
(и перезапустить после) - Если все содержится в шаблоне управляемого экземпляра, обновите свой шаблон.