Yandex Cloud
Поиск
Связаться с намиПопробовать бесплатно
  • Истории успеха
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
  • Marketplace
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Искусственный интеллект
    • Безопасность
    • Инструменты DevOps
    • Бессерверные вычисления
    • Управление ресурсами
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Калькулятор цен
    • Тарифы
    • Акции и free tier
  • Истории успеха
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Serverless Containers
  • Сопоставление с другими сервисами Yandex Cloud
    • Обзор
    • Контейнер
    • Вызов контейнера
    • Асинхронный вызов контейнера
    • Среда выполнения
    • Сетевое взаимодействие
    • Монтирование внешних ресурсов на файловую систему контейнера
    • Долгоживущие контейнеры
    • Уведомления о завершении выполнения контейнера
    • Dead Letter Queue
    • Логи контейнера
    • Резервное копирование
    • Квоты и лимиты
  • Управление доступом
  • Инструменты
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Публичные материалы
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Ревизия контейнера
  • Экземпляр контейнера
  • Создание экземпляра
  • Работа экземпляра
  • Приостановка экземпляра
  • Завершение экземпляра
  • Режим работы контейнера
  • Масштабирование контейнера
  • Подготовленные экземпляры
  • Примеры использования
  1. Концепции
  2. Контейнер

Контейнер

Статья создана
Yandex Cloud
Обновлена 23 декабря 2025 г.
  • Ревизия контейнера
  • Экземпляр контейнера
    • Создание экземпляра
    • Работа экземпляра
    • Приостановка экземпляра
    • Завершение экземпляра
  • Режим работы контейнера
  • Масштабирование контейнера
    • Подготовленные экземпляры
  • Примеры использования

Контейнер позволяет запустить в Yandex Cloud приложение, которое содержится в Docker-образе. После создания ревизии контейнера его можно вызвать:

  • через HTTPS;
  • с помощью триггера;
  • с помощью расширения Yandex API Gateway.

Подробнее о вызове контейнера.

Ревизия контейнераРевизия контейнера

Ревизию контейнера можно создать только из Docker-образа, который загружен в реестр Yandex Container Registry. Другие реестры не поддерживаются. Ревизия содержит всю информацию, необходимую для запуска контейнера.

Возможные статусы ревизии:

  • Active — активная;
  • Obsolete — устаревшая.

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

Примечание

Для сохранения целостности связей изменение и удаление ревизий контейнера не предусмотрено.

Создавать новую ревизию необходимо в следующих случаях:

  • загрузка новой версии Docker-образа в Yandex Container Registry;
  • изменение настроек ревизии.

Если реестр или репозиторий с Docker-образом не являются публичными, необходимо указать в настройках ревизии сервисный аккаунт, у которого есть права на скачивание Docker-образа. Например, роль container-registry.images.puller на каталог или реестр, в которых находится Docker-образ.

Если в настройках ревизии указан сервисный аккаунт, у пользователя или сервисного аккаунта, от имени которого создается ревизия, должна быть роль iam.serviceAccounts.user. Она подтверждает права на использование сервисного аккаунта.

Экземпляр контейнераЭкземпляр контейнера

Экземпляр контейнера — это виртуальная машина, на которой:

  • загружена операционная система;
  • запущен bootstrap-процесс;
  • проинициализированы компоненты среды выполнения Serverless Containers;
  • загружено и проинициализировано пользовательское приложение.

Serverless Containers динамически управляет жизненным циклом виртуальных машин на основе внутренних правил. Эти правила могут меняться в связи с развитием сервиса.

Создание экземпляраСоздание экземпляра

При вызове контейнера происходит одно из двух событий:

  • для обработки вызова запускается новый экземпляр контейнера;
  • вызов перенаправляется в уже запущенный экземпляр контейнера — экземпляр, не завершившийся после обработки предыдущих вызовов или созданный сервисом в фоновом режиме до получения пользовательского запроса.

Принимая решение о запуске нового экземпляра, Serverless Containers учитывает:

  • нагрузку на уже запущенные экземпляры;
  • количество вызовов, которые ожидают обработки;
  • настройки масштабирования контейнера;
  • использование квот.

Процесс запуска экземпляраПроцесс запуска экземпляра

  1. Serverless Containers выбирает узел сервисного кластера, учитывая наличие ресурсов (CPU, RAM, сеть), загруженных образов пользовательского приложения и другие характеристики, влияющие на длительность запуска экземпляра. Приоритет отдается узлу, который обеспечит минимальную длительность запуска. При этом время запуска может варьироваться: например, оно будет меньше, если узел закешировал образ пользовательского приложения с предыдущего вызова.
  2. На выбранном узле кластера запускается виртуальная машина, для которой настраиваются сетевые интерфейсы, выделяются ресурсы CPU и RAM, подключаются образы дисков, содержащие операционную систему и пользовательское приложение.
  3. Виртуальная машина запускает ядро Linux и стартовый процесс bootstrap.
  4. После инициализации bootstrap-процесс запускает пользовательское приложение.

