Пространство имён отвечает за видимость системных объектов. Cgroup отвечает за потребление ресурсов. Если контейнер не видит процессы соседей, это ещё не означает, что он не сможет занять общую память.
Пространство имён Linux
Определение
Пространство имён Linux — это механизм ядра, который даёт входящим в него процессам отдельное представление определённого системного ресурса. Тип пространства задаёт, что именно разделено: список процессов, сетевые интерфейсы или дерево подключённых файловых систем.
Также ищут: Linux namespace · пространство имён ядра · изоляция представления процессов
Зачем это знать
Два приложения могут слушать один и тот же порт в разных сетевых пространствах имён. Но отдельная сеть не выделяет им процессор и память. При выборе контейнерной платформы проверяйте и видимость системных объектов, и ограничения потребления: это разные настройки.
Карта понятия
Сравнить
Связано
Что подтверждено
Пространство имён представляет определённый системный ресурс отдельным экземпляром для входящих в него процессов. Сетевая изоляция и изоляция списка процессов задаются разными типами пространств.
Граница применимости: Механизм пространств имён Linux; набор доступных типов зависит от ядра.
Пространства имён разделяют видимость объектов, а cgroup учитывает и ограничивает потребление ресурсов. Отдельный список процессов не задаёт лимит памяти или процессорного времени.
Граница применимости: Сопоставление пространств имён Linux и cgroup v2.
Два процесса в разных сетевых пространствах имён Linux могут слушать один номер порта без конфликта: у каждого пространства свой набор сетевых сокетов. При общей сети такой изоляции портов уже нет.
Граница применимости: Разные сетевые пространства имён; проброс порта на основной системе — отдельная настройка.
Один процесс может иметь разные PID внутри своего пространства имён и в родительских пространствах. Поэтому PID 1 в контейнере не означает PID 1 основной системы.
Граница применимости: Иерархические пространства имён PID в Linux.
Пространство подключений разделяет дерево подключённых файловых систем. Оно само по себе не шифрует файлы и не отменяет права доступа к данным, которые доступны процессу.
Граница применимости: Пространства подключений Linux; права доступа проверяются отдельно.
Конфигурация среды выполнения может создать новое пространство имён или присоединить контейнер к существующему. Слово «контейнер» не доказывает отдельную сеть или отдельный список процессов.
Граница применимости: Настройка пространств имён контейнера Linux по OCI.
Не путать
Что проверить
- Перечислите, что нужно разделить: процессы, сеть, подключения файловых систем, пользователей.
- Проверьте, какие пространства создаются, а какие контейнер разделяет с основной системой или соседями.
- Сопоставьте PID процесса внутри контейнера и на узле при разборе журналов.
- Отдельно проверьте порты внутри контейнера и порты, опубликованные на узле.
- Проверьте доступные каталоги и права записи в них.
- Задайте ограничения CPU и RAM через cgroup: пространства имён их не заменяют.
Первоисточники
- Control Group v2
Описывает иерархическое распределение ресурсов, контроллеры, ограничения, учёт потребления и пространство имён cgroup.
Утверждения: 02
- Open Container Initiative Runtime Specification
Определяет подготовленный пакет контейнера, config.json, окружение процесса и операции жизненного цикла.
Утверждения: 06