Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Yandex Container Solution
  • Сопоставление с другими сервисами Yandex Cloud
  • Начало работы
  • Практические руководства
    • Все руководства
    • Создать ВМ с Container Optimized Image
    • Создать ВМ с Container Optimized Image и дополнительным томом для Docker-контейнера
    • Создать ВМ с Container Optimized Image и несколькими Docker-контейнерами
    • Создать группу ВМ с Container Optimized Image
    • Создать группу ВМ с Container Optimized Image и несколькими Docker-контейнерами
    • Изменить ВМ с Container Optimized Image
    • Настройка вывода информации из Docker-контейнера в серийный порт
    • Создать ВМ и группу ВМ с Container Optimized Image с помощью Terraform
    • Передача логов с COI в Cloud Logging
  • Концепции
    • Образ Container Optimized Image
    • Особенности работы с загрузочным диском
    • Особенности работы с сетью
    • Docker-образ
    • Политики перезапуска Docker-контейнера
    • Спецификации Docker-контейнера
    • Квоты и лимиты
  • Релизы COI
  • Правила тарификации
  • Вопросы и ответы
  • Решение проблем
  1. Практические руководства
  2. Создать группу ВМ с Container Optimized Image

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

Статья создана
Yandex Cloud

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

    Внимание

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

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

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

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

    2. По умолчанию используется каталог, указанный в профиле CLI. Вы можете указать другой каталог с помощью параметра --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 в реестре Yandex Container Registry может обновляться и меняться в соответствии с релизами. При этом образ на виртуальной машине не обновится автоматически до последней версии. Чтобы создать группу ВМ с последней версией Container Optimized Image, необходимо самостоятельно проверить ее наличие:

      CLI
      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: aje3932acd8avp6edhbt
        description: "This instance group was created from YAML config."
        

        Где:

        • name — произвольное имя группы ВМ. Имя должно быть уникальным в рамках каталога. Имя может содержать строчные буквы латинского алфавита, цифры и дефисы. Первый символ должен быть буквой. Последний символ не может быть дефисом. Максимальная длина имени — 63 символа.
        • service_account_id — идентификатор сервисного аккаунта.
        • 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: c64mknqgnd8avp6edhbt
              primary_v4_address_spec: {}
          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 — размер диска.
        • network_id — идентификатор сети default-net.
        • primary_v4_address_spec — спецификация версии интернет протокола IPv4. На данный момент доступен только протокол IPv4. Вы можете предоставить публичный доступ к ВМ группы, указав версию IP для публичного IP-адреса.
        • metadata — значения, которые будут переданы в метаданные ВМ.
        • docker-container-declaration — ключ в метаданных ВМ, при котором используется COI спецификация Docker-контейнера. Вы можете использовать в метаданных Docker Compose спецификацию, для этого вместо ключа docker-container-declaration укажите ключ docker-compose.
      • Политики:

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

        Где:

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

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

        name: container-optimized-group
        service_account_id: aje3932acd8avp6edhbt
        description: "This instance group was created from YAML config."
        instance_template:
          service_account_id: aje3932acd8avp6edhbt # Идентификатор сервисного аккаунта для доступа к приватным 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: c64mknqgnd8avp6edhbt
              primary_v4_address_spec: {}
          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
        

        Примечание

        Чтобы использовать в 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 ГБ.

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

    Language / Region
    Проект Яндекса
    © 2023 ООО «Яндекс.Облако»