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


Руководство. Подключение AKS к Azure OpenAI

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

Вы выполните следующие задачи:

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

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

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

Вы запустите это руководство, создав несколько ресурсов 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 . Дополнительные инструкции см. в этом руководстве . Azure OpenAI — это целевая служба, к к которому будет подключаться кластер AKS.

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

    az cognitiveservices account deployment create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --deployment-name MyModel \
        --model-name gpt-4 \
        --model-version 0613 \
        --model-format OpenAI \
        --sku-name "Standard" \
        --capacity 1
    
  6. Создайте реестр контейнеров Azure (ACR) для хранения контейнерного примера приложения. Используйте команду az acr create или ознакомьтесь с этим руководством.

    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 к Azure OpenAI

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

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

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

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

Параметр проверки подлинности Пример значения Description
Тип проверки подлинности Удостоверение рабочей нагрузки Метод проверки подлинности для подключения приложения к Azure OpenAI. Для повышения безопасности рекомендуется использовать удостоверение рабочей нагрузки. К альтернативным методам относятся строка подключения и субъект-служба, а также требуются рекомендации по управлению учетными данными.
Подписка Моя подписка Подписка, содержащая управляемое удостоверение, назначаемое пользователем.
Управляемая единица, назначаемая пользователем myidentity Назначаемое пользователем управляемое удостоверение, которое обеспечивает проверку подлинности удостоверений рабочей нагрузки для кластера AKS.

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

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

  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 файле именем модели, развернутой нами.

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

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

    az acr build --registry myregistry --image sc-demo-openai-identity:latest ./
    
  2. Просмотр образов в реестре контейнеров с помощью команды az acr repository list .

    az acr repository list --name myregistry --output table
    

Развертывание и проверка подключения AKS к Azure OpenAI

  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