Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Compute Cloud
  • Yandex Container Solution
    • Все руководства
    • Настройка синхронизации часов с помощью NTP
    • Автомасштабирование группы ВМ для обработки сообщений из очереди
    • Обновление группы ВМ под нагрузкой
    • Развертывание Remote Desktop Gateway
    • Начало работы с Packer
    • Передача логов с ВМ в Yandex Cloud Logging
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Миграция в Yandex Cloud с помощью Хайстекс Акура
    • Защита от сбоев с помощью Хайстекс Акура
    • Резервное копирование ВМ с помощью Хайстекс Акура
    • Развертывание отказоустойчивой архитектуры с прерываемыми ВМ
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
    • Создание триггеров, которые вызывают функции для остановки ВМ и отправки уведомлений в Telegram
    • Создание веб-приложения на Python с использованием фреймворка Flask
    • Создание SAP-программы в Yandex Cloud
    • Развертывание сервера Minecraft в Yandex Cloud
    • Автоматизация сборки образов с помощью Jenkins и Packer
    • Создание тестовых виртуальных машин через GitLab CI
    • Высокопроизводительные вычисления (HPC) на прерываемых ВМ
    • Настройка SFTP-сервера на Centos 7
    • Развертывание параллельной файловой системы GlusterFS в высокодоступном режиме
    • Развертывание параллельной файловой системы GlusterFS в высокопроизводительном режиме
    • Резервное копирование в Object Storage с помощью Bacula
    • Построение пайплайна CI/CD в GitLab с использованием serverless-продуктов
    • Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе Check Point NGFW
    • Сегментация облачной инфраструктуры с помощью решения Check Point Next-Generation Firewall
    • Настройка защищенного туннеля GRE поверх IPsec
    • Создание бастионного хоста
    • Реализация отказоустойчивых сценариев для сетевых виртуальных машин
    • Создание туннеля между двумя подсетями при помощи OpenVPN Access Server
    • Создание внешней таблицы на базе таблицы из бакета Object Storage с помощью конфигурационного файла
    • Настройка сетевой связности между подсетями BareMetal и Virtual Private Cloud
    • Работа со снапшотами в Managed Service for Kubernetes
      • Создать ВМ с Container Optimized Image
      • Создать ВМ с Container Optimized Image и дополнительным томом для Docker-контейнера
      • Создать ВМ с Container Optimized Image и несколькими Docker-контейнерами
      • Создать группу ВМ с Container Optimized Image
      • Создать группу ВМ с Container Optimized Image и несколькими Docker-контейнерами
      • Изменить ВМ с Container Optimized Image
      • Создать ВМ и группу ВМ с Container Optimized Image с помощью Terraform
    • Запуск языковой модели DeepSeek-R1 в кластере GPU
    • Запуск библиотеки vLLM с языковой моделью Gemma 3 на ВМ с GPU
    • Доставка USB-устройств на виртуальную машину или сервер BareMetal
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы
  1. Практические руководства
  2. Container Optimized Image
  3. Создать группу ВМ с Container Optimized Image

Создать группу ВМ с Container Optimized Image

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 28 апреля 2025 г.

Для запуска нескольких экземпляров сервиса в Docker-контейнерах вы можете создать группу виртуальных машин на базе образа Container Optimized Image. В такой группе обновлять Docker-контейнер можно с помощью метаданных ВМ используя COI или Docker Compose спецификацию.

Внимание

Создавая группы ВМ, учитывайте лимиты. Чтобы не нарушить работу компонента Instance Groups, не изменяйте и не удаляйте вручную созданные им ресурсы: целевую группу Network Load Balancer, ВМ и диски. Вместо этого измените или удалите группу полностью.

По умолчанию все операции в Instance Groups выполняются от имени сервисного аккаунта. Если сервисного аккаунта нет, создайте его.

Чтобы иметь возможность создавать, обновлять и удалять ВМ в группе назначьте сервисному аккаунту роль compute.editor.

