Поделиться через


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

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

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

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

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

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

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

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

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

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

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

Внимание

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

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

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

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

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

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

Имя ресурса Azure Назначенные роли Описание
Azure Relay Владелец Azure Relay Применяется только к кластеру Kubernetes с поддержкой Arc. Azure Relay не может быть создан для кластеров AKS без подключения к Arc.
Kubernetes — Azure Arc или Служба Azure Kubernetes Читатель
Участник разработки расширений для Kubernetes
Администратор кластера Azure Kubernetes Service
Применяется к кластеру Kubernetes с поддержкой Arc и кластеру AKS.
Служба Azure Kubernetes Участник Требуется только для кластеров AKS, использующих функцию доверенного доступа. В рабочей области используется управляемое удостоверение, назначаемое пользователем. Дополнительные сведения см. в статье о доступе машинного обучения Azure к кластерам AKS с специальными конфигурациями .
Служба Azure Kubernetes Участник Требуется только для кластеров AKS, использующих функцию доверенного доступа. В рабочей области используется управляемое удостоверение, назначаемое пользователем. Дополнительные сведения см. в статье "Получение безопасного доступа для ресурсов Azure в AKS с помощью доверенного доступа ".

Совет

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

Примечание.

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

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

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

В следующих командах 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

Arc-кластер Kubernetes

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 Machine Learning studio.

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

    Снимок экрана обновления идентификатора вычислительных ресурсов Kubernetes в портале Azure.

    Снимок экрана: выбор удостоверения для вычислений Kubernetes из портала Azure.

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

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

Если вы используете портал Azure для назначения ролей и имеете управляемое удостоверение, назначаемое системой, выберите Пользователь, Групповой принципал или Сервисный принципал, выберите Выбрать участников, чтобы найти имя удостоверения. Отформатируйте имя удостоверения следующим образом: <workspace name>/computes/<compute target name>.

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

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

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

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

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