Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Compute Cloud
    • Все инструкции
      • Создать группу ВМ фиксированного размера
      • Создать группу ВМ фиксированного размера с сетевым балансировщиком
      • Создать группу ВМ фиксированного размера с L7-балансировщиком
      • Создать автоматически масштабируемую группу ВМ
      • Создать группу ВМ с Container Optimized Image
      • Создать группу ВМ по YAML-спецификации
      • Создать группу ВМ в группе размещения
      • Создать группу ВМ с фиксированными IP-адресами
      • Создать группу ВМ с подключением к файловому хранилищу
      • Создать группу ВМ с подключением к Object Storage
    • Посмотреть операции с ресурсами сервиса
  • Yandex Container Solution
  • Управление доступом
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • История изменений
  • Обучающие курсы
  1. Пошаговые инструкции
  2. Создание группы виртуальных машин
  3. Создать группу ВМ с Container Optimized Image

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

Статья создана
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 ГБ.

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

Предыдущая
Создать автоматически масштабируемую группу ВМ
Следующая
Создать группу ВМ по YAML-спецификации
Проект Яндекса
© 2025 ООО «Яндекс.Облако»