Настройка мультитенантности

Чтобы настроить мультитенантность для вычислительного кластера, необходимо создать домены и проекты, назначить им пользователей и определить квоты проектов.

Ограничения

  • Квоты проектов можно задать только после развертывания вычислительного кластера.

Предварительные требования

  • Четкое понимание концепции Мультитенантность.
  • Поскольку квоты могут превышать существующие виртуальные ресурсы, а виртуальные ресурсы не резервируются для каждого из проектов по отдельности, в вычислительном кластере должно быть достаточно виртуальных ресурсов для всех проектов во всех доменах.

Чтобы создать домен

Панель администратора

  1. На экране Настройки > Проекты и пользователи нажмите Создать домен.
  2. В окне Создать домен укажите имя домена и при необходимости его описание.

  3. Нажмите кнопку Создать.

Интерфейс командной строки

Используйте следующую команду:

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    |                    |
+--------------+----------+---------+--------------------+

Чтобы создать проект

Панель администратора

  1. На экране Настройки > Проекты и пользователи щелкните по домену, внутри которого будет создан проект.
  2. На вкладке Проекты нажмите Создать проект.
  3. В окне Создать проект укажите имя проекта и при необходимости описание. Имя проекта должно быть уникальным в пределах домена.
  4. Снимите флажок Включен, чтобы отключить созданный проект.

  5. Определите квоты для виртуальных ресурсов, которые будут доступны внутри проекта. Чтобы указать определенное значение для ресурса, сначала снимите рядом с ним флажок Без ограничений.

    Политика хранилища по умолчанию должна быть доступна проектам, которые будут использовать функцию «Kubernetes как услуга».

  6. Нажмите кнопку Создать.

Интерфейс командной строки

Используйте следующую команду:

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<…> |
+-------------+-----------+---------+------------------+--------------+

Чтобы создать пользователя самообслуживания

Панель администратора

  1. На экране Настройки > Проекты и пользователи щелкните по домену, внутри которого будет создан пользователь.
  2. Перейдите на вкладку Пользователи домена и нажмите Создать пользователя.
  3. В окне Создать пользователя укажите имя пользователя, пароль и при необходимости адрес электронной почты и описание. Имя пользователя должно быть уникальным в пределах домена.
  4. Выберите роль пользователя:
  5. Нажмите кнопку Создать.

Интерфейс командной строки

Используйте следующую команду:

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     |
+-------------+---------+-------+---------+-------------+--------------------+---------------------------+