Compartir a través de


Tutorial: Conexión de AKS a Azure OpenAI

En este tutorial, se muestra cómo conectar las aplicaciones de Azure Kubernetes Service (AKS) a Azure OpenAI mediante Service Connector con la autenticación de identidad de carga de trabajo. Para establecer conexiones sin credenciales, implemente una aplicación de Python de ejemplo que se comunique con Azure OpenAI.

Deberá completar las siguientes tareas:

  • Creación de un clúster de AKS y un recurso de Azure OpenAI con el modelo GPT-4
  • Configuración de Service Connector para establecer la conexión con la identidad de carga de trabajo
  • Clonar una aplicación de ejemplo
  • Compilación e inserción de imágenes de contenedor en Azure Container Registry
  • Implementación de la aplicación en AKS y comprobación de la conexión
  • Limpieza de recursos

Requisitos previos

Creación de recursos de Azure OpenAI y AKS

Para iniciar este tutorial, cree varios recursos de Azure.

  1. Cree un grupo de recursos para este tutorial.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Cree un clúster de AKS con el comando siguiente o consulte el inicio rápido de AKS. En este tutorial, creamos la conexión de servicio y la definición de pod e implementamos la aplicación de ejemplo en este clúster.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1 \
        --generate-ssh-keys
    
  3. Conéctese al clúster mediante el comando az aks get-credentials.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Cree un recurso de Azure OpenAI mediante el comando az cognitiveservices account create. Si lo desea, consulte este tutorial para obtener más instrucciones. Azure OpenAI es el servicio de destino al que se conectará el clúster de AKS.

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenai \
        --subscription <SubscriptionID>
    
  5. Implemente un modelo con el comando az cognitiveservices deployment create. El modelo se usa en la aplicación de ejemplo para probar la conexión.

    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. Cree una instancia de Azure Container Registry (ACR) para almacenar la aplicación de ejemplo en contenedor. Use el comando az acr create o consulte este tutorial.

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. Habilite la extracción anónima mediante el comando az acr update para que el clúster de AKS pueda consumir las imágenes en el registro.

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    
  8. Cree una identidad administrada asignada por el usuario con el comando az identity create o consulte este tutorial. Cuando se crea la conexión, la identidad administrada asignada por el usuario se usa para habilitar la identidad de carga de trabajo para las cargas de trabajo de AKS.

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

Creación de una conexión de servicio desde AKS a Azure OpenAI

Cree una conexión de servicio entre un clúster de AKS y Azure OpenAI en Azure Portal o la CLI de Azure.

Consulte el inicio rápido de conexión del servicio AKS para obtener instrucciones para crear una nueva conexión y rellenar la configuración que hace referencia a los ejemplos de la tabla siguiente. Deje todas las demás opciones de configuración con sus valores predeterminados.

  1. Pestaña Aspectos básicos:

    Configuración Valor de ejemplo Descripción
    Espacio de nombres de Kubernetes valor predeterminado Espacio de nombres de Kubernetes.
    Tipo de servicio Servicio OpenAI El tipo de servicio de destino.
    Nombre de la conexión openai_conn Use el nombre de conexión proporcionado por Service Connector o elija su propio nombre de conexión.
    Suscripción Mi suscripción La suscripción de Azure que contiene el recurso de Azure OpenAI.
    OpenAI MyOpenAI El recurso Azure OpenAI de destino al que quiere conectarse.
    Tipo de cliente Python Lenguaje de programación o marco para la configuración de conexión.
  2. Pestaña Autenticación:

Configuración de autenticación Valor de ejemplo Descripción
Tipo de autenticación Identidad de carga de trabajo Método de autenticación para conectar la aplicación a Azure OpenAI. Se recomienda la identidad de la carga de trabajo para mejorar la seguridad. Los métodos alternativos incluyen la cadena de conexión y la entidad de servicio, y requieren consideraciones de administración de credenciales.
Suscripción Mi suscripción La suscripción que contiene la identidad administrada asignada por el usuario.
Identidad administrada asignada por el usuario myidentity Identidad administrada asignada por el usuario que habilita la autenticación de identidad de carga de trabajo para el clúster de AKS.

Cuando se crea la conexión, puede ver sus detalles en el panel Conector de servicio.

Clonación de la aplicación de ejemplo de Python

  1. Clone el repositorio de ejemplo:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Vaya a la carpeta de ejemplo del repositorio para Azure OpenAI:

    cd serviceconnector-aks-samples/azure-openai-workload-identity
    
  3. Reemplace el marcador de posición <MyModel> en el archivo app.py por el nombre del modelo implementado.

Compilación e inserción de imágenes de contenedor en Azure Container Registry

  1. Compile e inserte las imágenes en el registro de contenedor mediante el comando az acr build de la CLI de Azure.

    az acr build --registry myregistry --image sc-demo-openai-identity:latest ./
    
  2. Vea las imágenes del registro de contenedor mediante el comando az acr repository list.

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

Implementación y prueba de AKS en la conexión de Azure OpenAI

  1. Reemplace los marcadores de posición del archivo pod.yaml de la carpeta azure-openai-workload-identity.

    • Reemplace <YourContainerImage> por el nombre de la imagen que compilamos anteriormente. Por ejemplo, <myregistry>.azurecr.io/<sc-demo-openai-identity>:<latest>.
    • Reemplace <ServiceAccountCreatedByServiceConnector> por el nombre de la cuenta de servicio. Puede encontrarse en Azure Portal, en el panel Conector de servicio.
    • Reemplace <SecretCreatedByServiceConnector> por el nombre del secreto. Puede encontrarse en Azure Portal, en el panel Conector de servicio.
  2. Implemente el pod en el clúster con el comando kubectl apply, que crea un pod denominado sc-demo-openai-identity en el espacio de nombres predeterminado del clúster de AKS. Instale kubectl localmente mediante el comando az aks install-cli si no está instalado.

    kubectl apply -f pod.yaml
    
  3. Compruebe si la implementación se realizó correctamente mediante la visualización del pod con kubectl.

    kubectl get pod/sc-demo-openai-identity
    
  4. Compruebe que la conexión se establezca mediante la visualización de los registros con kubectl.

    kubectl logs pod/sc-demo-openai-identity
    

Limpieza de recursos

Si ya no necesita los recursos creados en este tutorial, límpielos eliminando el grupo de recursos.

az group delete \
    --resource-group MyResourceGroup