Freigeben über


Verbinden von AKS mit Azure OpenAI

In diesem Tutorial erfahren Sie, wie Sie Ihre Azure Kubernetes Service (AKS)-Anwendungen mit Azure OpenAI mithilfe von Service Connector mit Workload-Identitätsauthentifizierung verbinden. Sie richten anmeldeinformationsfreie Verbindungen ein, indem Sie eine Python-Beispielanwendung bereitstellen, die mit Azure OpenAI kommuniziert.

Sie führen die folgenden Aufgaben aus:

  • Erstellen eines AKS-Clusters und einer Azure OpenAI-Ressource mit GPT-4-Modell
  • Konfigurieren des Dienstconnectors zum Herstellen der Verbindung mit der Workload-Identität
  • KLonen einer Beispielanwendung
  • Erstellen und Pushen von Containerimages in Azure Container Registry
  • Bereitstellen der Anwendung auf AKS und Überprüfen der Verbindung
  • Bereinigen von Ressourcen

Voraussetzungen

Erstellen von Azure OpenAI- und AKS-Ressourcen

Sie beginnen dieses Tutorial, indem Sie mehrere Azure-Ressourcen erstellen.

  1. Erstellen Sie eine Ressourcengruppe für dieses Tutorial.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Erstellen Sie ein AKS-Cluster mit dem folgenden Befehl, oder verweisen Sie auf AKS-Schnellstart. In diesem Tutorial erstellen wir die Dienstverbindungs- und Poddefinition und stellen die Beispielanwendung für dieses Cluster bereit.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1 \
        --generate-ssh-keys
    
  3. Stellen Sie mithilfe des Befehls azks get-credentials eine Verbindung mit dem Cluster her.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Erstellen Sie eine Azure OpenAI Ressource mit dem Befehl az cognitiveservices account create. Optional finden Sie in diesem Tutorial weitere Anweisungen. Azure OpenAI ist der Zieldienst, mit dem der AKS-Cluster eine Verbindung herstellt.

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenai \
        --subscription <SubscriptionID>
    
  5. Stellen Sie ein Modell mit dem Befehl az cognitiveservices-Bereitstellung erstellen bereit. Das Modell wird in der Beispielanwendung verwendet, um die Verbindung zu testen.

    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. Erstellen Sie eine Azure Container Registry (ACR), um die containerisierte Beispielanwendung zu speichern. Verwenden Sie den Befehl az acr erstellen, oder lesen Sie dieses Tutorial.

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. Aktivieren Sie anonymen Pull mit dem Befehl az acr Update, damit das AKS-Cluster die Bilder in der Registrierung nutzen kann.

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    
  8. Erstellen Sie eine vom Benutzer zugewiesene verwaltete Identität mit dem Befehl az identity create oder verweisen Sie auf dieses Tutorial. Wenn die Verbindung erstellt wird, wird die vom Benutzer zugewiesene verwaltete Identität verwendet, um die Workloadidentität für AKS-Workloads zu aktivieren.

    az identity create \
        --resource-group MyResourceGroup \
        --name MyIdentity
    

Erstellen einer Dienstverbindung von AKS zu Azure OpenAI

Erstellen Sie eine Dienstverbindung zwischen einem AKS-Cluster und dem Azure OpenAI im Azure-Portal oder der Azure CLI.

Anweisungen zum Erstellen einer neuen Verbindung finden Sie in der Schnellstartanleitung für die AKS-Dienstverbindung, und füllen Sie die Einstellungen aus, die sich auf die Beispiele in der folgenden Tabelle beziehen. Behalten Sie alle anderen Einstellungen mit ihren Standardwerten bei.

  1. Registerkarte Grundlagen:

    Einstellung Beispielwert BESCHREIBUNG
    Kubernetes-Namespace Standardwert Der Kubernetes-Namespace.
    Diensttyp OpenAI-Dienst Art des Zieldiensts.
    Verbindungsname openai_conn Verwenden Sie den von Service Connector bereitgestellten Verbindungsnamen oder wählen Sie Ihren eigenen Verbindungsnamen.
    Abonnement Mein Abonnement Das Azure-Abonnement, das Ihre Azure OpenAI-Ressource enthält.
    OpenAI MyOpenAI Die Azure OpenAI-Ressource, mit dem Sie eine Verbindung herstellen möchten.
    Clienttyp Python Die Programmiersprache oder das Framework für die Verbindungskonfiguration.
  2. Registerkarte „Authentifizierung“:

