Среда выполнения — конкретная программа, OCI — правила её взаимодействия с подготовленным пакетом. Соответствие стандарту не выбирает за администратора ограничения и права контейнера.
Среда выполнения контейнеров
Определение
Среда выполнения контейнеров — программный компонент узла, который создаёт окружение процесса, запускает его и управляет завершением и удалением экземпляра. Спецификация OCI описывает низкоуровневый запуск. В Kubernetes службы узла соединяют эту работу с управлением Pod.
Также ищут: Container runtime · OCI runtime · среда запуска контейнеров
Зачем это знать
Если Pod назначен узлу, но приложение не запустилось, проблема уже может быть в образе, конфигурации или среде выполнения. Планировщик этот этап не выполняет. Разделяйте назначение узла, создание контейнера, запуск процесса и готовность приложения при приёмке и диагностике.
Карта понятия
Что подтверждено
Среда выполнения OCI использует подготовленный пакет с config.json, создаёт окружение и управляет состояниями контейнера на узле.
Граница применимости: OCI Runtime Specification: пакет, конфигурация и жизненный цикл.
Планировщик Kubernetes выбирает узел для Pod. После назначения служба kubelet и среда выполнения на этом узле обеспечивают запуск контейнеров; планировщик сам процессы не запускает.
Граница применимости: Разделение размещения Kubernetes и выполнения контейнеров на узле.
Операция создания OCI подготавливает контейнер до запуска основного процесса. Операция запуска переводит его к выполнению; успех создания нельзя считать успехом запуска приложения.
Граница применимости: Операции create и start в OCI Runtime Specification.
После завершения основного процесса контейнер может оставаться в остановленном состоянии. Удаление его окружения — отдельная операция, поэтому остановка и удаление экземпляра не равнозначны.
Граница применимости: Состояние stopped и операция delete в OCI Runtime Specification.
Идентификатор контейнера OCI должен быть уникальным в пределах одного узла. Для поиска экземпляра в кластере нужно сохранять и узел: глобальную уникальность такого идентификатора спецификация не требует.
Граница применимости: Требования OCI к идентификатору контейнера.
Работающий процесс может ещё не принимать запросы. В Kubernetes состояние контейнера и готовность Pod проверяют отдельно: успешный запуск не заменяет проверку приложения.
Граница применимости: Сопоставление жизненного цикла контейнера OCI и условий Pod Kubernetes.
Не путать
Среда выполнения отвечает за экземпляр на узле. Управляющие компоненты Kubernetes принимают описание нагрузки и организуют размещение. Ошибку запуска после назначения узла нельзя диагностировать только по планировщику.
Среда выполнения не выбирает сервер кластера. Эту задачу решает планировщик по требованиям Pod. Готовый образ не устраняет отсутствие допустимого места для запуска.
Что проверить
- Проверьте версию среды выполнения и её совместимость с узлом.
- Сначала выясните, назначен ли Pod конкретному узлу.
- Отделите ошибку получения образа от ошибки создания окружения и запуска процесса.
- Проверьте параметры config.json или настройки, из которых платформа его формирует.
- Сохраните идентификатор контейнера вместе с именем узла и временем события.
- Проверьте код завершения и журналы приложения до повторного запуска.
- После запуска подтвердите готовность приложения реальным запросом.
Первоисточники
- Kubernetes Scheduler
Описывает отбор допустимых узлов, оценку вариантов и назначение узла для ещё не размещённого Pod.
Утверждения: 02
- Kubernetes Components
Описывает управляющие компоненты, узлы, сервер API, планировщик, контроллеры, kubelet и среду выполнения контейнеров.
Утверждения: 02
- Pod Lifecycle
Описывает назначение узла, состояния Pod и контейнеров, перезапуски контейнеров и создание нового Pod с другим UID взамен прежнего.
Утверждения: 06
- Open Container Initiative Image Format Specification
Определяет манифест, индекс, конфигурацию и слои образа, а также дескрипторы объектов с адресацией по содержимому.