Подключение кластера Kubernetes к рабочей области Машинного обучения Azure

ОБЛАСТЬ ПРИМЕНЕНИЯ:Расширение машинного обучения Azure CLI версии 2 (current)Python SDK azure-ai-ml версии 2 (current)

После развертывания расширения Машинное обучение Azure в кластере AKS или Arc Kubernetes можно подключить кластер Kubernetes к Машинное обучение Azure рабочей области и создать целевые объекты вычислений для специалистов по машинному обучению.

Необходимые компоненты

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

Изоляция нескольких подключений и рабочей нагрузки

Один кластер в одну рабочую область, создание нескольких целевых объектов вычислений

  • Для одного кластера Kubernetes его можно подключить к одной рабочей области несколько раз и создать несколько целевых объектов вычислений для различных проектов, команд или рабочих нагрузок.

Один кластер в несколько рабочих областей

  • Один кластер Kubernetes можно также подключить к нескольким рабочим областям, а несколько рабочих областей могут совместно использовать один и тот же кластер Kubernetes.

Если вы планируете использовать разные целевые объекты вычислений для различных проектов или команд, можно указать существующее пространство имен Kubernetes в кластере для целевого объекта вычислений для изоляции рабочей нагрузки между различными командами или проектами.

Важно!

Пространство имен, которое вы планируете указать при присоединении кластера к рабочей области Машинное обучение Azure, необходимо создать в кластере ранее.

Безопасный доступ к ресурсу Azure из скрипта обучения

Если необходимо безопасно получить доступ к ресурсу Azure из скрипта обучения, можно указать управляемое удостоверение для целевого объекта вычислений Kubernetes во время операции подключения.

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

Машинное обучение Azure рабочей области по умолчанию имеет управляемое удостоверение, назначаемое системой, для доступа к ресурсам Машинное обучение Azure. Действия выполняются, если параметр по умолчанию для управляемого удостоверения, назначаемого системой, включен.

В противном случае, если управляемое удостоверение, назначаемое пользователем, указано в создании рабочей области Машинное обучение Azure, перед присоединением вычислительных ресурсов необходимо предоставить следующие назначения ролей вручную.

Имя ресурса Azure Назначенные роли Description
Azure Relay Владелец Azure Relay Применяется только к кластеру Kubernetes с поддержкой Arc. Azure Relay не создается для кластера AKS без подключения к Arc.
Kubernetes — Azure Arc или Служба Azure Kubernetes Читатель
Участник расширения Kubernetes
Администратор кластера Служба Azure Kubernetes
Применяется к кластеру Kubernetes с поддержкой Arc и кластеру AKS.

Совет

Ресурс Azure Relay создается при развертывании расширения в той же группе ресурсов, что и кластер Kubernetes с поддержкой Arc.

Примечание.

  • Если разрешение роли "Участник расширения Kubernetes" недоступно, вложение кластера завершается ошибкой "расширение не установлено".
  • Если разрешение роли "Администратор кластера Служба Azure Kubernetes" недоступно, вложение кластера завершается ошибкой "внутренний сервер".

Подключение кластера Kubernetes к рабочей области Машинное обучение Azure

Мы поддерживаем два способа подключения кластера Kubernetes к Машинное обучение Azure рабочей области с помощью Azure CLI или пользовательского интерфейса студии.

В следующих командах CLI версии 2 показано, как подключить кластер Kubernetes с поддержкой AKS и Azure Arc и использовать его в качестве целевого объекта вычислений с включенным управляемым удостоверением.

Кластер AKS

az ml compute attach --resource-group <resource-group-name> --workspace-name <workspace-name> --type Kubernetes --name k8s-compute --resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ContainerService/managedclusters/<cluster-name>" --identity-type SystemAssigned --namespace <Kubernetes namespace to run Azure Machine Learning workloads> --no-wait

Кластер Kubernetes с Arc

az ml compute attach --resource-group <resource-group-name> --workspace-name <workspace-name> --type Kubernetes --name amlarc-compute --resource-id "/subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.Kubernetes/connectedClusters/<cluster-name>" --user-assigned-identities "subscriptions/<subscription-id>/resourceGroups/<resource-group-name>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<identity-name>" --no-wait

Задайте для аргумента --type значение Kubernetes. Используйте аргумент identity_type для включения управляемых удостоверений SystemAssigned или UserAssigned.

Важно!

--user-assigned-identities требуется только для управляемых удостоверений UserAssigned. Хотя вы можете предоставить список управляемых пользователем удостоверений с разделителями-запятыми, при присоединении кластера будет использоваться только первый из них.

При подключении вычислительные ресурсов пространство имен Kubernetes не создается автоматически и не выполняется проверка того, существует ли пространство имен Kubernetes. Необходимо убедиться, что указанное пространство имен существует в кластере, в противном случае все Машинное обучение Azure рабочие нагрузки, отправленные в этот вычислительный ресурс, завершится ошибкой.

Назначение управляемого удостоверения целевому объекту вычислений

Распространенной проблемой для разработчиков является управление секретами и учетными данными, используемыми для защиты обмена данными между различными компонентами решения. Управляемые удостоверения устраняют необходимость в управлении учетными данными для разработчиков.

Чтобы получить доступ к Реестр контейнеров Azure (ACR) для образа Docker и учетной записи служба хранилища для обучающих данных, подключите вычислительные ресурсы Kubernetes с включенным управляемым удостоверением, назначаемого системой или назначаемого пользователем.

Назначение управляемого удостоверения

  • Управляемое удостоверение можно назначить вычислению на шаге подключения вычислений.

  • Если вычислительные ресурсы уже подключены, можно обновить параметры для использования управляемого удостоверения в Студия машинного обучения Azure.

    • Перейдите к Студия машинного обучения Azure. Выберите вычислительные ресурсы, подключенные вычисления и выберите подключенные вычислительные ресурсы.
    • Щелкните значок карандаша, чтобы изменить управляемое удостоверение.

    Screenshot of updating identity of the Kubernetes compute from Azure portal.

    Screenshot of selecting identity of the Kubernetes compute from Azure portal.

Назначение ролей Azure управляемому удостоверению

Azure предлагает несколько способов назначения ролей управляемому удостоверению.

Если вы используете портал Azure для назначения ролей и назначаемого системой управляемого удостоверения, выберите пользователя, участника-группы или субъекта-службы, можно найти имя удостоверения, выбрав "Выбрать участников". Имя удостоверения должно быть отформатировано следующим образом <workspace name>/computes/<compute target name>:

Если у вас есть управляемое удостоверение, назначаемое пользователем, выберите управляемое удостоверение , чтобы найти целевое удостоверение.

Управляемое удостоверение можно использовать для извлечения изображений из Реестр контейнеров Azure. Предоставьте роль AcrPull управляемому удостоверению вычислений. Дополнительные сведения см. в разделе Реестр контейнеров Azure ролях и разрешениях.

Для доступа к BLOB-объектам Azure можно использовать управляемое удостоверение:

  • Для назначения только для чтения служба хранилища роль чтения данных BLOB-объектов должна быть предоставлена управляемому удостоверению вычислений.
  • Для назначения записи для чтения служба хранилища роль участника данных BLOB-объектов должна быть предоставлена управляемому удостоверению вычислений.

Следующие шаги