Tutorial: Herstellen einer Verbindung mit dem Azure OpenAI-Dienst in AKS mithilfe von Workload Identity (Vorschau)
In diesem Tutorial erfahren Sie, wie Sie einen Pod in einem Azure Kubernetes (AKS)-Cluster erstellen, der mit dem Azure OpenAI-Dienst unter Verwendung der Workloadidentität und des Service Connector 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
- Bereinigen der Ressourcen
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
-
Verwenden Sie die Bash-Umgebung in Azure Cloud Shell. Weitere Informationen finden Sie unter Schnellstart für Bash in Azure Cloud Shell.
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.
- Grundkenntnisse im Zusammenhang mit Containern und AKS. Informationen zu den ersten Schritten finden Sie unter Tutorial: Vorbereiten einer Anwendung für Azure Kubernetes Service (AKS).
- Grundkenntnisse im Zusammenhang mit Workloadidentitäten.
- Zugriffsberechtigungen zum Erstellen von Azure OpenAI-Ressourcen und zum Bereitstellen von Modellen
Erstellen von Azure-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.
az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAIService \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenaiservice \ --subscription <SubscriptionID>
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 MyOpenAIService --deployment-name MyModel \ --model-name gpt-4 \ --model-version 0613 \ --model-format OpenAI \ --sku-name "Standard" --capacity 1
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.
az acr update \ --resource-group MyResourceGroup \ --name MyRegistry \ --anonymous-pull-enabled
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 dem Dienstconnector (Vorschau)
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 vom Benutzer 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 Service Connector anzeigen.
Klonen der Beispielanwendung
Klonen Sie das Beispielrepository:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Wechseln Sie zum Beispielordner des Repositorys für Azure OpenAI:
cd serviceconnector-aks-samples/azure-openai-workload-identity
Ersetzen Sie den
<MyModel>
-Platzhalter in derapp.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 Ordnerazure-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.
- Ersetzen Sie
Stellen Sie den Pod mit dem Befehl
kubectl apply
auf Ihrem Cluster bereit, der einen Pod namenssc-demo-openai-identity
im Standardnamespace Ihres AKS-Clusters erstellt. Installieren Siekubectl
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
Nächste Schritte
Lesen Sie die folgenden Artikel, um mehr über Dienstconnectorkonzepte zu erfahren und sich darüber zu informieren, wie AKS Sie beim Herstellen einer Verbindung mit Diensten unterstützt.