Udostępnij za pomocą


Samouczek: łączenie usługi AKS z usługą Azure OpenAI

W tym samouczku przedstawiono sposób łączenia aplikacji usługi Azure Kubernetes Service (AKS) z usługą Azure OpenAI przy użyciu łącznika usługi Service Connector z uwierzytelnianiem tożsamości obciążenia. Nawiąższ połączenia bez poświadczeń, wdrażając przykładową aplikację w języku Python, która komunikuje się z usługą Azure OpenAI.

Wykonasz następujące zadania:

  • Tworzenie klastra AKS i zasobu usługi Azure OpenAI za pomocą modelu GPT-4
  • Konfigurowanie łącznika usługi w celu nawiązania połączenia z tożsamością obciążenia
  • Klonowanie przykładowej aplikacji
  • Kompilowanie i wypychanie obrazów kontenerów do usługi Azure Container Registry
  • Wdrażanie aplikacji w usłudze AKS i weryfikowanie połączenia
  • Czyszczenie zasobów

Wymagania wstępne

Tworzenie zasobów usług Azure OpenAI i AKS

Rozpoczynasz pracę z tym samouczkiem, tworząc kilka zasobów platformy Azure.

  1. Utwórz grupę zasobów na potrzeby tego samouczka.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. 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
    
  3. Połącz się z klastrem przy użyciu polecenia az aks get-credentials .

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. 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 to usługa docelowa, z którą będzie się łączyć klaster usługi AKS.

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenai \
        --subscription <SubscriptionID>
    
  5. 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 MyOpenAI \
        --deployment-name MyModel \
        --model-name gpt-4 \
        --model-version 0613 \
        --model-format OpenAI \
        --sku-name "Standard" \
        --capacity 1
    
  6. Utwórz usługę Azure Container Registry (ACR), aby przechowywać konteneryzowaną przykładową aplikację. Użyj polecenia az acr create lub zapoznaj się z tym samouczkiem.

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. 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
    
  8. 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
    

Tworzenie połączenia usługi z usługi AKS do usługi Azure OpenAI

Utwórz połączenie usługi między klastrem AKS i usługą Azure OpenAI 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ń.

  1. 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 Moja subskrypcja Subskrypcja platformy Azure zawierająca zasób usługi Azure OpenAI.
    OpenAI MyOpenAI Docelowy zasób usługi Azure OpenAI, z którym chcesz nawiązać połączenie.
    Typ klienta Python Język programowania lub struktura konfiguracji połączenia.
  2. Karta Uwierzytelnianie:

Ustawienie uwierzytelniania Przykładowa wartość opis
Authentication type (Typ uwierzytelniania) Tożsamość obciążenia Metoda uwierzytelniania łącząca aplikację z usługą Azure OpenAI. Tożsamość obciążenia jest zalecana w przypadku zwiększonych zabezpieczeń. Alternatywne metody obejmują parametry połączenia i jednostkę usługi oraz wymagają zagadnień związanych z zarządzaniem poświadczeniami.
Subskrypcja Moja subskrypcja 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, która umożliwia uwierzytelnianie tożsamości obciążenia dla klastra usługi AKS.

Po utworzeniu połączenia można wyświetlić jego szczegóły w okienku Łącznik usługi .

Klonowanie przykładowej aplikacji języka Python

  1. Sklonuj przykładowe repozytorium:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Przejdź do folderu przykładowego repozytorium dla usługi Azure OpenAI:

    cd serviceconnector-aks-samples/azure-openai-workload-identity
    
  3. Zastąp <MyModel> symbol zastępczy w app.py pliku nazwą wdrożonego modelu.

Kompilowanie i wypychanie obrazów kontenerów do usługi Azure Container Registry

  1. Skompiluj i wypchnij obrazy do rejestru kontenerów przy użyciu polecenia az acr build interfejsu wiersza polecenia platformy Azure.

    az acr build --registry myregistry --image sc-demo-openai-identity:latest ./
    
  2. Wyświetl obrazy w rejestrze kontenerów za pomocą polecenia az acr repository list .

    az acr repository list --name myregistry --output table
    

Wdrażanie i testowanie połączenia usługi AKS z usługą Azure OpenAI

  1. Zastąp pod.yaml symbole zastępcze w pliku w folderze azure-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> ciąg nazwą konta usługi. Można go znaleźć w witrynie Azure Portal w okienku Łącznik usługi .
    • Zastąp ciąg <SecretCreatedByServiceConnector> nazwą wpisu tajnego. Można go znaleźć w witrynie Azure Portal w okienku Łącznik usługi .
  2. Wdróż zasobnik w klastrze za kubectl apply pomocą polecenia , który tworzy zasobnik o nazwie sc-demo-openai-identity w domyślnej przestrzeni nazw klastra usługi AKS. Zainstaluj kubectl lokalnie przy użyciu polecenia az aks install-cli , jeśli nie jest zainstalowany.

    kubectl apply -f pod.yaml
    
  3. 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
    
  4. Sprawdź, czy połączenie zostało nawiązane, wyświetlając dzienniki za pomocą polecenia kubectl.

    kubectl logs pod/sc-demo-openai-identity
    

Czyszczenie zasobów

Jeśli nie potrzebujesz już zasobów utworzonych w tym samouczku, wyczyść je, usuwając grupę zasobów.

az group delete \
    --resource-group MyResourceGroup