Назад | Перейти на главную страницу

Лучшая практика для автомасштабирования виртуальных машин

когда я создаю кластерную среду на Google Cloud Platform, я создаю образ виртуальной машины и оттуда включаю автомасштабирование на основе этого образа.

Скажем, мне нужно что-то изменить на этой виртуальной машине, например, небольшую конфигурацию для nginx или php: я обычно воссоздаю изображение с моими новыми изменениями и передаю это новое изображение автоматическому масштабированию.

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

Спасибо

Существуют различные варианты, которые вы можете использовать для настройки изображения и ресурсов для достижения своей цели. Один из вариантов - использовать Диспетчер развертывания Google Cloud который позволяет вам развертывать, управлять и обновлять ваши приложения и ресурсы с помощью шаблонов и файлов конфигурации. Есть два расширенных примера использования диспетчера развертывания на эта ссылка.

Однако, поскольку вы упомянули, что просто хотите применить меньшие изменения к изображению вашего шаблона без создания нового, я бы предложил использовать сценарий запуска с вашим шаблоном. Как сказал EEAA в своем ответе, это может привести к некоторой задержке готовности новых экземпляров, однако это зависит от того, какие изменения вы применяете к изображению вашего шаблона, и насколько задержка повлияет на производительность вашего приложения. Например, если сценарий запуска устанавливает новый пакет и его зависимости от новых виртуальных машин, установка которых, скажем, занимает 2 минуты, вы можете захотеть перестроить новый образ для своего шаблона со всеми этими обновлениями. Но для изменения патаметров, таких как буферы, или увеличения дочерних элементов PHP, задержка изменения этих параметров с помощью сценария запуска должна быть незначительной.

Конечно, вместо того, чтобы предварительно настраивать все и записывать это в образ, пусть узел автомасштабирования настраивается при загрузке, используя какое-то управление конфигурацией.

Я делаю это с помощью Ansible в AWS - изображения загружаются, загружаю доступный playbook и затем применяю его.

Одним из недостатков этого подхода является то, что он приводит к некоторой задержке доступности вновь созданных узлов. Если это проблема, вы можете воспользоваться гибридным подходом и сохранить большую часть изменений в образе, а также использовать управление конфигурацией во время загрузки для небольших инкрементных изменений.