VK Cloud logo
Обновлена 25 апреля 2024 г. в 12:05

Создание инстанса MLflow

В статье приведены примеры создания инстанса MLflow при помощи Terraform.

При создании инстанса используются:

Перед созданием инстанса

  1. Ознакомьтесь с доступными ресурсами и квотами для региона, в котором планируется создать инстанс. Для разных регионов могут быть настроены разные квоты.

    Если вы хотите увеличить квоты, обратитесь в техническую поддержку.

  2. Установите Terraform и настройте провайдер, если этого еще не сделано.

  3. Для работы потребуется провайдер версии 0.6.0 или выше. Убедитесь, что версия провайдера в файле vkcs_provider.tf не ниже. Если версия провайдера ниже, обновите провайдер.

1. Создайте файл с описанием инстанса MLflow

В примере ниже инстанс создается в следующей конфигурации:

  • регион по умолчанию, зона доступности GZ1;
  • тип диска SSD, размер — 50 ГБ;
  • тип диска данных SSD, размер — 60 ГБ. Создайте файл конфигурации Terraform main.tf с содержимым:
resource "vkcs_mlplatform_mlflow" "mlflow" {  name              = "tf-example"  flavor_id         = data.vkcs_compute_flavor.basic.id  jh_instance_id    = vkcs_mlplatform_jupyterhub.jupyterhub.id  demo_mode         = true  availability_zone = "GZ1"  boot_volume = {    size        = 50    volume_type = "ceph-ssd"  }  data_volumes = [    {      size        = 60      volume_type = "ceph-ssd"    },  ]  networks = [    {      network_id = vkcs_networking_network.default.id    },  ]}

Здесь:

  • flavor_id — идентификатор типа ВМ. Идентификатор можно прописать в манифесте или получить из источника данных.

  • jh_instance_id — идентификатор инстанса JupyterHub для совместной работы. Можно создать новый инстанс или использовать существующий.

  • demo_mode — демо-режим. Если true, все данные будут храниться на ВМ инстанса. Если false, для хранения данных будет подключен бакет S3 с базой данных DBaaS Postgres.

  • network_id — идентификатор сети, в которой будет размещен инстанс. Инстанс может быть размещен в существующей сети или в новой. Идентификатор можно указать в манифесте, получить из источника данных или ресурса.

2. (Опционально) Создайте файл с описанием источника данных для типа ВМ

Создайте файл конфигурации Terraform flavor.tf c описанием нужного типа ВМ:

data "vkcs_compute_flavor" "basic" {  name = "STD2-4-4"}

Указанный в файле тип ВМ будет использоваться для создания инстанса MLflow в вашем проекте Terraform.

3. (Опционально) Создайте файл с описанием связанного инстанса JupyterHub

Создайте файл конфигурации Terraform jh_instance.tf c описанием инстанса JupyterHub.

4. (Опционально) Создайте файл с описанием сетевой инфраструктуры для инстанса

Создайте файл конфигурации Terraform network.tf с описанием сетевой инфраструктуры для инстанса:

Пример описания источника данных для существующей в проекте сети:

data "vkcs_networking_network" "default" {  name = "default"  sdn = "neutron"}

5. Создайте необходимые ресурсы с помощью Terraform

  1. Поместите файлы конфигурации Terraform в одну директорию:

    • vkcs_provider.tf;
    • main.tf;
    • flavor.tf (если создавался);
    • jh_instance.tf(если создавался);
    • network.tf(если создавался).
  2. Перейдите в эту директорию.

  3. Убедитесь, что конфигурационные файлы корректны и содержат нужные изменения:

    terraform validate && terraform plan
  4. Примените изменения:

    terraform apply

    При запросе подтверждения введите yes.

  5. Дождитесь завершения операции.

6. Проверьте применение конфигурации

Убедитесь, что инстанс MLflow был успешно создан:

  1. Перейдите в личный кабинет VK Cloud.
  2. Перейдите в раздел ML PlatformИнстансы. Убедитесь, что инстанс MLflow создан и активен.

Удалите неиспользуемые ресурсы

Если созданные с помощью Terraform ресурсы вам больше не нужны, удалите их:

  1. Перейдите в директорию с файлами конфигурации Terraform.

  2. Выполните команду:

    terraform destroy

    При запросе подтверждения введите yes.

  3. Дождитесь завершения операции.