Проекты
Проект — логическая единица организации ресурсов в Stackland. Проект объединяет несколько пространств имен Kubernetes и позволяет управлять доступом и квотами на уровне команды или приложения.
Иерархия ресурсов
В Stackland используется трехуровневая иерархия:
- Кластер — корневая сущность, включающая все ресурсы Stackland.
- Проект — логическая группировка пространств имен для команды или приложения.
- Пространство имен — стандартное пространство имен Kubernetes для изоляции ресурсов.
Каждое пространство имен принадлежит строго одному проекту.
Основные возможности
Группировка пространств имен
Проект объединяет несколько пространств имен под единым управлением. Это удобно для:
- Организации окружений разработки (dev, staging, production).
- Разделения микросервисов одного приложения.
- Управления ресурсами команды или отдела.
Пространства имен внутри проекта именуются с обязательным префиксом <имя_проекта>-. Например, для проекта billing допустимы пространства имен billing-backend, billing-frontend.
Управление доступом
На уровне проекта можно назначать роли пользователям и группам:
- Роли, назначенные на уровне проекта, автоматически распространяются на все пространства имен внутри проекта.
- Администратор проекта может самостоятельно управлять доступом, не привлекая администратора кластера.
Подробнее см. в разделе Настроить роли проекта.
Квоты
Проект позволяет устанавливать общие квоты на ресурсы:
- Ограничение суммарного потребления CPU и памяти всеми пространствами имен проекта.
- Ограничение объема хранилища.
- Ограничение количества GPU.
Квоты задает администратор кластера при создании или редактировании проекта. Если суммарная утилизация ресурсов во всех пространствах имен проекта превышает квоту, создание новых ресурсов блокируется.
Подробнее см. в разделе Установить квоты проекта.
Структура проекта
При создании проектов Stackland автоматически создает служебные пространства имен вида project-<имя_проекта>. В них размещаются ресурсы управления проектами: ProjectNamespace, ProjectRole, ProjectRoleBinding.
Пользовательская нагрузка в служебном пространстве имен не размещается.
Системные проекты
Проект stackland
При развертывании Stackland автоматически создается проект stackland. Все системные пространства имен (например, stackland-console, stackland-monitoring) входят в этот проект.
Проект default
При развертывании Stackland автоматически создается проект default. Пространства имен, созданные без явного указания проекта, автоматически попадают в проект default.
Пространства имен в проекте default не обязаны иметь префикс default-. Однако их имена не могут начинаться с stackland- или project-.
Проект default нельзя удалить.