Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Ce tutoriel vous montre comment connecter vos applications Azure Kubernetes Service (AKS) à Azure OpenAI à l’aide de Service Connector avec l’authentification des identités de charge de travail. Vous allez établir des connexions sans informations d’identification en déployant un exemple d’application Python qui communique avec Azure OpenAI.
Vous allez effectuer les tâches suivantes :
- Créer un cluster AKS et une ressource Azure OpenAI avec un modèle GPT-4
- Configurer Service Connector pour établir la connexion avec l’identité de charge de travail
- Cloner un exemple d’application
- Générer et envoyer (push) des images conteneur vers Azure Container Registry
- Déployer l’application sur AKS et vérifier la connexion
- Nettoyer les ressources
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
-
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour obtenir plus d’informations, consultez Démarrage d’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 obtenir d’autres options de connexion, consultez S’authentifier auprès d’Azure à l’aide d’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 et gérer 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.
- Docker et kubectl pour gérer les images conteneur et les ressources Kubernetes.
- Compréhension de base des conteneurs et AKS. Commencez à préparer une application pour AKS.
- Autorisations d’accès pour créer des ressources Azure OpenAI et déployer des modèles.
Créer des ressources Azure OpenAI et AKS
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 eastusCré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-keysConnectez-vous au cluster à l’aide de la commande az aks get-credentials.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterCréez une ressource Azure OpenAI à 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 est le service cible auquel le cluster AKS se connecte.
az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAI \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenai \ --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 MyOpenAI \ --deployment-name MyModel \ --model-name gpt-4 \ --model-version 0613 \ --model-format OpenAI \ --sku-name "Standard" \ --capacity 1Créez un Registre de conteneurs Azure (ACR) pour stocker l’exemple d’application conteneurisé. Utilisez la commande az acr create ou reportez-vous à ce didacticiel.
az acr create \ --resource-group MyResourceGroup \ --name myregistry \ --sku StandardActivez 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-enabledCré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 est utilisée pour activer l’identité de charge de travail pour les charges de travail AKS.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Créer une connexion de service d’AKS à Azure OpenAI
Créez une connexion de service entre un cluster AKS et Azure OpenAI dans le portail Azure ou Azure CLI.
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 Mon abonnement Abonnement Azure contenant votre ressource Azure OpenAI. OpenAI MyOpenAI Ressource Azure OpenAI cible à laquelle vous souhaitez vous connecter. Type de client Python Langage de programmation ou infrastructure pour la configuration de la connexion. Onglet Authentification :
| Paramètre d’authentification | Valeur d'exemple | Description |
|---|---|---|
| Type d’authentification | Identité de charge de travail | Méthode d’authentification pour connecter l’application à Azure OpenAI. L’identité de charge de travail est recommandée pour renforcer la sécurité. Les autres méthodes incluent la chaîne de connexion et le principal de service, et nécessitent des considérations relatives à la gestion des informations d’identification. |
| Abonnement | Mon abonnement | Abonnement qui contient l’identité managée affectée par l’utilisateur. |
| Identité managée affectée par l’utilisateur | myidentity | Identité managée affectée par l’utilisateur qui active l’authentification d’identité de charge de travail pour le cluster AKS. |
Une fois la connexion créée, vous pouvez afficher ses détails dans le volet Connecteur de services.
Cloner un exemple d’application Python
Clonez l’exemple de dépôt :
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.gitAccédez au dossier de l’exemple du dépôt pour Azure OpenAI :
cd serviceconnector-aks-samples/azure-openai-workload-identityRemplacez l’espace réservé
<MyModel>dans le fichierapp.pypar le nom du modèle que nous avons déployé.
Générer et envoyer (push) des images conteneur vers Azure Container Registry
Générez et envoyez (push) les images à votre registre de conteneurs à l’aide de la commande Azure CLI az acr build .
az acr build --registry myregistry --image sc-demo-openai-identity:latest ./Affichez les images dans votre registre de conteneurs à l’aide de la commande az acr repository list .
az acr repository list --name myregistry --output table
Déployer et tester akS sur une connexion Azure OpenAI
Remplacez les espaces réservés dans le fichier
pod.yamldu dossierazure-openai-workload-identity.- Remplacez
<YourContainerImage>par le nom de l’image que vous avez créée précédemment. Par exemple,<myregistry>.azurecr.io/<sc-demo-openai-identity>:<latest>. - Remplacez
<ServiceAccountCreatedByServiceConnector>par le nom du compte de service. Il se trouve dans le portail Azure, dans le volet Connecteur de service . - Remplacez
<SecretCreatedByServiceConnector>par le nom du secret. Il se trouve dans le portail Azure, dans le volet Connecteur de service .
- Remplacez
Déployez le pod dans votre cluster avec la commande
kubectl apply, qui crée un pod nommésc-demo-openai-identitydans l’espace de noms par défaut de votre cluster AKS. S’il n’est pas installé, installezkubectllocalement à l’aide de la commande az aks install-cli.kubectl apply -f pod.yamlVérifiez si le déploiement a réussi en consultant le pod avec
kubectl.kubectl get pod/sc-demo-openai-identityVé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