Authentifizierungseinstellung Beispielwert BESCHREIBUNG
Authentifizierungstyp Workloadidentität Die Authentifizierungsmethode zum Verbinden der App mit Azure OpenAI. Die Workloadidentität wird für erhöhte Sicherheit empfohlen. Alternative Methoden umfassen Verbindungszeichenfolgen und Dienstprinzipal und erfordern Überlegungen zur Verwaltung von Anmeldeinformationen.
Abonnement Mein Abonnement Das Abonnement, das die benutzerseitig zugewiesene verwaltete Identität enthält.
Benutzerseitig zugewiesene verwaltete Identität myidentity Die vom Benutzer zugewiesene verwaltete Identität, die die Workloadidentitätsauthentifizierung für den AKS-Cluster ermöglicht.

Nachdem die Verbindung erstellt wurde, können Sie die Details im Bereich Dienstconnector anzeigen.

Python-Beispielanwendung klonen

  1. Klonen Sie das Beispielrepository:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Wechseln Sie zum Beispielordner des Repositorys für Azure OpenAI:

    cd serviceconnector-aks-samples/azure-openai-workload-identity
    
  3. Ersetzen Sie den <MyModel>-Platzhalter in der app.py-Datei durch den Modellnamen, den wir bereitgestellt haben.

Erstellen und Pushen von Containerimages in Azure Container Registry

  1. Erstellen und übertragen Sie die Images mithilfe des Azure CLI-Befehls az acr build an Ihre Containerregistrierung.

    az acr build --registry myregistry --image sc-demo-openai-identity:latest ./
    
  2. Zeigen Sie die Bilder in Ihrer Containerregistrierung mithilfe des Befehls az acr Repositoryliste an.

    az acr repository list --name myregistry --output table
    

Bereitstellen und Testen von AKS in Azure OpenAI-Verbindung

  1. Ersetzen Sie die Platzhalter in der Datei pod.yaml im Ordner azure-openai-workload-identity.

    • Ersetzen Sie <YourContainerImage> durch den Namen des zuvor erstellten Images. Beispiel: <myregistry>.azurecr.io/<sc-demo-openai-identity>:<latest>.
    • Ersetzen Sie <ServiceAccountCreatedByServiceConnector> den Namen des Dienstkontos durch den Namen des Dienstkontos. Sie befindet sich im Azure-Portal im Bereich Service Connector .
    • Ersetzen Sie <SecretCreatedByServiceConnector> durch den geheimen Namen. Sie befindet sich im Azure-Portal im Bereich Service Connector .
  2. Stellen Sie den Pod mit dem Befehl kubectl apply auf Ihrem Cluster bereit, der einen Pod namens sc-demo-openai-identity im Standardnamespace Ihres AKS-Clusters erstellt. Installieren Sie kubectl bei Bedarf mithilfe des Befehls az aks install-cli manuell.

    kubectl apply -f pod.yaml
    
  3. Überprüfen Sie, ob die Bereitstellung erfolgreich war, indem Sie den Pod mit kubectl anzeigen.

    kubectl get pod/sc-demo-openai-identity
    
  4. Überprüfen Sie, ob die Verbindung hergestellt wird, indem Sie die Protokolle mit kubectl anzeigen.

    kubectl logs pod/sc-demo-openai-identity
    

Bereinigen von Ressourcen

Wenn Sie die in diesem Tutorial erstellten Ressourcen nicht mehr benötigen, bereinigen Sie sie, indem Sie die Ressourcengruppe löschen.

az group delete \
    --resource-group MyResourceGroup