Dela via


Självstudie: Ansluta AKS till Azure OpenAI

Den här självstudien visar hur du ansluter dina Azure Kubernetes Service-program (AKS) till Azure OpenAI med hjälp av Service Connector med arbetsbelastningsidentitetsautentisering. Du upprättar autentiseringsfria anslutningar genom att distribuera ett Python-exempelprogram som kommunicerar med Azure OpenAI.

Du kommer att slutföra följande uppgifter:

  • Skapa ett AKS-kluster och En Azure OpenAI-resurs med GPT-4-modellen
  • Konfigurera Service Connector för att upprätta anslutningen till arbetsbelastningsidentiteten
  • Klona ett exempelprogram
  • Skapa och skicka containeravbildningar till Azure Container Registry
  • Distribuera programmet till AKS och verifiera anslutningen
  • Rensa resurser

Förutsättningar

Skapa Azure OpenAI- och AKS-resurser

Du startar den här självstudien genom att skapa flera Azure-resurser.

  1. Skapa en resursgrupp för den här självstudien.

    az group create \
        --name MyResourceGroup \
        --location eastus
    
  2. Skapa ett AKS-kluster med följande kommando eller genom att referera till AKS-snabbstarten. I den här självstudien skapar vi tjänstanslutningen och podddefinitionen och distribuerar exempelprogrammet till det här klustret.

    az aks create \
        --resource-group MyResourceGroup \
        --name MyAKSCluster \
        --enable-managed-identity \
        --node-count 1 \
        --generate-ssh-keys
    
  3. Anslut till klustret med kommandot az aks get-credentials .

    az aks get-credentials \
        --resource-group MyResourceGroup \
        --name MyAKSCluster
    
  4. Skapa en Azure OpenAI-resurs med kommandot az cognitiveservices account create . Du kan också läsa mer i den här självstudien . Azure OpenAI är den måltjänst som AKS-klustret ansluter till.

    az cognitiveservices account create \
        --resource-group MyResourceGroup \
        --name MyOpenAI \
        --location eastus \
        --kind OpenAI \
        --sku s0 \
        --custom-domain myopenai \
        --subscription <SubscriptionID>
    
  5. Distribuera en modell med kommandot az cognitiveservices deployment create . Modellen används i exempelprogrammet för att testa anslutningen.

    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. Skapa ett Azure Container Registry (ACR) för att lagra det containerbaserade exempelprogrammet. Använd kommandot az acr create eller läs den här självstudien.

    az acr create \
        --resource-group MyResourceGroup \
        --name myregistry \
        --sku Standard
    
  7. Aktivera anonym pull med kommandot az acr update så att AKS-klustret kan använda avbildningarna i registret.

    az acr update \
        --resource-group MyResourceGroup \
        --name myregistry \
        --anonymous-pull-enabled
    
  8. Skapa en användartilldelad hanterad identitet med kommandot az identity create , eller genom att referera till den här självstudien. När anslutningen skapas används den användartilldelade hanterade identiteten för att aktivera arbetsbelastningsidentiteten för AKS-arbetsbelastningar.

    az identity create \
        --resource-group MyResourceGroup \
        --name MyIdentity
    

Skapa en tjänstanslutning från AKS till Azure OpenAI

Skapa en tjänstanslutning mellan ett AKS-kluster och Azure OpenAI i Azure-portalen eller Azure CLI.

I snabbstarten för AKS-tjänstanslutning finns instruktioner för hur du skapar en ny anslutning och fyller i inställningarna som refererar till exemplen i följande tabell. Lämna alla andra inställningar med sina standardvärden.

  1. Fliken Grundläggande:

    Inställning Exempelvärde beskrivning
    Kubernetes-namnområde standard Kubernetes-namnområdet.
    Typ av tjänst OpenAI-tjänst Måltjänsttypen.
    Anslutningens namn openai_conn Använd anslutningsnamnet som tillhandahålls av Service Connector eller välj ditt eget anslutningsnamn.
    Abonnemang Min prenumeration Azure-prenumerationen som innehåller din Azure OpenAI-resurs.
    OpenAI MyOpenAI Den Azure OpenAI-målresurs som du vill ansluta till.
    Klienttyp Python Programmeringsspråket eller ramverket för anslutningskonfigurationen.
  2. Fliken Autentisering:

Autentiseringsinställning Exempelvärde beskrivning
Autentiseringstyp Arbetsbelastningsidentitet Autentiseringsmetoden för att ansluta appen till Azure OpenAI. Arbetsbelastningsidentitet rekommenderas för förbättrad säkerhet. Alternativa metoder inkluderar anslutningssträng och tjänstens huvudnamn och kräver överväganden för hantering av autentiseringsuppgifter.
Abonnemang Min prenumeration Den prenumeration som innehåller den användartilldelade hanterade identiteten.
Användartilldelad hanterad identitet myidentity Den användartilldelade hanterade identiteten som möjliggör arbetsbelastningsidentitetsautentisering för AKS-klustret.

När anslutningen har skapats kan du visa dess information i fönstret Tjänstanslutning .

Klona Python-exempelprogram

  1. Klona exempellagringsplatsen:

    git clone https://github.com/Azure-Samples/serviceconnector-aks-samples.git
    
  2. Gå till lagringsplatsens exempelmapp för Azure OpenAI:

    cd serviceconnector-aks-samples/azure-openai-workload-identity
    
  3. <MyModel> Ersätt platshållaren i app.py filen med modellnamnet som vi distribuerade.

Skapa och skicka containeravbildningar till Azure Container Registry

  1. Skapa och push-överföra avbildningarna till containerregistret med hjälp av azure CLI az acr build-kommandot .

    az acr build --registry myregistry --image sc-demo-openai-identity:latest ./
    
  2. Visa avbildningarna i containerregistret med kommandot az acr repository list .

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

Distribuera och testa AKS till Azure OpenAI-anslutning

  1. Ersätt platshållarna i pod.yaml filen i azure-openai-workload-identity mappen.

    • Ersätt <YourContainerImage> med namnet på avbildningen som du skapade tidigare. Till exempel <myregistry>.azurecr.io/<sc-demo-openai-identity>:<latest>.
    • Ersätt <ServiceAccountCreatedByServiceConnector> med namnet på tjänstkontot. Den finns i Azure-portalen i fönstret Tjänstanslutning .
    • Ersätt <SecretCreatedByServiceConnector> med det hemliga namnet. Den finns i Azure-portalen i fönstret Tjänstanslutning .
  2. Distribuera podden till klustret med kubectl apply kommandot , som skapar en podd med namnet sc-demo-openai-identity i standardnamnområdet för ditt AKS-kluster. Installera kubectl lokalt med kommandot az aks install-cli om det inte är installerat.

    kubectl apply -f pod.yaml
    
  3. Kontrollera om distributionen lyckades genom att visa podden med kubectl.

    kubectl get pod/sc-demo-openai-identity
    
  4. Kontrollera att anslutningen upprättas genom att visa loggarna med kubectl.

    kubectl logs pod/sc-demo-openai-identity
    

Rensa resurser

Om du inte längre behöver de resurser som skapats i den här självstudien rensar du dem genom att ta bort resursgruppen.

az group delete \
    --resource-group MyResourceGroup