Ответ 1
Keystone - это служба управления идентификацией для OpenStack.
По существу, роль заключается в предоставлении токенов пользователям, будь то люди, службы или что-либо вообще.
Если вы делаете запрос API в любом месте OpenStack, API-интерфейс keystone - это способ его обнаружения, если вам разрешено делать этот запрос API.
Давайте работать с земли.
Пользователи. Пользователи в Keystone сегодня, как правило, люди. В настоящий момент не хватает тонкой поддержки ACL, чтобы действительно называть многих пользователей в OpenStack "учетной записью службы" в традиционном смысле. Но есть учетная запись службы, которая используется в качестве backhaul-соединения с API-интерфейсом Keystone как часть самой инфраструктуры OpenStack. Мы не будем вникать в этого аномального пользователя.
Когда пользователь аутентифицируется на Keystone (вы нажимаете OS_AUTH_URL, чтобы поговорить с keystone.. обычно, порт 5000 из керосинового api box), пользователь говорит, что "я пользователь X, у меня есть пароль Y, и я принадлежу к арендатор Z".
X может быть именем пользователя или userid (уникальным uuid пользователя) Y - это пароль, но вы также можете выполнить аутентификацию с помощью токена. Z - это имя арендатора или идентификатор арендатора (уникальный уэйд арендатора). в прошлых API-интерфейсах Keystone вам не нужно было указывать имя арендатора, но ваш токен не был бы очень полезен, если бы вы не сделали это, поскольку токен не был связан с вашим арендатором, и тогда вам будет отказано в каких-либо списках ACL на этом арендатор.
Итак... пользователь - довольно очевидная вещь. Пароль - довольно очевидная вещь. Но какой арендатор?
Хорошо, арендатор также известен как проект. Фактически, неоднократно предпринимались попытки сделать это имя либо арендатором, либо проектом, но в результате неспособности придерживаться только одного термина они означают одно и то же. Что касается API, проект является арендатором. Поэтому, если вы заходите в горизонт, вы увидите выпадение для своих проектов. Каждый проект соответствует идентификатору арендатора. Ваши жетоны связаны с определенным идентификатором арендатора. Таким образом, для пользователя может потребоваться несколько токенов, если вы намереваетесь работать с несколькими арендаторами, к которым подключен пользователь.
Теперь скажите, что вы добавляете пользователя в идентификатор арендатора администратора. Получает ли пользователь права администратора? Ответ - нет. То, где играют роли. Хотя пользователь в администраторе-арендаторе может иметь доступ к виртуальным машинам администратора и квотам для разворачивания виртуальных машин, пользователь не сможет делать такие вещи, как запрос к трассировке списка пользователей. Но если вы добавите роль администратора для этого пользователя, они будут наделены правами ACL, чтобы действовать как администратор в API-интерфейсе keystone и других API. Поэтому подумайте о арендаторе как о группе ресурсов и о роли в качестве набора ACL.
Областибольше похожи на способы географической группировки физических ресурсов в среде инфраструктуры openstack. скажем, у вас есть два сегментированных центра обработки данных. вы можете поместить его в область A вашей среды openstack, а другая в регионе B. области с точки зрения их полезности быстро развиваются, особенно с введением ячеек и доменов в более поздние выпуски openstack. Вам, вероятно, не нужно быть мастером этого знания, если вы не собираетесь создавать большие облака.
keystone предоставляет последнюю полезную вещь. каталог. каталог трапецеидальных искажений похож на телефонную книгу для API-интерфейсов openstack. всякий раз, когда вы используете клиент командной строки, например, когда вы можете назвать список nova для списка своих экземпляров, nova сначала проверяет подлинность на трапецеидальность и получает маркер для использования API, но также сразу же запрашивает каталог трассировки списка конечных точек API. Для keystone, cinder, nova, glance, swift... и т.д. Nova действительно будет использовать только конечную точку nova-api, хотя в зависимости от вашего запроса вы можете использовать конечную точку API административного трапецеидального искажения... мы вернемся к этому, Но, по сути, каталог - это канонический источник информации, в котором API находятся в мире. Таким образом, вам всегда нужно сообщить клиенту, где находится конечная точка публичного API-трапеции, и он может выяснить остальную часть из каталога.
Теперь я сделал ссылку на общедоступный API и административный API для ключевого слова.
Yep keystone имеет два API... вроде. Он запускает API на порту 5000, а другой - в диапазоне 32000. 5000 - общественный порт. Здесь вы делаете такие вещи, как поиск каталога, и попросите токен, чтобы вы могли разговаривать с другими API. Это очень просто и несколько затвердело. Административный API будет использоваться для таких вещей, как изменение пароля пользователя или добавление новой роли пользователю.
Довольно прямо?