Samouczek: nawiązywanie połączenia z usługą Azure OpenAI Service w usłudze AKS przy użyciu tożsamości obciążenia (wersja zapoznawcza)
Z tego samouczka dowiesz się, jak utworzyć zasobnik w klastrze usługi Azure Kubernetes (AKS), który komunikuje się z usługą Azure OpenAI Service przy użyciu tożsamości obciążenia i łącznika usługi. W tym samouczku wykonasz następujące zadania:
- Utwórz klaster AKS i usługę Azure OpenAI Service z
gpt-4
wdrożeniem modelu. - Utwórz połączenie między klastrem AKS i usługą Azure OpenAI za pomocą łącznika usługi Service Connector.
- Sklonuj przykładową aplikację, która będzie komunikować się z usługą Azure OpenAI z klastra usługi AKS.
- Wdróż aplikację w zasobniku w klastrze usługi AKS i przetestuj połączenie.
- Wyczyść zasoby.
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
-
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
- Zainstaluj platformę Docker i narzędzie kubectl , aby zarządzać obrazem kontenera i zasobami Kubernetes.
- Podstawowa wiedza na temat kontenera i usługi AKS. Rozpocznij od przygotowania aplikacji dla usługi AKS.
- Podstawowa wiedza na temat tożsamości obciążenia.
- Uprawnienia dostępu do tworzenia zasobów usługi Azure OpenAI i wdrażania modeli.
Rozpoczynasz pracę z tym samouczkiem, tworząc kilka zasobów platformy Azure.
Utwórz grupę zasobów na potrzeby tego samouczka.
az group create \ --name MyResourceGroup \ --location eastus
Utwórz klaster usługi AKS za pomocą następującego polecenia lub korzystając z przewodnika Szybki start usługi AKS. W tym samouczku utworzymy definicję połączenia usługi i zasobnika oraz wdrożymy przykładową aplikację w tym klastrze.
az aks create \ --resource-group MyResourceGroup \ --name MyAKSCluster \ --enable-managed-identity \ --node-count 1 --generate-ssh-keys
Połącz się z klastrem przy użyciu polecenia az aks get-credentials .
az aks get-credentials \ --resource-group MyResourceGroup \ --name MyAKSCluster
Utwórz zasób usługi Azure OpenAI przy użyciu polecenia az cognitiveservices account create . Opcjonalnie zapoznaj się z tym samouczkiem , aby uzyskać więcej instrukcji. Azure OpenAI Service to usługa docelowa, którą połączymy z klastrem usługi AKS.
az cognitiveservices account create \ --resource-group MyResourceGroup \ --name MyOpenAIService \ --location eastus \ --kind OpenAI \ --sku s0 \ --custom-domain myopenaiservice \ --subscription <SubscriptionID>
Wdróż model za pomocą polecenia az cognitiveservices deployment create . Model jest używany w przykładowej aplikacji do testowania połączenia.
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
Utwórz zasób usługi Azure Container Registry (ACR) za pomocą polecenia az acr create lub zapoznaj się z tym samouczkiem. Rejestr hostuje obraz kontenera przykładowej aplikacji, z której korzysta definicja zasobnika usługi AKS.
az acr create \ --resource-group MyResourceGroup \ --name myregistry \ --sku Standard
Włącz anonimowe ściąganie za pomocą polecenia az acr update , aby klaster AKS mógł korzystać z obrazów w rejestrze.
az acr update \ --resource-group MyResourceGroup \ --name MyRegistry \ --anonymous-pull-enabled
Utwórz tożsamość zarządzaną przypisaną przez użytkownika za pomocą polecenia az identity create lub zapoznaj się z tym samouczkiem. Po utworzeniu połączenia tożsamość zarządzana przypisana przez użytkownika jest używana do włączania tożsamości obciążenia dla obciążeń usługi AKS.
az identity create \ --resource-group MyResourceGroup \ --name MyIdentity
Utwórz połączenie usługi między klastrem AKS i usługą Azure OpenAI Service w witrynie Azure Portal lub interfejsie wiersza polecenia platformy Azure.
Zapoznaj się z przewodnikiem Szybki start dotyczący połączenia z usługą AKS, aby uzyskać instrukcje dotyczące tworzenia nowego połączenia i wypełniania ustawień odwołujących się do przykładów w poniższej tabeli. Pozostaw wartości domyślne wszystkich innych ustawień.
Karta Podstawy:
Ustawienie Przykładowa wartość opis Przestrzeń nazw platformy Kubernetes default Przestrzeń nazw kubernetes. Typ usługi Usługa OpenAI Docelowy typ usługi. Nazwa połączenia openai_conn Użyj nazwy połączenia dostarczonej przez łącznik usługi lub wybierz własną nazwę połączenia. Subskrypcja <MySubscription>
Subskrypcja używana dla usługi Azure OpenAI Service. OpenAI <MyOpenAIService>
Docelowa usługa Azure OpenAI, z którą chcesz nawiązać połączenie. Typ klienta Python Język kodu lub struktura używana do nawiązywania połączenia z usługą docelową. Karta Uwierzytelnianie:
Ustawienie uwierzytelniania Przykładowa wartość opis Authentication type (Typ uwierzytelniania) Tożsamość obciążenia Typ uwierzytelniania łącznika usługi. Subskrypcja <MySubscription>
Subskrypcja zawierająca tożsamość zarządzaną przypisaną przez użytkownika. Tożsamość zarządzana przypisana przez użytkownika <MyIdentity>
Tożsamość zarządzana przypisana przez użytkownika jest wymagana do włączenia tożsamości obciążenia.
Po utworzeniu połączenia można wyświetlić jego szczegóły w okienku Łącznik usługi.
Sklonuj przykładowe repozytorium:
git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
Przejdź do folderu przykładowego repozytorium dla usługi Azure OpenAI:
cd serviceconnector-aks-samples/azure-openai-workload-identity
Zastąp
<MyModel>
symbol zastępczy wapp.py
pliku nazwą wdrożonego modelu.
Skompiluj i wypchnij obrazy do usługi ACR przy użyciu polecenia az acr build interfejsu wiersza polecenia platformy Azure.
az acr build --registry <MyRegistry> --image sc-demo-openai-identity:latest ./
Wyświetl obrazy w wystąpieniu usługi ACR przy użyciu polecenia az acr repository list .
az acr repository list --name <MyRegistry> --output table
Zastąp
pod.yaml
symbole zastępcze w pliku w folderzeazure-openai-workload-identity
.- Zastąp
<YourContainerImage>
ciąg nazwą utworzonego wcześniej obrazu. Na przykład<MyRegistry>.azurecr.io/sc-demo-openai-identity:latest
. - Zastąp
<ServiceAccountCreatedByServiceConnector>
element kontem usługi utworzonym przez łącznik usługi po utworzeniu połączenia. Nazwę konta usługi możesz sprawdzić w witrynie Azure Portal w okienku Łącznik usługi. - Zastąp ciąg
<SecretCreatedByServiceConnector>
wpisem tajnym utworzonym przez łącznik usługi po utworzeniu połączenia. Możesz sprawdzić nazwę wpisu tajnego w witrynie Azure Portal w okienku Łącznik usługi.
- Zastąp
Wdróż zasobnik w klastrze za
kubectl apply
pomocą polecenia , który tworzy zasobnik o nazwiesc-demo-openai-identity
w domyślnej przestrzeni nazw klastra usługi AKS. Zainstalujkubectl
lokalnie przy użyciu polecenia az aks install-cli , jeśli nie jest zainstalowany.kubectl apply -f pod.yaml
Sprawdź, czy wdrożenie zakończyło się pomyślnie, wyświetlając zasobnik za pomocą polecenia
kubectl
.kubectl get pod/sc-demo-openai-identity
Sprawdź, czy połączenie zostało nawiązane, wyświetlając dzienniki za pomocą polecenia
kubectl
.kubectl logs pod/sc-demo-openai-identity
Jeśli nie potrzebujesz już zasobów utworzonych w tym samouczku, wyczyść je, usuwając grupę zasobów.
az group delete \
--resource-group MyResourceGroup
Przeczytaj następujące artykuły, aby dowiedzieć się więcej na temat pojęć dotyczących łącznika usług i sposobu, w jaki pomaga on usłudze AKS łączyć się z usługami.