Руководство. Подключение к службе Azure OpenAI в AKS с помощью удостоверения рабочей нагрузки (предварительная версия)

В этом руководстве описано, как создать pod в кластере Azure Kubernetes (AKS), который взаимодействует с Azure OpenAI Service с помощью удостоверения рабочей нагрузки и соединителя службы. В этом руководстве выполняются следующие задачи:

  • Создайте кластер AKS и Службу Azure OpenAI с gpt-4 развертыванием модели.
  • Создайте подключение между кластером AKS и Azure OpenAI с помощью соединителя службы.
  • Клонируйте пример приложения, которое будет взаимодействовать со службой Azure OpenAI из кластера AKS.
  • Разверните приложение в модуле pod в кластере AKS и проверьте подключение.
  • Очистите ресурсы.

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

Создание ресурсов Azure

Вы запустите это руководство, создав несколько ресурсов Azure.

  1. Создайте группу ресурсов для этого руководства.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Создайте кластер AKS со следующей командой или с помощью краткого руководства по AKS. В этом руководстве мы создадим определение подключения к службе и pod и развернем пример приложения в этом кластере.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1
        --generate-ssh-keys
    
  3. Подключитесь к кластеру с помощью команды az aks get-credentials .

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Создайте ресурс Службы Azure OpenAI с помощью команды az cognitiveservices account create . Дополнительные инструкции см. в этом руководстве . Служба Azure OpenAI — это целевая служба, которую мы подключим к кластеру AKS.

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAIService \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenaiservice \
        --subscription <SubscriptionID>
    
  5. Разверните модель с помощью команды az cognitiveservices deployment create . Модель используется в примере приложения для проверки подключения.

    az cognitiveservices account deployment create \
        --resource-group MyResourceGroup \
        --name MyOpenAIService
        --deployment-name MyModel \
        --model-name gpt-4 \
        --model-version 0613 \
        --model-format OpenAI \
        --sku-name "Standard"
        --capacity 1
    
  6. Создайте ресурс Реестр контейнеров Azure (ACR) с помощью команды az acr create или ссылки на это руководство. В реестре размещен образ контейнера примера приложения, которое использует определение pod AKS.

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. Включите анонимный запрос с помощью команды az acr update , чтобы кластер AKS мог использовать образы в реестре.

    az acr update \
        --resource-group MyResourceGroup \
        --name MyRegistry \
        --anonymous-pull-enabled
    
  8. Создайте управляемое удостоверение, назначаемое пользователем, с помощью команды az identity create или со ссылкой на это руководство. При создании подключения управляемое удостоверение, назначаемое пользователем, используется для включения удостоверения рабочей нагрузки для рабочих нагрузок AKS.

    az identity create \
        --resource-group MyResourceGroup \
        --name MyIdentity
    

Создание подключения службы в AKS с помощью соединителя службы (предварительная версия)

Создайте подключение службы между кластером AKS и службой Azure OpenAI в портал Azure или Azure CLI.

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

  1. Вкладка Основные сведения:

    Параметр Пример значения Description
    Пространство имен Kubernetes default Пространство имен Kubernetes.
    тип услуги; Служба OpenAI Тип целевой службы.
    Имя подключения openai_conn Используйте имя подключения, предоставленное соединителем службы, или выберите собственное имя подключения.
    Подписка <MySubscription> Подписка, используемая для службы Azure OpenAI.
    OpenAI <MyOpenAIService> Целевая служба Azure OpenAI, к которой требуется подключиться.
    Тип клиента Python Язык кода или платформа, используемая для подключения к целевой службе.
  2. Вкладка проверки подлинности:

    Параметр проверки подлинности Пример значения Description
    Тип проверки подлинности Удостоверение рабочей нагрузки Тип проверки подлинности соединителя службы.
    Подписка <MySubscription> Подписка, содержащая назначаемое пользователем управляемое удостоверение.
    Управляемая единица, назначаемая пользователем <MyIdentity> Управляемое удостоверение, назначаемое пользователем, необходимо для включения удостоверения рабочей нагрузки.

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

Клонирование примера приложения

  1. Клонируйте репозиторий примера.

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Перейдите в пример папки репозитория для Azure OpenAI:

    cd serviceconnector-aks-samples/azure-openai-workload-identity
    
  3. Замените <MyModel> заполнитель в app.py файле именем модели, развернутой нами.

Создание и отправка образов контейнеров

  1. Создайте и отправьте образы в ACR с помощью команды azure CLI az acr build .

    az acr build --registry <MyRegistry> --image sc-demo-openai-identity:latest ./
    
  2. Просмотр изображений в экземпляре ACR с помощью команды az acr репозитория list .

    az acr repository list --name <MyRegistry> --output table
    

Запуск приложения и проверка подключения

  1. Замените заполнители в pod.yaml файле в папке azure-openai-workload-identity .

    • Замените <YourContainerImage> именем образа, созданного ранее. Например, <MyRegistry>.azurecr.io/sc-demo-openai-identity:latest.
    • Замените <ServiceAccountCreatedByServiceConnector> учетную запись службы, созданную соединителем службы после создания подключения. Вы можете проверить имя учетной записи службы в портал Azure на панели соединителя службы.
    • Замените <SecretCreatedByServiceConnector> секретом, созданным соединителем службы после создания подключения. Вы можете проверить имя секрета в портал Azure на панели соединителя служб.
  2. Разверните pod в кластере с kubectl apply помощью команды, которая создает pod с именем sc-demo-openai-identity в пространстве имен по умолчанию кластера AKS. Установите kubectl локально с помощью команды az aks install-cli , если она не установлена.

    kubectl apply -f pod.yaml
    
  3. Проверьте, успешно ли развертывание выполнено, просматривая модуль pod с kubectlпомощью .

    kubectl get pod/sc-demo-openai-identity
    
  4. Убедитесь, что подключение установлено, просматривая журналы с kubectlпомощью .

    kubectl logs pod/sc-demo-openai-identity
    

Очистка ресурсов

Если ресурсы, созданные в этом руководстве, больше не нужны, удалите их, удалив группу ресурсов.

az group delete \
    --resource-group MyResourceGroup

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

Ознакомьтесь со следующими статьями, чтобы узнать больше о концепциях соединителя служб и о том, как это помогает AKS подключаться к службам.