Работа экземпляраРабота экземпляра

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

Приостановка экземпляраПриостановка экземпляра

Если в течение некоторого времени в созданный экземпляр не поступают новые вызовы, он приостанавливается. Операционная система и запущенные процессы остаются в оперативной памяти, но не обрабатываются процессором. Экземпляр возобновляет работу в следующих случаях:

  • при поступлении нового вызова;
  • при запуске служебного цикла возобновления работы экземпляры, например для обновления таймеров или выполнения служебных задач гостевой операционной системы;
  • перед завершением экземпляра.

Примечание

Когда экземпляр приостановлен, он не потребляет ресурсы CPU, поэтому сетевые соединения могут быть разорваны. Пользовательское приложение должно корректно обрабатывать такие случаи.

Завершение экземпляраЗавершение экземпляра

Serverless Containers принимает решение о завершении запущенного экземпляра на основе набора факторов, например:

  • длительное время отсутствуют новые вызовы;
  • произошел таймаут выполнения контейнера;
  • произошла ошибка выполнения, которую нельзя исправить.

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

Режим работы контейнераРежим работы контейнера

Serverless Containers поддерживает следующие режимы работы контейнера:

Режим работы Описание работы Что возвращается при успешном вызове контейнера Данные HTTP-запроса к контейнеру Ограничения
HTTP-сервер HTTP-запросы к контейнеру принимает HTTP-сервер, который должен быть запущен на порту из переменной окружения PORT. Значение переменной задается сервисом автоматически HTTP-ответ, полученный от HTTP-сервера. При передаче в контейнер некоторые HTTP-заголовки ответа изменяются Передаются в HTTP-запросе к HTTP-серверу —
Выполнение команд При каждом HTTP-запросе к контейнеру выполняются инструкции ENTRYPOINT из Dockerfile или команды, заданные при создании ревизии. Если команды заданы, они переопределяют инструкции ENTRYPOINT из Dockerfile Код ответа 200 и код завершения в заголовке ответа X-Task-Exit-Code Находятся в файле по пути из переменной окружения REQUEST_PATH Количество одновременных вызовов одного экземпляра контейнера не может быть больше 1

Масштабирование контейнераМасштабирование контейнера

Экземпляр контейнера обрабатывает один его вызов в один момент времени. Если контейнер вызывается быстрее, чем экземпляр успевает обработать запрос, сервис масштабирует контейнер — запускает его дополнительные экземпляры. Таким образом обеспечивается параллельная обработка запросов.

Чтобы уменьшить количество холодных стартов, Serverless Containers создает экземпляры контейнера в фоновом режиме, не для обработки пользовательских запросов. При этом количество экземпляров, созданных таким образом, не превышает квоты.

Кроме этого, в Serverless Containers можно изменить максимальное количество одновременных вызовов одного экземпляра контейнера и указать количество подготовленных экземпляров контейнера.

Настройки масштабирования применяются в течение 5 минут после их задания.

Подготовленные экземплярыПодготовленные экземпляры

Подготовленный экземпляр — это экземпляр контейнера, при запуске которого гарантированно нет холодного старта. В подготовленном экземпляре до вызова контейнера:

  • инициализируются компоненты среды выполнения Serverless Containers;
  • загружается и инициализируется пользовательское приложение.

Процессы инициализации и работы простого и подготовленного экземпляров контейнера не отличаются. Подготовленный экземпляр приостановлен и не потребляет CPU до тех пор, пока не начнет обрабатывать вызов.

Время простоя подготовленных экземпляров и выполнения в них контейнера тарифицируется дополнительно.

Если количество вызовов контейнера превышает количество подготовленных экземпляров, Serverless Containers масштабирует контейнер в пределах квот, но в неподготовленных экземплярах при их первом запуске происходит холодный старт.

Подготовленные экземпляры расходуют следующие квоты, даже если не запущены:

  • Количество экземпляров контейнеров в каждой зоне доступности.
  • Суммарный объем RAM для всех запущенных экземпляров контейнеров в каждой зоне доступности.
  • Количество подготовленных экземпляров контейнеров в одном облаке.

Примеры использованияПримеры использования

  • Разработка CRUD API для сервиса фильмов
  • Настройка подключения к Yandex Managed Service for PostgreSQL из контейнера Serverless Containers
  • Запуск контейнерного приложения в Yandex Serverless Containers
  • Разработка функций в Functions Framework и их развертывание в Yandex Serverless Containers

См. такжеСм. также

  • Создать ревизию контейнера
  • Добавить настройки масштабирования

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

Предыдущая
Обзор
Следующая
Вызов контейнера
Проект Яндекса
© 2025 ООО «Яндекс.Облако»