Ресурсная модель
В Stackland используется иерархическая модель организации ресурсов. Модель позволяет группировать ресурсы, управлять доступом и квотировать потребление на разных уровнях.
Иерархия ресурсов
Кластер
Кластер — корневая сущность Stackland. На уровне кластера управляются:
- Узлы кластера.
- Конфигурация платформы (
PlatformConfig). - Компоненты (
ComponentInstallation). - Кластерные роли и привязки ролей (
ClusterRole,ClusterRoleBinding). - Федерации с внешними провайдерами идентификации.
Проект
Проект — логическая группировка пространств имен для команды или приложения. На уровне проекта управляются:
- Пространства имен проекта.
- Роли и привязки ролей проекта (
ProjectRole,ProjectRoleBinding). - Квоты на ресурсы проекта.
- IAM-привязки доступа (
ProjectAccessBinding).
Подробнее см. в разделе Проекты.
Пространство имен
Пространство имен — стандартная единица изоляции ресурсов в Kubernetes. В пространстве имен размещаются:
- Рабочие нагрузки (Pod, Deployment, StatefulSet).
- Сервисы (Service, Ingress).
- Ресурсы платформенных сервисов (кластеры PostgreSQL, Apache Kafka®, бакеты Object Storage).
- Роли и привязки ролей (
Role,RoleBinding). - Привязки доступа (
AccessBinding).
Сервисы с собственной ресурсной моделью
Некоторые сервисы имеют собственную ресурсную модель, отличную от иерархии Stackland. Такие сервисы развертываются как отдельные инсталляции с собственным интерфейсом. Управление доступом внутри таких сервисов осуществляется их собственными средствами.
Управление доступом
Доступ можно выдавать на любом уровне иерархии:
- На уровне кластера — через
ClusterRoleBindingилиClusterAccessBinding. Доступ распространяется на все ресурсы кластера. - На уровне проекта — через
ProjectRoleBindingилиProjectAccessBinding. Доступ распространяется на все пространства имен проекта. - На уровне пространства имен — через
RoleBindingилиAccessBinding. Доступ ограничен конкретным пространством имен.
Подробнее см. в разделе Управление доступом.
Квотирование
Квоты можно устанавливать на двух уровнях:
- На уровне проекта — ограничивает суммарное потребление ресурсов всеми пространствами имен проекта. Задается администратором кластера.
- На уровне пространства имен — стандартный механизм Kubernetes
ResourceQuota. Задается администратором проекта.
Подробнее см. в разделе Установить квоты проекта.