Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Tutorial: Herstellen einer Verbindung mit dem Azure OpenAI-Dienst in AKS mithilfe einer Workloadidentität
Artikel
29.01.2025
In diesem Tutorial erfahren Sie, wie Sie einen Pod in einem Azure Kubernetes-Cluster (AKS) erstellen, der mit dem Azure OpenAI-Dienst unter Verwendung von Microsoft Entra Workload ID und eines Dienstconnectors kommuniziert. In diesem Tutorial führen Sie die folgenden Aufgaben durch:
Erstellen Sie ein AKS-Cluster und einen Azure OpenAI-Dienst mit gpt-4-Modellimplementierung.
Erstellen Sie eine Verbindung zwischen dem AKS-Cluster und Azure OpenAI mit Service Connector.
Klonen Sie eine Beispielanwendung, die mit dem Azure OpenAI-Dienst von einem AKS-Cluster kommuniziert.
Bereitstellen der Anwendung in einem Pod im AKS-Cluster und Testen der Verbindung
Wenn Sie CLI-Referenzbefehle lieber lokal ausführen, installieren Sie die Azure CLI. Wenn Sie Windows oder macOS ausführen, sollten Sie die Azure CLI in einem Docker-Container ausführen. Weitere Informationen finden Sie unter Ausführen der Azure CLI in einem Docker-Container.
Wenn Sie eine lokale Installation verwenden, melden Sie sich mithilfe des Befehls az login bei der Azure CLI an. Führen Sie die in Ihrem Terminal angezeigten Schritte aus, um den Authentifizierungsprozess abzuschließen. Informationen zu anderen Anmeldeoptionen finden Sie unter Anmelden mit der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung beim ersten Einsatz, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden von Erweiterungen mit der Azure CLI.
Führen Sie az version aus, um die installierte Version und die abhängigen Bibliotheken zu ermitteln. Führen Sie az upgrade aus, um das Upgrade auf die aktuelle Version durchzuführen.
Installieren Sie Docker und kubectl für die Verwaltung von Containerimage- und Kubernetes-Ressourcen.
Sie beginnen dieses Tutorial, indem Sie mehrere Azure-Ressourcen erstellen.
Erstellen Sie eine Ressourcengruppe für dieses Tutorial.
az group create \
--name MyResourceGroup \
--location eastus
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
Stellen Sie mithilfe des Befehls azks get-credentials eine Verbindung mit dem Cluster her.
az aks get-credentials \
--resource-group MyResourceGroup \
--name MyAKSCluster
Erstellen Sie eine Azure OpenAI Service-Ressource mit dem Befehl az cognitiveservices account create. Optional finden Sie in diesem Tutorial weitere Anweisungen. Azure OpenAI Service ist der Zieldienst, den wir mit dem AKS-Cluster verbinden.
Erstellen Sie eine Azure Container Registry (ACR)-Ressource mit dem Befehl az acr erstellen oder verweisen Sie auf dieses Tutorial. Die Registrierung hostet das Containerimage der Beispielanwendung, die von der AKS-Poddefinition verwendet wird.
az acr create \
--resource-group MyResourceGroup \
--name myregistry \
--sku Standard
Aktivieren Sie anonymen Pull mit dem Befehl az acr Update, damit das AKS-Cluster die Bilder in der Registrierung nutzen kann.
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 in AKS mit Service Connector
Erstellen Sie eine Dienstverbindung zwischen einem AKS-Cluster und dem Azure OpenAI-Dienst 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.
Registerkarte Grundlagen:
Einstellung
Beispielwert
Beschreibung
Kubernetes-Namespace
default
Der Kubernetes-Namespace.
Diensttyp
OpenAI Service
Art des Zieldiensts.
Verbindungsname
openai_conn
Verwenden Sie den vom Dienstconnector bereitgestellten Verbindungsnamen, oder wählen Sie Ihren eigenen Verbindungsnamen aus.
Abonnement
<MySubscription>
Das Abonnement, das für den Azure OpenAI-Dienst verwendet wird.
OpenAI
<MyOpenAIService>
Der Azure OpenAI-Zieldienst, mit dem Sie eine Verbindung herstellen möchten.
Clienttyp
Python
Die Codesprache oder das Framework, die bzw. das Sie zum Herstellen einer Verbindung mit dem Zieldienst verwenden.
Registerkarte „Authentifizierung“:
Authentifizierungseinstellung
Beispielwert
Beschreibung
Authentifizierungstyp
Workloadidentität
Der Authentifizierungstyp des Dienstconnectors.
Abonnement
<MySubscription>
Das Abonnement, das die benutzerseitig zugewiesene verwaltete Identität enthält.
Benutzerseitig zugewiesene verwaltete Identität
<MyIdentity>
Zum Aktivieren der Workloadidentität ist eine benutzerseitig zugewiesene verwaltete Identität erforderlich.
Nachdem die Verbindung erstellt wurde, können Sie die Details im Bereich Dienstconnector anzeigen.
Erstellen Sie in AKS eine Dienstverbindung mit dem Azure OpenAI-Dienst, indem Sie den Befehl az aks connection create cognitiveservices in der Azure-Befehlszeilenschnittstelle ausführen.
az aks connection create cognitiveservices \
--workload-identity <user-identity-resource-id>
Wenn Sie den obigen Befehl verwenden, werden Sie von Service Connector aufgefordert, die AKS-Ressourcengruppe, den AKS-Clusternamen, die Zieldienstressourcengruppe, den Namen des kognitiven Dienstkontos und die benutzerbasierte Identitätsressourcen-ID Schritt für Schritt anzugeben.
Alternativ können Sie den vollständigen Befehl direkt bereitstellen:
az aks connection create cognitiveservices \
--workload-identity <user-identity-resource-id> \
--resource-group <aks-cluster-resource-group> \
--name <aks-cluster-name> \
--target-resource-group <target-cognitive-services-resource-group> \
--account <target-cognitive-services-account>
Wechseln Sie zum Beispielordner des Repositorys für Azure OpenAI:
cd serviceconnector-aks-samples/azure-openai-workload-identity
Ersetzen Sie den <MyModel>-Platzhalter in der app.py-Datei durch den Modellnamen, den wir bereitgestellt haben.
Erstellen und Pushen des Containerimage
Erstellen und übertragen Sie die Images mithilfe des Azure CLI-Befehls az acr build an Ihre ACR.
az acr build --registry <MyRegistry> --image sc-demo-openai-identity:latest ./
Zeigen Sie die Bilder in Ihrer ACR-Instanz mithilfe des Befehls az acr repository list an.
az acr repository list --name <MyRegistry> --output table
Ausführen der Anwendung und Testen der Verbindung
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> durch das Dienstkonto, das nach der Verbindungserstellung vom Dienstconnector erstellt wurde. Möglicherweise überprüfen Sie den Namen des Dienstkontos im Azure-Portal im Bereich Service Connector.
Ersetzen Sie <SecretCreatedByServiceConnector> durch das Geheimnis, das nach der Verbindungserstellung vom Dienstconnector erstellt wurde. Sie können den geheimen Namen im Azure-Portal im Bereich Service Connector überprüfen.
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
Überprüfen Sie, ob die Bereitstellung erfolgreich war, indem Sie den Pod mit kubectl anzeigen.
kubectl get pod/sc-demo-openai-identity
Ü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