Tutoriel : Se connecter à Azure OpenAI Service dans AKS en utilisant Identité de charge de travail (préversion)
Dans ce tutoriel, vous apprendrez à créer un pod dans un cluster Azure Kubernetes (AKS), qui communique avec Azure OpenAI Service à l’aide de l’identité de la charge de travail et du connecteur de services. Dans ce tutoriel, vous allez effectuer les tâches suivantes :
- Créez un cluster AKS et azure OpenAI Service avec
gpt-4
modèle de déploiement. - Créer une connexion entre le cluster AKS et Azure OpenAI avec le connecteur de services.
- Cloner un exemple d’application qui communiquera avec le service Azure OpenAI à partir d’un cluster AKS.
- Déployer l’application sur un pod dans un cluster AKS et tester la connexion.
- Supprimer des ressources.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
-
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
- Installez Dockeret kubectl pour gérer les ressources d’image conteneur et Kubernetes.
- Compréhension de base du conteneur et d’AKS. Commencez à préparer une application pour AKS.
- Connaissance de base de l’identité de charge de travail.
- Autorisations d’accès pour créer des ressources Azure OpenAI et déployer des modèles.
Créer des ressources Azure
Vous démarrez ce didacticiel en créant plusieurs ressources Azure.
Créez un groupe de ressources pour ce tutoriel.
az group create \ --name MyResourceGroup \ --location eastus
Créez un cluster AKS avec la commande suivante ou en suivant les instructions de ce guide de démarrage AKS. Dans ce tutoriel, nous créons la connexion au service et la définition du pod et nous déployons l’exemple d’application sur ce cluster.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1 --generate-ssh-keys
Connectez-vous au cluster à l’aide de la commande az aks get-credentials.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
Créez une ressource Azure OpenAI Service à l’aide de la commande az cognitiveservices account create. Si vous le souhaitez, reportez-vous facultativement à ce didacticiel pour obtenir plus d’instructions. Azure OpenAI Service est le service cible que nous allons connecter au cluster AKS.
az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAIService \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenaiservice \ --subscription <SubscriptionID>
Déployer un modèle avec la commande az cognitiveservices deployment create. Le modèle est utilisé dans l’exemple d’application pour tester la connexion.
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
Créez une ressource Azure Container Registry (ACR) avec la commande az acr create, ou en vous référant à ce tutoriel. Le registre héberge l’image du conteneur de l’exemple d’application, que la définition du pod AKS consomme.
az acr create \ --resource-group MyResourceGroup \ --name myregistry \ --sku Standard
Activez l’extraction anonyme à l’aide de la commande az acr update afin que le cluster AKS puisse consommer les images dans le registre.
az acr update \ --resource-group MyResourceGroup \ --name MyRegistry \ --anonymous-pull-enabled
Créez une identité gérée attribuée à l’utilisateur(-trice) à l’aide de la commande az identity create, ou en vous référant à ce tutoriel. Lorsque la connexion est créée, l’identité managée affectée par l’utilisateur(-trice) est utilisée pour activer l’identité de la charge de travail pour les charges de travail AKS.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Créer une connexion de service dans AKS avec Connecteur de services (préversion)
Créez une connexion de service entre un cluster AKS et Azure OpenAI Service dans le portail Azure ou l’interface de ligne de commande Azure.
Reportez-vous au guide de démarrage rapide de connexion de service AKS pour obtenir des instructions pour créer une connexion et renseigner les paramètres faisant référence aux exemples du tableau suivant. Conservez toutes les valeurs par défaut des autres paramètres.
Onglet Informations de base :
Setting Valeur d'exemple Description Espace de noms Kubernetes default L’espace de noms Kubernetes Type de service OpenAI Service Type de service cible. Nom de connexion openai_conn Utilisez le nom de la connexion fourni par le connecteur de services ou choisissez votre propre nom de connexion. Abonnement <MySubscription>
L’abonnement utilisé pour le service Azure OpenAI. OpenAI <MyOpenAIService>
Service d’Azure OpenAI cible auquel vous souhaitez vous connecter. Type de client Python Langage de code ou infrastructure que vous utilisez pour vous connecter au service cible. Onglet Authentification :
Paramètre d’authentification Valeur d'exemple Description Type d’authentification Identité de charge de travail Type d’authentification du Connecteur de services. Abonnement <MySubscription>
Abonnement qui contient l’identité managée affectée par l’utilisateur(-trice). Identité managée affectée par l’utilisateur <MyIdentity>
Une identité managée affectée par l’utilisateur est nécessaire pour activer l’identité de charge de travail.
Une fois la connexion créée, vous pouvez afficher ses détails dans le volet du connecteur de services.
Cloner un exemple d’application
Clonez l’exemple de dépôt :
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Accédez au dossier de l’exemple du dépôt pour Azure OpenAI :
cd serviceconnector-aks-samples/azure-openai-workload-identity
Remplacez l’espace réservé
<MyModel>
dans le fichierapp.py
par le nom du modèle que nous avons déployé.
Générer et envoyer (push) des images conteneur
Générez et envoyez (push) les images à votre instance ACR à l’aide de la commande az acr build d’Azure CLI.
az acr build --registry <MyRegistry> --image sc-demo-openai-identity:latest ./
Visualisez les images dans votre instance ACR en utilisant la commande az acr repository list.
az acr repository list --name <MyRegistry> --output table
Exécuter l’application et tester la connexion
Remplacez les espaces réservés dans le fichier
pod.yaml
du dossierazure-openai-workload-identity
.- Remplacez
<YourContainerImage>
par le nom de l’image que nous avons créée précédemment. Par exemple :<MyRegistry>.azurecr.io/sc-demo-openai-identity:latest
. - Remplacez
<ServiceAccountCreatedByServiceConnector>
par le compte de service créé par le Connecteur de services après la création de la connexion. Vous pouvez vérifier le nom du compte de service dans le portail Azure, dans le volet connecteur de services. - Remplacez
<SecretCreatedByServiceConnector>
par le secret créé par le Connecteur de services après la création de la connexion. Vous pouvez vérifier le nom du secret dans le portail Azure, dans le volet connecteur de services.
- Remplacez
Déployez le pod dans votre cluster avec la commande
kubectl apply
, qui crée un pod nommésc-demo-openai-identity
dans l’espace de noms par défaut de votre cluster AKS. S’il n’est pas installé, installezkubectl
localement à l’aide de la commande az aks install-cli.kubectl apply -f pod.yaml
Vérifiez si le déploiement a réussi en consultant le pod avec
kubectl
.kubectl get pod/sc-demo-openai-identity
Vérifiez que la connexion est établie en affichant les journaux avec
kubectl
.kubectl logs pod/sc-demo-openai-identity
Nettoyer les ressources
Si vous n’avez plus besoin des ressources créées dans ce tutoriel, nettoyez-les en supprimant le groupe de ressources.
az group delete \
--resource-group MyResourceGroup
Étapes suivantes
Lisez les articles suivants pour en savoir plus sur les concepts du Connecteur de services et sur la façon dont il aide AKS à se connecter aux services.