Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln distribuerar du AKS Store Demo-programmet på Azure Kubernetes Service (AKS) och konfigurerar Azure OpenAI eller OpenAI API för att generera produktbeskrivningar.
Det molnbaserade exempelprogrammet består av tjänster som skrivits på flera språk och ramverk, inklusive:
- Golang med Gin
- Rust med Actix-Web
- JavaScript med Vue.js och Fastify
- Python med FastAPI
Dessa program tillhandahåller klientdelar för kunder och butiksadministratörer, REST-API:er som skickar data till en RabbitMQ-meddelandekö och DocumentDB-databas och konsolappar som simulerar trafik.
Note
Kör inte tillståndskänsliga containrar, till exempel DocumentDB och RabbitMQ, utan beständig lagring i produktion. Den här artikeln använder dem utan beständig lagring för enkelhetens skull. För produktionsarbetsbelastningar använder du hanterade tjänster som Azure Cosmos DB eller Azure Service Bus.
Information om hur du kommer åt GitHub kodbasen för exempelprogrammet finns i AKS Store Demo.
Innan du börjar
- Du behöver ett Azure konto med en aktiv prenumeration. Om du inte har något skapar du ett konto kostnadsfritt.
- För den här demonstrationen använder du antingen Azure OpenAI eller OpenAI API.
- Om du vill använda Azure OpenAI behöver du behörighet att skapa en Azure OpenAI-resurs och distribuera en modell. Registrering krävs endast för modeller med begränsad åtkomst eller ändrade skyddsåtgärder.
- Om du vill använda OpenAI-API:et registrerar du dig på OpenAI-webbplatsen.
Prerequisites
Använd Bash-miljön i Azure Cloud Shell. Mer information finns i Hämta igång med Azure Cloud Shell.
Om du föredrar att köra CLI-referenskommandon lokalt install Azure CLI. Om du kör på Windows eller macOS kan du överväga att köra Azure CLI i en Docker-container. Mer information finns i Hur du kör Azure CLI i en Docker-container.
Om du använder en lokal installation loggar du in på Azure CLI med hjälp av kommandot az login. För att slutföra autentiseringsprocessen, följ stegen som visas i din terminal. Andra inloggningsalternativ finns i Authenticate to Azure using Azure CLI.
När du uppmanas att installera Azure CLI-tillägget vid första användningen. Mer information om tillägg finns i Använda och hantera tillägg med Azure CLI.
Kör az version för att ta reda på versionen och de beroende bibliotek som är installerade. Om du vill uppgradera till den senaste versionen kör du az upgrade.
Skapa en resursgrupp
En Azure resursgrupp är en logisk grupp där du distribuerar och hanterar Azure resurser. När du skapar en resursgrupp uppmanas du att ange en plats. Den här platsen är lagringsplatsen för dina resursgruppsmetadata och där dina resurser körs i Azure om du inte anger en annan region när resursen skapas.
I följande exempel skapas en resursgrupp med namnet myResourceGroup i regionen eastus.
Skapa en resursgrupp med kommandot az group create.
az group create --name myResourceGroup --location eastus
Följande exempelutdata visar hur resursgruppen har skapats:
{
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
"location": "eastus",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Skapa ett AKS-kluster
I följande exempel skapas ett kluster med namnet myAKSCluster i myResourceGroup.
Skapa ett AKS-kluster med hjälp av kommandot az aks create.
az aks create --resource-group myResourceGroup --name myAKSCluster --generate-ssh-keys
Efter några minuter slutförs kommandot och returnerar JSON-formaterad information om klustret.
Ansluta till klustret
Om du vill hantera ett Kubernetes-kluster använder du Kubernetes kommandoradsklient, kubectl. Om du använder Azure Cloud Shell är kubectl redan installerat.
Installera
kubectllokalt med kommandotaz aks install-cli.az aks install-cliNote
Om ditt Linux-baserade system kräver utökade behörigheter använder du
sudo az aks install-clikommandot .Konfigurera
kubectlför att ansluta till kubernetes-klustret med hjälp avaz aks get-credentialskommandot .Det här kommandot kör följande åtgärder:
- Laddar ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.
- Använder
~/.kube/config, standardplatsen för Kubernetes-konfigurationsfilen. Ange en annan plats för kubernetes-konfigurationsfilen med argumentet --file .
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterKontrollera anslutningen till klustret med hjälp av
kubectl getkommandot . Det här kommandot returnerar en lista över klusternoderna.kubectl get nodesFöljande exempelutdata visar noderna som skapades i föregående steg. Kontrollera att varje nod har statusen Klar.
NAME STATUS ROLES AGE VERSION aks-nodepool1-31469198-vmss000000 Ready agent 3h29m v1.25.6 aks-nodepool1-31469198-vmss000001 Ready agent 3h29m v1.25.6 aks-nodepool1-31469198-vmss000002 Ready agent 3h29m v1.25.6
Note
För ett privat AKS-kluster ansluter du från en slutpunkt i samma virtuella nätverk som klustret. Konfigurationsinstruktioner finns i Skapa ett privat AKS-kluster.
Distribuera programmet
Manifestet AKS Store innehåller följande Kubernetes-distributioner och -tjänster:
- Produkttjänst: Visar produktinformation.
- Ordertjänst: Gör beställningar.
- Makeline-tjänst: Bearbetar beställningar från kön och slutför beställningarna.
- Butiksfront: Webbprogram där kunder kan visa produkter och göra beställningar.
- Butiksadministratör: Webbprogram för butiksanställda för att visa beställningar i kön och hantera produktinformation.
- Virtuell kund: Simulerar skapande av order enligt ett schema.
- Virtuell arbetare: Simulerar orderslut på schemalagd basis.
- DocumentDB: NoSQL instans för beständiga data.
- RabbitMQ: Meddelandekö för en orderkö.
Note
Kör inte tillståndskänsliga containrar, till exempel DocumentDB och RabbitMQ, utan beständig lagring i produktion. Den här artikeln använder dem utan beständig lagring för enkelhetens skull. För produktionsarbetsbelastningar använder du hanterade tjänster som Azure Cosmos DB eller Azure Service Bus.
Granska YAML-manifestet för programmet.
Distribuera programmet med kommandot
kubectl applyoch ange namnet på ditt YAML-manifest.kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-all-in-one.yaml
Distribuera en OpenAI-tjänst
Välj Azure OpenAI eller OpenAI API för programmet som körs på AKS.
- I Azure-portalen skapar du en Azure OpenAI-instans.
- Logga in på Microsoft Foundry.
- Inaktivera växlingsknappen Ny gjutning och välj sedan Visa alla resurser under Fortsätt att skapa med Foundry.
- Välj den Azure OpenAI-resurs som du skapade och välj sedan Distributioner under Delade resurser.
- Välj Distribuera modell>Distribuera basmodell.
- Välj basmodellen gpt-4o-mini , ange ett distributionsnamn och distribuera sedan modellen. Spara distributionsnamnet för nästa avsnitt.
Mer information om hur du skapar en Azure OpenAI-distribution finns i Komma igång med att generera text med Azure OpenAI.
Distribuera AI-mikrotjänsten
Distribuera den Python-baserade AI-mikrotjänsten som använder OpenAI för att automatiskt generera produktbeskrivningar. Den här mikrotjänsten ansluter till AKS Store-programmet som du distribuerade i föregående avsnitt.
Använd resurs- och modelldistributionen Azure OpenAI som du skapade i avsnittet Distribuera en OpenAI-tjänst. Konfigurera följande miljövariabler i AI-mikrotjänstmanifestet:
| Miljövariabel | Value |
|---|---|
USE_AZURE_OPENAI |
Ange till "True" för att använda Azure OpenAI. |
AZURE_OPENAI_DEPLOYMENT_NAME |
Namnet på modelldistributionen gpt-4o-mini i Microsoft Foundry. |
AZURE_OPENAI_ENDPOINT |
Slutpunkten från sidan Nycklar och slutpunkt för din Azure OpenAI-resurs. |
OPENAI_API_KEY |
En API-nyckel från sidan Nycklar och slutpunkt för din Azure OpenAI-resurs. |
Skapa en fil med namnet
ai-service.yamloch kopiera i följande manifest:apiVersion: apps/v1 kind: Deployment metadata: name: ai-service spec: replicas: 1 selector: matchLabels: app: ai-service template: metadata: labels: app: ai-service spec: nodeSelector: "kubernetes.io/os": linux containers: - name: ai-service image: ghcr.io/azure-samples/aks-store-demo/ai-service:2.2.0 ports: - containerPort: 5001 env: - name: USE_AZURE_OPENAI value: "True" - name: AZURE_OPENAI_DEPLOYMENT_NAME value: "" - name: AZURE_OPENAI_ENDPOINT value: "" - name: OPENAI_API_KEY value: "" resources: requests: cpu: 20m memory: 50Mi limits: cpu: 50m memory: 128Mi --- apiVersion: v1 kind: Service metadata: name: ai-service spec: type: ClusterIP ports: - name: http port: 5001 targetPort: 5001 selector: app: ai-serviceAnge miljövariabeln
USE_AZURE_OPENAItill"True".I Microsoft Foundry kopierar du Azure OpenAI-distributionsnamnet och anger värdet
AZURE_OPENAI_DEPLOYMENT_NAME.I Azure-portalen väljer du Nycklar och slutpunkt i din Azure OpenAI-resurs. Kopiera slutpunkten och API-nyckeln och ange
AZURE_OPENAI_ENDPOINTsedan värdena ochOPENAI_API_KEY.Distribuera programmet med kommandot
kubectl applyoch ange namnet på ditt YAML-manifest.kubectl apply -f ai-service.yamlFöljande exempelutdata visar de framgångsrikt skapade distributionerna och tjänsterna:
deployment.apps/ai-service created service/ai-service created
Note
Det är osäkert att lagra API-nycklar direkt i Kubernetes-manifest och kan exponera hemligheter i källkontrollen. I det här exemplet används manifestvärden för enkelhetens skull. För produktionsarbetsbelastningar autentiserar du till Azure OpenAI med hjälp av en hanterad identitet eller lagrar hemligheter i Azure Key Vault.
Testa programmet
Kontrollera statusen för de distribuerade poddarna med kommandot
kubectl get pods.kubectl get podsKontrollera att alla poddar har statusen Körs innan du fortsätter.
Hämta den externa IP-adressen för Store Admin med hjälp
kubectl get serviceav kommandot .kubectl get service store-adminEn Kubernetes-tjänst exponerar butiksadministratören via en offentlig lastbalanserare. Det kan ta några minuter för lastbalanseraren att tilldela en adress. Värdet EXTERNAL-IP visar väntande tills adressen är tillgänglig.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-admin LoadBalancer 10.0.142.228 40.64.86.161 80:32494/TCP 50mUpprepa föregående steg för
store-fronttjänsten.I en webbläsare går du till den externa IP-adressen för Store Admin. I det här exemplet är adressen 40.64.86.161.
I Store Admin väljer du Produkter>Lägg till produkt.
När du har
ai-servicestartat visas knappen Fråga AI-assistent bredvid beskrivningsfältet. Ange namn, pris och nyckelord, välj Be AI Assistant att generera en produktbeskrivning och välj sedan Spara produkt.Kontrollera att Dog Smart Collar visas i Store Admin.
Gå till den externa IP-adressen för Store Front och kontrollera att Dog Smart Collar visas.
Nästa steg
Nu när du har lagt till OpenAI-funktioner i ett AKS-program kan du säkerställa åtkomst till Azure OpenAI från Azure Kubernetes Service (AKS).
Mer information om generativa AI-användningsfall finns i följande resurser: