Condividi tramite


Esercitazione: Connettere AKS ad Azure OpenAI

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

Creare risorse Azure OpenAI e AKS

Per iniziare questa esercitazione, creare diverse risorse di Azure.

  1. Creare un gruppo di risorse per questa esercitazione.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Creare 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-keys
    
  3. Connettersi al cluster usando il comando az aks get-credentials.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Creare una risorsa OpenAI di Azure usando il az cognitiveservices account create comando . 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>
    
  5. Distribuire un modello con il az cognitiveservices deployment create comando . 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 1
    
  6. Per archiviare l'applicazione di esempio in contenitori, creare un Registro Azure Container. Usare il az acr create comando o fare riferimento a questa esercitazione.

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. Abilitare il pull anonimo usando il comando az acr update in modo che il cluster del servizio Azure Kubernetes possa usare le immagini nel registro.

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    
  8. Creare un'identità gestita assegnata dall'utente con il az identity create comando 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.

  1. 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.
  2. 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

  1. Clonare il repository di esempio:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Passare alla cartella di esempio del repository per Azure OpenAI:

    cd serviceconnector-aks-samples/azure-openai-workload-identity
    
  3. Sostituire il segnaposto <MyModel> nel file app.py con il nome del modello distribuito.

Compilare e pushare le immagini di container nel Registro dei Container di Azure

  1. Compilare ed eseguire il push delle immagini nel registro contenitori usando il comando az acr build dell'interfaccia della riga di comando di Azure.

    az acr build --registry myregistry --image sc-demo-openai-identity:latest ./
    
  2. 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

  1. Sostituire i segnaposto nel file pod.yaml nella cartella azure-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 .
  2. Distribuire il pod nel tuo cluster con il comando kubectl apply, che crea un pod denominato sc-demo-openai-identity nello spazio dei nomi predefinito del cluster AKS. Installare kubectl localmente usando il az aks install-cli comando se non è installato.

    kubectl apply -f pod.yaml
    
  3. Controllare se la distribuzione è riuscita visualizzando il pod con kubectl.

    kubectl get pod/sc-demo-openai-identity
    
  4. Verificare 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