Tutorial: Conectarse a Azure OpenAI Service en AKS mediante la Identidad de carga de trabajo (versión preliminar)
En este tutorial, aprenderá a crear un pod en un clúster de Azure Kubernetes (AKS), que se comunica con Azure OpenAI Service mediante la identidad de carga de trabajo y Service Connector. En este tutorial, va a completar las siguientes tareas:
- Cree un clúster de AKS y una instancia de Azure OpenAI Service con la implementación del modelo
gpt-4
. - Cree una conexión entre el clúster de AKS y Azure OpenAI con Service Connector.
- Clone una aplicación de ejemplo que hablará con el servicio Azure OpenAI desde un clúster de AKS.
- Implemente la aplicación en un pod en el clúster de AKS y pruebe la conexión.
- Limpieza de recursos.
Requisitos previos
- Una cuenta de Azure con una suscripción activa. Cree una cuenta gratuita.
-
Use el entorno de Bash en Azure Cloud Shell. Para más información, consulte Inicio rápido para Bash en Azure Cloud Shell.
Si prefiere ejecutar comandos de referencia de la CLI localmente, instale la CLI de Azure. Si utiliza Windows o macOS, considere la posibilidad de ejecutar la CLI de Azure en un contenedor Docker. Para más información, vea Ejecución de la CLI de Azure en un contenedor de Docker.
Si usa una instalación local, inicie sesión en la CLI de Azure mediante el comando az login. Siga los pasos que se muestran en el terminal para completar el proceso de autenticación. Para ver otras opciones de inicio de sesión, consulte Inicio de sesión con la CLI de Azure.
En caso de que se le solicite, instale las extensiones de la CLI de Azure la primera vez que la use. Para más información sobre las extensiones, consulte Uso de extensiones con la CLI de Azure.
Ejecute az version para buscar cuál es la versión y las bibliotecas dependientes que están instaladas. Para realizar la actualización a la versión más reciente, ejecute az upgrade.
- Instale Docker y kubectl para administrar la imagen de contenedor y los recursos de Kubernetes.
- Conocimientos básicos sobre el contenedor y AKS. Empiece por preparar una aplicación para AKS.
- Conocimientos básicos de la identidad de la carga de trabajo.
- Permisos de acceso para crear recursos de Azure OpenAI e implementar modelos.
Creación de recursos de Azure
Para iniciar este tutorial, cree varios recursos de Azure.
Cree un grupo de recursos para este tutorial.
az group create \ --name MyResourceGroup \ --location eastus
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
Conéctese al clúster mediante el comando az aks get-credentials.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
Cree un recurso de Azure OpenAI Service mediante el comando az cognitiveservices account create. Si lo desea, consulte este tutorial para obtener más instrucciones. Azure OpenAI Service es el servicio de destino que se conectará al clúster de AKS.
az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAIService \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenaiservice \ --subscription <SubscriptionID>
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 MyOpenAIService --deployment-name MyModel \ --model-name gpt-4 \ --model-version 0613 \ --model-format OpenAI \ --sku-name "Standard" --capacity 1
Cree un recurso de Azure Container Registry (ACR) con el comando az acr create o consulte este tutorial. El registro hospeda la imagen de contenedor de la aplicación de ejemplo, que consume la definición del pod de AKS.
az acr create \ --resource-group MyResourceGroup \ --name myregistry \ --sku Standard
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
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 en AKS con Service Connector (versión preliminar)
Cree una conexión de servicio entre un clúster de AKS y Azure OpenAI Service 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.
Pestaña Aspectos básicos:
Configuración Valor de ejemplo Descripción Espacio de nombres de Kubernetes default Espacio de nombres de Kubernetes. Tipo de servicio. OpenAI Service 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 <MySubscription>
La suscripción que se usa para Azure OpenAI Service. OpenAI <MyOpenAIService>
El servicio Azure OpenAI de destino al que quiere conectarse. Tipo de cliente Python Marco o lenguaje de código que se usa para conectarse al servicio de destino. Pestaña Autenticación:
Configuración de autenticación Valor de ejemplo Descripción Tipo de autenticación Identidad de carga de trabajo Tipo de autenticación de Service Connector. Suscripción <MySubscription>
La suscripción que contiene la identidad administrada asignada por el usuario. Identidad administrada asignada por el usuario <MyIdentity>
Se necesita una identidad administrada asignada por el usuario para habilitar la identidad de carga de trabajo.
Una vez creada la conexión, puede ver sus detalles en el panel Service Connector.
Clonación de una aplicación de ejemplo
Clone el repositorio de ejemplo:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Vaya a la carpeta de ejemplo del repositorio para Azure OpenAI:
cd serviceconnector-aks-samples/azure-openai-workload-identity
Reemplace el marcador de posición
<MyModel>
en el archivoapp.py
por el nombre del modelo implementado.
Compilación e inserción de imágenes de contenedor
Compile e inserte las imágenes en ACR mediante el comando az acr build de la CLI de Azure.
az acr build --registry <MyRegistry> --image sc-demo-openai-identity:latest ./
Vea las imágenes de la instancia de ACR mediante el comando az acr repository list.
az acr repository list --name <MyRegistry> --output table
Ejecución de la aplicación y prueba de la conexión
Reemplace los marcadores de posición del archivo
pod.yaml
de la carpetaazure-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 la cuenta de servicio creada por Service Connector después de la creación de la conexión. Puede comprobar el nombre de la cuenta de servicio en Azure Portal, en el panel Service Connector. - Reemplace
<SecretCreatedByServiceConnector>
por el secreto creado por Service Connector después de la creación de la conexión. Puede comprobar el nombre del secreto en Azure Portal, en el panel Service Connector.
- Reemplace
Implemente el pod en el clúster con el comando
kubectl apply
, que crea un pod denominadosc-demo-openai-identity
en el espacio de nombres predeterminado del clúster de AKS. Instalekubectl
localmente mediante el comando az aks install-cli si no está instalado.kubectl apply -f pod.yaml
Compruebe si la implementación se realizó correctamente mediante la visualización del pod con
kubectl
.kubectl get pod/sc-demo-openai-identity
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
Pasos siguientes
Lea los artículos siguientes para obtener más información sobre los conceptos de Service Connector y cómo ayuda a AKS a conectarse a los servicios.