Настройка мультитенантности#
Чтобы настроить мультитенантность для вычислительного кластера, необходимо создать домены и проекты, назначить им пользователей и определить квоты проектов.
Ограничения
Квоты проектов можно задать только после развертывания вычислительного кластера.
Предварительные требования
Четкое понимание концепции Мультитенантность.
Поскольку квоты могут превышать существующие виртуальные ресурсы, а виртуальные ресурсы не резервируются для каждого из проектов по отдельности, в вычислительном кластере должно быть достаточно виртуальных ресурсов для всех проектов во всех доменах.
Создание домена
На экране Настройки → Проекты и пользователи нажмите Создать домен.
В окне Создать домен укажите имя домена и при необходимости его описание.

Нажмите кнопку Создать.
Используйте следующую команду:
vinfra domain create [--description <description>] [--enable | --disable] <name>
--description <description>Описание домена
--enableВключение домена
--disableОтключение домена
<name>Имя домена
Например, чтобы создать домен mydomain, выполните:
# vinfra domain create mydomain
Созданный домен появится в выводе команды vinfra domain list:
# vinfra domain list
+--------------+----------+---------+--------------------+
| id | name | enabled | description |
+--------------+----------+---------+--------------------+
| default | Default | True | The default domain |
| 24986479e<…> | mydomain | True | |
+--------------+----------+---------+--------------------+
Создание проекта
На экране Настройки → Проекты и пользователи щелкните по домену, внутри которого будет создан проект.
На вкладке Проекты нажмите Создать проект.
В окне Создать проект укажите имя проекта и при необходимости описание. Имя проекта должно быть уникальным в пределах домена.
[Необязательно] Снимите флажок Включен, чтобы отключить созданный проект.
Определите квоты для виртуальных ресурсов, которые будут доступны внутри проекта. Чтобы указать определенное значение для ресурса, сначала снимите рядом с ним флажок Без ограничений.
Примечание
Политика хранилища по умолчанию должна быть доступна проектам, которые будут использовать функцию "Kubernetes как услуга".
Нажмите кнопку Создать.
Используйте следующую команду:
vinfra domain project create [--description <description>] [--enable | --disable]
--domain <domain> <name>
--description <description>Описание проекта
--enableВключение проекта
--disableВыключение проекта
--domain <domain>Имя или идентификатор домена
<name>Имя проекта
Например, чтобы создать проект myproject в домене mydomain и задать описание для проекта, выполните:
# vinfra domain project create myproject --domain mydomain --description "A custom project"
Созданный проект появится в выводе команды vinfra domain project list:
# vinfra domain project list --domain mydomain
+-------------+-----------+---------+------------------+--------------+
| id | name | enabled | description | domain_id |
+-------------+-----------+---------+------------------+--------------+
| 79830e3c<…> | myproject | True | A custom project | 24986479e<…> |
+-------------+-----------+---------+------------------+--------------+
Создание пользователя панели самообслуживания
На экране Настройки → Проекты и пользователи щелкните по домену, внутри которого будет создан пользователь.
Перейдите на вкладку Пользователи домена и нажмите Создать пользователя.
В окне Создать пользователя укажите имя пользователя, пароль и при необходимости адрес электронной почты и описание. Имя пользователя должно быть уникальным в пределах домена.
Выберите роль пользователя:
Чтобы создать администратора домена
Выберите Администратор домена.
[Необязательно] Установите флажок Отправка образов. Состояние этого разрешения будут наследовать пользователи, созданные этим администратором домена.

Чтобы создать администратора проекта
Выберите Участник проекта.
[Необязательно] Установите флажок Отправка образов. Если этот параметр отключен, данный пользователь не сможет отправлять образы.
[Необязательно] Нажмите Назначить и выберите проект, на который будет назначен этот пользователь.
Нажмите кнопку Создать.
Используйте следующую команду:
vinfra domain user create [--email <email>] [--description <description>]
[--assign <project> <role>] [--assign-domain <domain> <roles>]
[--domain-permissions <domain_permissions>]
[--enable | --disable] --domain <domain> <name>
--email <email>Адрес электронной почты пользователя
--description <description>Описание пользователя
--assign <project> <role>Назначение пользователя проекту с одним или несколькими наборами разрешений. Укажите этот параметр несколько раз, чтобы назначить пользователя сразу нескольким проектам.
<project>: идентификатор или имя проекта<role>: роль пользователя в проекте (project_admin— администратор проекта)
--assign-domain <domain> <roles>Назначение пользователя в домен с одним или несколькими наборами разрешений. Укажите этот параметр несколько раз, чтобы назначить пользователя сразу в несколько доменов. Этот параметр допустим только для служебных учетных записей.
<domain>— идентификатор или имя домена<roles>— список ролей служебной учетной записи через запятую ("compute" — вычисления)
--domain-permissions <domain_permissions>Разделенный запятыми список разрешений домена. Чтобы просмотреть список доступных разрешений домена, используйте команду
vinfra domain user list-available-roles | grep domain.--system-permissions <system_permissions>Разделенный запятыми список системных разрешений. Чтобы просмотреть список доступных системных разрешений, используйте команду
vinfra domain user list-available-roles | grep system.--enableВключение пользователя
--disableОтключение пользователя
--domain <domain>Имя или идентификатор домена
<name>Имя пользователя
Пример 1. Чтобы создать администратора домена myadmin для домена mydomain, выполните:
# vinfra domain user create myadmin --domain mydomain --domain-permissions domain_admin
Укажите пароль пользователя.
Пример 2. Чтобы создать участника проекта myuser для проекта myproject домена mydomain и разрешить этому пользователю загрузку образов , выполните:
# vinfra domain user create myuser --domain mydomain --assign myproject project_admin --domain-permissions image_upload
Укажите пароль пользователя.
Созданные пользователи появятся в выводе команды vinfra domain user list:
# vinfra domain user list --domain mydomain
+-------------+---------+-------+---------+-------------+--------------------+---------------------------+
| id | name | email | enabled | description | domain_permissions | assigned_projects |
+-------------+---------+-------+---------+-------------+--------------------+---------------------------+
| 28aa0207<…> | myadmin | | True | | - domain_admin | [] |
| fb9fa0b2<…> | myuser | | True | | - image_upload | - project_id: 79830e3c<…> |
| | | | | | | role: project_admin |
+-------------+---------+-------+---------+-------------+--------------------+---------------------------+