Чтобы создать группу ВМ на базе Container Optimized Image:

  1. Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

  2. По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

  3. Посмотрите описание команды CLI для создания группы ВМ:

    CLI
    yc compute instance-group create --help
    
  4. Проверьте, есть ли в каталоге сети:

    CLI
    yc vpc network list
    

    Если нет ни одной сети, создайте ее.

  5. Создайте YAML-файл с именем, например, specification.yaml.

  6. Узнайте идентификатор последней версии публичного образа Container Optimized Image.

    Образ Container Optimized Image в реестре Container Registry может обновляться и меняться в соответствии с релизами. При этом образ на виртуальной машине не обновится автоматически до последней версии. Чтобы создать группу ВМ с последней версией Container Optimized Image, необходимо самостоятельно проверить ее наличие:

    CLI
    Yandex Cloud Marketplace
    yc compute image get-latest-from-family container-optimized-image --folder-id standard-images
    

    Результат:

    id: <идентификатор_последней_версии_COI>
    folder_id: standard-images
    ...
    
    1. Перейдите на страницу Cloud Marketplace и выберите образ с нужной конфигурацией:
      • Container Optimized Image.
      • Container Optimized Image GPU.
    2. В блоке Идентификаторы продукта скопируйте значение image_id.
  7. Опишите в YAML-файле specification.yaml, который вы создали:

    • Общую информацию о группе:

      name: container-optimized-group
      service_account_id: <идентификатор_сервисного_аккаунта>
      description: "This instance group was created from YAML config."
      

      Где:

      • name — произвольное имя группы ВМ. Имя должно быть уникальным в рамках каталога. Имя может содержать строчные буквы латинского алфавита, цифры и дефисы. Первый символ должен быть буквой. Последний символ не может быть дефисом. Максимальная длина имени — 63 символа.

      • service_account_id — идентификатор сервисного аккаунта.

        Чтобы иметь возможность создавать, обновлять и удалять ВМ в группе назначьте сервисному аккаунту роль compute.editor.

        Сервисный аккаунт нельзя удалить, пока он связан с группой виртуальных машин.

      • description — произвольное описание группы ВМ.

    • Шаблон ВМ:

      instance_template:
        platform_id: standard-v3
        resources_spec:
          memory: 2G
          cores: 2
        boot_disk_spec:
          mode: READ_WRITE
          disk_spec:
            image_id: <идентификатор_последней_версии_COI>
            type_id: network-hdd
            size: 32G
        network_interface_specs:
          - network_id: c64mknqgnd8a********
            primary_v4_address_spec: {}
            security_group_ids:
              - enps0ar5s3ti********
        placement_policy:
         placement_group_id: rmppvhrgm77g********
        metadata:
          docker-container-declaration: |-
            spec:
              containers:
                - name: nginx
                  image: cr.yandex/mirror/nginx:1.17.4-alpine
                  securityContext:
                    privileged: false
                  tty: false
                  stdin: false
      

      По умолчанию размер диска указывается в байтах. Вы можете указать другую единицу измерения с помощью соответствующего суффикса.

      Суффикс Приставка и множитель Пример
      k кило- (210) 640k = 640 × 210 = 655360
      m мега- (220) 48m = 48 × 220 = 50331648
      g гига- (230) 10g = 10 × 230 = 10737418240
      t тера- (240) 4t = 4 × 240 = 4398046511104
      p пета- (250) 2p = 2 × 250 = 2251799813685248

      Где:

      • platform_id — идентификатор платформы.
      • memory — количество памяти (RAM).
      • cores — количество ядер процессора (vCPU).
      • mode — режим доступа к диску:
        • READ_ONLY — доступ на чтение.
        • READ_WRITE — доступ на чтение и запись.
      • image_id — идентификатор публичного образа Container Optimized Image.
      • type_id — тип диска.
      • size — размер диска. Должен быть не менее 30 ГБ.
      • network_id — идентификатор сети default-net.
      • primary_v4_address_spec — спецификация версии интернет протокола IPv4. На данный момент доступен только протокол IPv4. Вы можете предоставить публичный доступ к ВМ группы, указав версию IP для публичного IP-адреса.
      • security_group_ids — список идентификаторов групп безопасности.
      • metadata — значения, которые будут переданы в метаданные ВМ.
      • docker-container-declaration — ключ в метаданных ВМ, при котором используется COI спецификация Docker-контейнера. Вы можете использовать в метаданных Docker Compose спецификацию, для этого вместо ключа docker-container-declaration укажите ключ docker-compose.
      • placement_policy — (опционально) параметры группы размещения ВМ:
        • placement_group_id — идентификатор группы размещения.
    • Политики:

      deploy_policy:
        max_unavailable: 1
        max_expansion: 0
      scale_policy:
        fixed_scale:
          size: 3
      allocation_policy:
        zones:
          - zone_id: ru-central1-a
            instance_tags_pool:
            - first
            - second
            - third
      

      Где:

      • deploy_policy — политика развертывания ВМ в группе.
      • scale_policy — политика масштабирования ВМ в группе.
      • allocation_policy — политика распределения ВМ по зонам доступности.

      Полный код файла specification.yaml:

      name: container-optimized-group
      service_account_id: <идентификатор_сервисного_аккаунта>
      description: "This instance group was created from YAML config."
      instance_template:
        service_account_id: <идентификатор_сервисного_аккаунта> # Идентификатор сервисного аккаунта для доступа к приватным Docker-образам.
        platform_id: standard-v3
        resources_spec:
          memory: 2G
          cores: 2
        boot_disk_spec:
          mode: READ_WRITE
          disk_spec:
            image_id: <идентификатор_последней_версии_COI>
            type_id: network-hdd
            size: 32G
        network_interface_specs:
          - network_id: c64mknqgnd8a********
            primary_v4_address_spec: {}
            security_group_ids:
              - enps0ar5s3ti********
        placement_policy:
          placement_group_id: rmppvhrgm77g********
        metadata:
          docker-container-declaration: |-
            spec:
              containers:
                - name: nginx
                  image: cr.yandex/mirror/nginx:1.17.4-alpine
                  securityContext:
                    privileged: false
                  tty: false
                  stdin: false
      deploy_policy:
        max_unavailable: 1
        max_expansion: 0
      scale_policy:
        fixed_scale:
          size: 3
      allocation_policy:
        zones:
           - zone_id: ru-central1-a
             instance_tags_pool:
             - first
             - second
             - third
      

      Примечание

      Чтобы использовать в specification.yaml Docker Compose спецификацию, вместо ключа docker-container-declaration укажите ключ docker-compose.

  8. Создайте группу ВМ в каталоге по умолчанию:

    CLI
    yc compute instance-group create --file specification.yaml
    

    Команда создаст группу из трех однотипных ВМ со следующими характеристиками:

    • С именем container-optimized-group.
    • Из последней версии публичного образа Container Optimized Image.
    • С запущенным Docker-контейнером на основе cr.yandex/mirror/nginx:1.17.4-alpine.
    • В сети default-net.
    • В зоне доступности ru-central1-a.
    • С 2 vCPU и 2 ГБ RAM.
    • С сетевым HDD-диском объемом 32 ГБ.

Была ли статья полезна?

Предыдущая
Создать ВМ с Container Optimized Image и несколькими Docker-контейнерами
Следующая
Создать группу ВМ с Container Optimized Image и несколькими Docker-контейнерами
Проект Яндекса
© 2025 ООО «Яндекс.Облако»