Freigeben über


Lernprogramm: Verbinden von AKS mit Azure OpenAI

In diesem Lernprogramm 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 anmeldeinformationsfreien Verbindungen ein, und testen sie, indem Sie ein Beispiel Python Anwendung bereitstellen, die mit dem Azure OpenAI kommuniziert.

In diesem Tutorial erfahren Sie:

  • Erstellen Sie einen AKS-Cluster und 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 Sie und übertragen Sie Container-Images in Azure Container Registry.
  • Stellen Sie die Anwendung in AKS bereit, und überprüfen Sie die Verbindung.
  • Bereinigen der Ressourcen

Voraussetzungen

Erstellen Azure OpenAI- und AKS-Ressourcen

Sie beginnen dieses Lernprogramm, 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 mithilfe des Befehls 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 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 Azure OpenAI im Azure-Portal oder dem 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 default 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.
    Subscription Mein Abonnement Das Azure-Abonnement, das Ihre Azure OpenAI-Ressource enthält.
    OpenAI MyOpenAI Die Azure OpenAI-Ressource, mit der Sie eine Verbindung herstellen möchten.
    Clienttyp Python Die Programmiersprache oder das Framework für die Verbindungskonfiguration.
  2. Registerkarte „Authentifizierung“:

    Authentifizierungseinstellung Beispielwert BESCHREIBUNG
    Authentifizierungstyp Workload-Identität Die Authentifizierungsmethode zum Verbinden der App mit Azure OpenAI. Die Workloadidentität wird für erhöhte Sicherheit empfohlen. Alternative Methoden umfassen connection string und Dienstprinzipal und erfordern Überlegungen zur Verwaltung von Anmeldeinformationen.
    Subscription 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.

Klonen Python Beispielanwendung

  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 Container-Images in das Azure Container Registry

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

    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 für 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