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. Anschließend richten Sie Ihre anmeldeinformationenfreien Verbindungen ein und testen sie, indem Sie eine Python-Beispielanwendung bereitstellen, die mit Azure OpenAI kommuniziert.

In diesem Tutorial erfahren Sie:

  • Erstellen Sie einen AKS-Cluster und eine Azure OpenAI-Ressource mit GPT-4-Modell.
  • Konfigurieren Sie Service Connector, um die Verbindung mit der Workload-Identität herzustellen.
  • Klonen Sie eine Beispielanwendung.
  • Erstellen und Übertragen von Containerimages in die Azure-Containerregistrierung.
  • Stellen Sie die Anwendung in AKS bereit, und überprüfen Sie die Verbindung.
  • Bereinigen der 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. Verwenden Sie den Befehl az aks get-credentials, um eine Verbindung mit dem Cluster herzustellen.

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Erstellen Sie eine Azure OpenAI-Ressource mit dem az cognitiveservices account create Befehl. 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 az cognitiveservices deployment create Befehl 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. Um die containerisierte Beispielanwendung zu speichern, erstellen Sie eine Azure Container Registry (ACR). Verwenden Sie den az acr create Befehl, oder verweisen Sie auf dieses Lernprogramm.

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. Aktivieren Sie anonymes Pull mit dem az acr update-Befehl, damit der AKS-Cluster die Images in der Registry verwenden kann.

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    
  8. Erstellen Sie eine vom Benutzer zugewiesene verwaltete Identität mit dem az identity create Befehl, oder verweisen Sie auf dieses Lernprogramm. 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. Verwenden Sie den Azure CLI-Befehl az acr build, um die Images zu erstellen und in Ihre Containerregistrierung zu pushen:

    az acr build --registry myregistry --image sc-demo-openai-identity:latest ./
    
  2. Zeigen Sie mithilfe des Befehls az acr repository list die Images in Ihrer Containerregistrierung 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 lokal mit dem az aks install-cli-Befehl, wenn er nicht installiert ist.

    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