Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa esercitazione illustra come connettere le applicazioni del servizio Azure Kubernetes ad Azure OpenAI usando Service Connector con l'autenticazione dell'identità del carico di lavoro. È quindi possibile stabilire e testare le connessioni senza credenziali distribuendo un'applicazione Python di esempio che comunica con Azure OpenAI.
In questa esercitazione, farai:
- Creare un cluster del servizio Azure Kubernetes e una risorsa Azure OpenAI con il modello GPT-4.
- Configurare Service Connector per stabilire la connessione con l'identità del carico di lavoro.
- Clonare un'applicazione di esempio.
- Creare e pubblicare immagini dei container su Azure Container Registry.
- Distribuire l'applicazione nel servizio Azure Kubernetes e verificare la connessione.
- Pulire le risorse.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
-
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Introduzione ad Azure Cloud Shell.
Se preferisci eseguire i comandi di riferimento CLI in locale, installa la CLI di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Eseguire l'autenticazione ad Azure con l'interfaccia della riga di comando di Azure.
Quando richiesto, installare al primo utilizzo l'estensione CLI di Azure. Per altre informazioni sulle estensioni, vedere Usare e gestire le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
- Docker e kubectl per gestire le immagini del contenitore e le risorse kubernetes.
- Conoscenza di base delle conteiner e di AKS. Partire dalla preparazione di un'applicazione per AKS.
- Autorizzazioni di accesso per creare risorse OpenAI di Azure e distribuire modelli.
Creare risorse Azure OpenAI e AKS
Per iniziare questa esercitazione, creare diverse risorse di Azure.
Creare un gruppo di risorse per questa esercitazione.
az group create \ --name MyResourceGroup \ --location eastusCreare un cluster del servizio Azure Kubernetes con il comando seguente oppure facendo riferimento alla guida introduttiva Avvio rapido servizio Azure Kubernetes. In questa esercitazione viene creata la connessione al servizio e la definizione del pod e viene distribuita l'applicazione di esempio in questo cluster.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1 \ --generate-ssh-keysConnettersi al cluster usando il comando
az aks get-credentials.az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterCreare una risorsa OpenAI di Azure usando il
az cognitiveservices account createcomando . Facoltativamente, fare riferimento a questa esercitazione per altre istruzioni. Azure OpenAI è il servizio di destinazione a cui si connette il cluster AKS.az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAI \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenai \ --subscription <SubscriptionID>Distribuire un modello con il
az cognitiveservices deployment createcomando . Il modello viene usato nell'applicazione di esempio per testare la connessione.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 1Per archiviare l'applicazione di esempio in contenitori, creare un Registro Azure Container. Usare il
az acr createcomando o fare riferimento a questa esercitazione.az acr create \ --resource-group MyResourceGroup \ --name myregistry \ --sku StandardAbilitare il pull anonimo usando il comando
az acr updatein modo che il cluster del servizio Azure Kubernetes possa usare le immagini nel registro.az acr update \ --resource-group MyResourceGroup \ --name myregistry \ --anonymous-pull-enabledCreare un'identità gestita assegnata dall'utente con il
az identity createcomando o facendo riferimento a questa esercitazione. Quando si crea la connessione, l'identità gestita assegnata dall'utente viene usata per abilitare l'identità del carico di lavoro per i carichi di lavoro del servizio Azure Kubernetes.az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Creare una connessione di servizio dall'Azure Kubernetes Service ad Azure OpenAI
Creare una connessione di servizio tra un cluster AKS e Azure OpenAI nel portale di Azure o nella CLI di Azure.
Per istruzioni su come creare una nuova connessione e compilare le impostazioni facendo riferimento agli esempi nella tabella seguente, consultare l'avvio rapido della connessione al servizio AKS. Per tutte le altre impostazioni lasciare i valori predefiniti.
Scheda Basic:
Impostazione Valore di esempio Descrizione Spazio dei nomi Kubernetes default The Kubernetes namespace. Tipo di servizio Servizio OpenAI Tipo di servizio di destinazione. Nome connessione openai_conn Usare il nome della connessione fornito dal connettore di servizi o selezionare il proprio nome di connessione. Abbonamento Sottoscrizione personale Sottoscrizione di Azure contenente la risorsa OpenAI di Azure. OpenAI MyOpenAI La risorsa OpenAI di Azure di destinazione a cui ci si vuole connettere. Tipo client Python Linguaggio di programmazione o framework per la configurazione della connessione. Scheda Autenticazione
impostazione di autenticazione Valore di esempio Descrizione Tipo di autenticazione Identità del carico di lavoro Metodo di autenticazione per connettere l'app ad Azure OpenAI. L'identità del carico di lavoro è consigliata per una maggiore sicurezza. I metodi alternativi includono la stringa di connessione e l'entità servizio e richiedono considerazioni sulla gestione delle credenziali. Abbonamento Sottoscrizione personale Sottoscrizione che contiene l'identità gestita assegnata dall'utente. Identità gestita assegnata dall'utente MyIdentity L'identità gestita assegnata dall'utente che abilita l'autenticazione con identità del carico di lavoro per il cluster del servizio Azure Kubernetes.
Dopo aver creato la connessione, è possibile visualizzarne i dettagli nel riquadro Connettore di servizi .
Clonare un'applicazione di esempio Python
Clonare il repository di esempio:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.gitPassare alla cartella di esempio del repository per Azure OpenAI:
cd serviceconnector-aks-samples/azure-openai-workload-identitySostituire il segnaposto
<MyModel>nel fileapp.pycon il nome del modello distribuito.
Compilare e pushare le immagini di container nel Registro dei Container di Azure
Compilare ed eseguire il push delle immagini nel registro contenitori usando il comando
az acr builddell'interfaccia della riga di comando di Azure.az acr build --registry myregistry --image sc-demo-openai-identity:latest ./Visualizzare le immagini nel registro contenitori usando il comando
az acr repository list.az acr repository list --name myregistry --output table
Distribuire e testare la connessione di AKS verso Azure OpenAI
Sostituire i segnaposto nel file
pod.yamlnella cartellaazure-openai-workload-identity.- Sostituire
<YourContainerImage>con il nome dell'immagine creata in precedenza. Ad esempio:<myregistry>.azurecr.io/<sc-demo-openai-identity>:<latest>. - Sostituire
<ServiceAccountCreatedByServiceConnector>con il nome dell'account del servizio. È disponibile nel portale di Azure nel riquadro Connettore di servizi . - Sostituire
<SecretCreatedByServiceConnector>con il nome del segreto. È disponibile nel portale di Azure nel riquadro Connettore di servizi .
- Sostituire
Distribuire il pod nel tuo cluster con il comando
kubectl apply, che crea un pod denominatosc-demo-openai-identitynello spazio dei nomi predefinito del cluster AKS. Installarekubectllocalmente usando ilaz aks install-clicomando se non è installato.kubectl apply -f pod.yamlControllare se la distribuzione è riuscita visualizzando il pod con
kubectl.kubectl get pod/sc-demo-openai-identityVerificare che la connessione venga stabilita visualizzando i log con
kubectl.kubectl logs pod/sc-demo-openai-identity
Pulire le risorse
Se le risorse create in questa esercitazione non sono più necessarie, eliminarle eliminando il gruppo di risorse.
az group delete \
--resource-group MyResourceGroup