Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
- 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 "Erste Schritte mit 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. Um den Authentifizierungsprozess abzuschließen, führen Sie die in Ihrem Terminal angezeigten Schritte aus. Weitere Anmeldeoptionen finden Sie unter Authentifizieren bei Azure mithilfe der Azure CLI.
Installieren Sie die Azure CLI-Erweiterung bei der ersten Verwendung, wenn Sie dazu aufgefordert werden. Weitere Informationen zu Erweiterungen finden Sie unter Verwenden und Verwalten 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.
- Docker und kubectl zum Verwalten von Containerimages und Kubernetes-Ressourcen.
- Grundlegendes Verständnis von Containern und AKS. Informationen zu den ersten Schritten finden Sie unter Tutorial: Vorbereiten einer Anwendung für Azure Kubernetes Service (AKS).
- Zugriffsberechtigungen zum Erstellen von Azure OpenAI-Ressourcen und zum Bereitstellen von Modellen
Erstellen von Azure OpenAI- und AKS-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 eastusErstellen 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-keysStellen Sie mithilfe des Befehls azks get-credentials eine Verbindung mit dem Cluster her.
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSClusterErstellen 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>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 1Erstellen 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 StandardAktivieren 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-enabledErstellen 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.
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. 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
Klonen Sie das Beispielrepository:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.gitWechseln Sie zum Beispielordner des Repositorys für Azure OpenAI:
cd serviceconnector-aks-samples/azure-openai-workload-identityErsetzen Sie den
<MyModel>-Platzhalter in derapp.py-Datei durch den Modellnamen, den wir bereitgestellt haben.
Erstellen und Pushen von Containerimages in Azure Container Registry
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 ./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
Ersetzen Sie die Platzhalter in der Datei
pod.yamlim 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>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 .
- Ersetzen Sie
Stellen Sie den Pod mit dem Befehl
kubectl applyauf Ihrem Cluster bereit, der einen Pod namenssc-demo-openai-identityim Standardnamespace Ihres AKS-Clusters erstellt. Installieren Siekubectlbei 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
kubectlanzeigen.kubectl get pod/sc-demo-openai-identityÜberprüfen Sie, ob die Verbindung hergestellt wird, indem Sie die Protokolle mit
kubectlanzeigen.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