Вопрос или проблема
У меня есть стандартный экземпляр в GCP, который настроен и работает уже пару месяцев, и я хочу создать клоны экземпляров SPOT от него.
Моя идея заключалась в том, чтобы выключить экземпляр, создать образ диска, а затем создать экземпляр ВМ из этого образа с моделью провизии SPOT.
Консоль GCP позволяет мне делать это с Машинными образами, но когда экземпляр пытается запуститься, я получаю следующую ошибку:
Недопустимое значение для поля 'resource.scheduling.provisioningModel': 'SPOT'. preemptible=false и provisioning_model=SPOT противоречит.
Когда я проверил образ, у него действительно есть Preemtibility: Off
в Доступные политики
, но нет возможности изменить это свойство. Так что, по всей видимости, Машинные образы в GCP – это не просто образы дисков.
Существует ли способ создать копии экземпляров SPOT моего стандартного сервера вообще?
Ответ или решение
Чтобы изменить флаг "preemptible" (предварительная доступность) в Google Cloud Platform (GCP) и создать экземпляры SPOT (спотовые) из обычного экземпляра, необходимо учитывать несколько ключевых моментов, поскольку в GCP концепция машинных изображений включает не только образы дисков, но и дополнительные параметры.
Шаги для создания SPOT экземпляров из стандартного экземпляра
1. Остановка текущего экземпляра
Перед созданием образа остановите ваш стандартный экземпляр:
- Перейдите в консоль GCP.
- Найдите ваш экземпляр в разделе "Compute Engine" > "VM Instances".
- Нажмите "Stop", чтобы остановить виртуальную машину.
2. Создание образа
Создайте образ диска:
- После остановки экземпляра перейдите в раздел "Compute Engine" > "Images".
- Нажмите "Create Image".
- Убедитесь, что вы выбрали диск вашего остановленного экземпляра в качестве источника.
- Важно: в процессе создания образа не выбирайте параметр "Preemptibility" (доступность). Этот параметр не может быть изменен в процессе создания машинного изображения.
3. Создание новых экземпляров SPOT
После создания образа вам нужно будет создать новый экземпляр на основе этого образа со статусом "SPOT":
- Перейдите в раздел "Compute Engine" > "VM Instances".
- Нажмите на кнопку "Create Instance".
- В разделе "Machine Configuration" выберите созданный вами образ.
- Обязательно установите "Provisioning Model" на "SPOT" в разделе "Scheduling".
Примечания о проблеме
Ошибка, которую вы получили:
Invalid value for field 'resource.scheduling.provisioningModel': 'SPOT'. preemptible=false and provisioning_model=SPOT is contradicting.
указывает на то, что ваш образ имеет параметр "preemptible" отключённым. Это связано с тем, что, если вы создаёте машинный образ, он сохраняет свои исходные характеристики, в том числе настройку "preemptibility".
4. Альтернативный подход
Если вам необходимо создавать SPOT экземпляры, рекомендуется использовать клон экземпляра вместо создания образа:
- В разделе "VM Instances" кликните на ваш стандартный экземпляр и выберите "Create Instance" в меню "Actions".
- Здесь у вас будет возможность выбрать параметр "Preemptible" для нового экземпляра. Просто отметьте этот параметр при создании экземпляра.
Заключение
Создание SPOT экземпляров из стандартных экземпляров в GCP требует правильной настройки параметров во время создания экземпляров и образов. Обратите внимание, что невозможно изменить флаг "preemptible" для уже созданного образа, поэтому использование клонирования экземпляра может оказаться более простым решением.
Заботьтесь о том, чтобы всегда проверять параметры конфигурации перед созданием новых экземпляров, чтобы избежать конфликтов и ошибок при инициализации. Если у вас возникнут сложности в процессе, всегда можно обратиться к документации Google Cloud для более подробных разъяснений и рекомендаций.