Как создавать и использовать шаблоны экземпляров на облачной платформе Google
Шаблоны экземпляров позволяют предварительно определить конфигурацию компьютера и образ для автоматического запуска клонов ваших серверов. Они обычно используются с автоматическим масштабированием для облегчения предоставления услуг высокой доступности.
Что такое шаблоны экземпляров?
Автоматическое масштабирование может показаться волшебством, но, в конце концов, вы по-прежнему создаете и уничтожаете серверы несколько раз в день, что убило бы любого системного администратора, если бы ему поручили делать это вручную.
Автоматизация вашей работы может показаться непреодолимой задачей, но на самом деле вы просто определяете некоторую конфигурацию запуска и делаете копию файлов вашего сервера. Если вы хотите автоматизировать его должным образом, вам нужно либо написать сценарий запуска для установки зависимостей, необходимых вашему серверу, либо перейти к запуску в контейнере, который в конечном итоге будет в основном такой же конфигурацией.
Шаблоны экземпляров GCP поддерживают оба этих метода. Вы можете создать шаблон экземпляра для развертывания образа контейнера в группе автомасштабируемых или управляемых экземпляров или просто сделать копию своего сервера для развертывания другого. В обоих случаях шаблоны экземпляров также позволяют вам определить, какие типы серверов вы хотите развернуть, будь то конкретный тип экземпляра или определенный объем памяти и виртуальных ЦП.
Создание шаблонов экземпляров
У вас есть два варианта создания шаблонов экземпляров — либо из образа контейнера, либо из существующего экземпляра.
Если вы хотите развернуть образ контейнера, вы можете создать этот шаблон на вкладке Instance Templates в консоли Compute Engine. Выберите параметры машины, такие как количество виртуальных ЦП и объем памяти.
Затем в настройках контейнера установите флажок «Да» для развертывания образа контейнера и введите URL-адрес изображения. Для этого вы можете использовать Реестр контейнеров Google или общедоступный реестр, например Docker Hub.
Кроме того, у вас есть несколько опций для установки команды ввода, любых параметров или переменных среды, а также для запуска контейнера как привилегированного, что позволяет root-доступ к хранилищу и сетевым устройствам, как если бы он работал непосредственно на хосте. Вы также можете настроить монтирование томов и добавить в контейнер дополнительные диски.
Если вы хотите сделать копию существующего экземпляра, вы можете сделать это из командной строки gcloud
. Вам понадобится несколько параметров — имя шаблона, имя исходного экземпляра и имя диска, который вы хотите скопировать.
gcloud compute instance-templates create [TEMPLATE NAME] --source-instance [SOURCE_INSTANCE] --configure-disk= device-name=[DISK NAME], instantiate-from=source-image, auto-delete=true
Конечно, вам нужно будет повторять этот процесс каждый раз, когда вы хотите внести изменения в свою группу экземпляров.
Это определенно не лучший способ обработки обновлений, и у вас есть два решения этой проблемы: добавить сценарий установки для обработки развертывания обновлений при запуске, например для получения последней сборки из git, или перейти в контейнеры. Любая задача, масштабируемая автоматически, может быть помещена в контейнер, и ее выполнение в Docker не повлияет на производительность. Вы можете прочитать наше руководство по перемещению вашего приложения в Docker, чтобы узнать больше.
Использование ваших шаблонов в MIG
Управляемые группы экземпляров (MIG) – это группы экземпляров, которые поддерживают автоматическое масштабирование и автоматическое восстановление, разумеется, на основе шаблонов экземпляров. Вы можете выбрать шаблон, который хотите использовать, в настройках при создании управляемой группы экземпляров.
Если вы просто хотите запустить набор экземпляров за балансировщиком нагрузки, вы можете использовать неуправляемые группы экземпляров, которые не нужно настраивать с помощью шаблонов экземпляров, но которые требуют ручного администрирования серверов.