Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In dit artikel implementeert u de AKS Store-demotoepassing op Azure Kubernetes Service (AKS) en configureert u Azure OpenAI of de OpenAI-API om productbeschrijvingen te genereren.
De voorbeeldtoepassing in de cloud bestaat uit services die zijn geschreven in meerdere talen en frameworks, waaronder:
- Golang met Gin
- Rust met Actix-Web
- JavaScript met Vue.js en Fastify
- Python met FastAPI
Deze toepassingen bieden front-ends voor klanten en winkelbeheerders, REST API's die gegevens verzenden naar een RabbitMQ-berichtenwachtrij en DocumentDB-database, en console-apps die verkeer simuleren.
Notitie
Voer geen stateful containers uit, zoals DocumentDB en RabbitMQ, zonder permanente opslag in productie. In dit artikel worden ze zonder permanente opslag gebruikt om het eenvoudig te maken. Gebruik voor productieworkloads beheerde services zoals Azure Cosmos DB of Azure Service Bus.
Zie AKS Store Demo voor toegang tot de GitHub codebasis voor de voorbeeldtoepassing.
Voordat u begint
- U hebt een Azure-account met een actief abonnement nodig. Als u nog geen account hebt, maakt u gratis een account.
- Gebruik voor deze demo Azure OpenAI of de OpenAI-API.
- Als u Azure OpenAI wilt gebruiken, hebt u machtigingen nodig om een Azure OpenAI-resource te maken en een model te implementeren. Registratie is alleen vereist voor modellen met beperkte toegang of gewijzigde beveiliging.
- Als u de OpenAI-API wilt gebruiken, meldt u zich aan op de OpenAI-website.
Vereisten
Gebruik de Bash-omgeving in Azure Cloud Shell. Zie Get gestart met Azure Cloud Shell voor meer informatie.
Als u CLI-referentieopdrachten liever lokaal uitvoert, installeer de Azure CLI. Als u op Windows of macOS werkt, kunt u overwegen Azure CLI uit te voeren in een Docker-container. Zie De Azure CLI uitvoeren in een Docker-container voor meer informatie.
Als u een lokale installatie gebruikt, meldt u zich aan bij de Azure CLI met behulp van de opdracht az. Volg de stappen die worden weergegeven in de terminal, om het verificatieproces te voltooien. Zie Authenticate to Azure using Azure CLI voor andere aanmeldingsopties.
Wanneer u hierom wordt gevraagd, installeert u de Azure CLI-extensie bij het eerste gebruik. Zie Uitbreidingen gebruiken en beheren met de Azure CLI voor meer informatie over extensies.
Voer az version uit om de geïnstalleerde versie en de afhankelijke bibliotheken te vinden. Voer az upgrade uit om naar de nieuwste versie te upgraden.
Een brongroep maken
Een Azure resourcegroep is een logische groep waarin u Azure resources implementeert en beheert. Wanneer u een resourcegroep maakt, wordt u gevraagd een locatie op te geven. Deze locatie is de opslaglocatie van de metagegevens van uw resourcegroep en waar uw resources worden uitgevoerd in Azure als u geen andere regio opgeeft tijdens het maken van resources.
In het volgende voorbeeld wordt een resourcegroep met de naam myResourceGroup gemaakt in de locatie eastus.
Maak een resourcegroep met behulp van de az group create opdracht.
az group create --name myResourceGroup --location eastus
In het volgende voorbeeldresultaat ziet u dat de resourcegroep succesvol is aangemaakt:
{
"id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
"location": "eastus",
"managedBy": null,
"name": "myResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
Een AKS-cluster maken
In het volgende voorbeeld wordt een cluster met de naam myAKSCluster gemaakt in myResourceGroup.
Maak een AKS-cluster met behulp van de az aks create opdracht.
az aks create --resource-group myResourceGroup --name myAKSCluster --generate-ssh-keys
Na enkele minuten is de opdracht voltooid en retourneert deze informatie over het cluster in JSON-indeling.
Verbinding maken met het cluster
Als u een Kubernetes-cluster wilt beheren, gebruikt u de Kubernetes-opdrachtregelclient. kubectl Als u Azure Cloud Shell gebruikt, is kubectl al geïnstalleerd.
Installeer
kubectllokaal met behulp van deaz aks install-cliopdracht.az aks install-cliNotitie
Als voor uw Linux-systeem verhoogde machtigingen zijn vereist, gebruikt u de
sudo az aks install-cliopdracht.Configureer
kubectlom verbinding te maken met uw Kubernetes-cluster met behulp van hetaz aks get-credentialscommando.Met deze opdracht worden de volgende bewerkingen uitgevoerd:
- Hiervoor downloadt u credentials en configureert u de Kubernetes CLI om deze te gebruiken.
- Gebruikt
~/.kube/config, de standaardlocatie voor het Kubernetes-configuratiebestand. Geef een andere locatie op voor uw Kubernetes-configuratiebestand met behulp van het argument --file .
az aks get-credentials --resource-group myResourceGroup --name myAKSClusterControleer de verbinding met uw cluster met behulp van de
kubectl getopdracht. Met deze opdracht wordt een lijst met de clusterknooppunten geretourneerd.kubectl get nodesIn de volgende voorbeelduitvoer ziet u de knooppunten die in de voorgaande stappen zijn gemaakt. Controleer of elk knooppunt de status Gereed heeft.
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
Notitie
Voor een privé-AKS-cluster maakt u verbinding vanaf een eindpunt in hetzelfde virtuele netwerk als het cluster. Zie Een privé-AKS-cluster maken voor configuratie-instructies.
De toepassing implementeren
Het manifest AKS Store bevat de volgende Kubernetes-implementaties en -services:
- Productservice: toont productgegevens.
- Orderservice: Orders plaatsen.
- Makeline-service: verwerkt orders uit de wachtrij en voltooit de orders.
- Webwinkel: Webtoepassing voor klanten om producten te bekijken en bestellingen te plaatsen.
- Store admin: Webtoepassing voor winkelmedewerkers om orders in de wachtrij te bekijken en productinformatie te beheren.
- Virtuele klant: simuleert het maken van bestellingen op een geplande basis.
- Virtuele werknemer: simuleert ordervoltooiing volgens planning.
- DocumentDB: NoSQL exemplaar voor persistente gegevens.
- RabbitMQ: Berichtenwachtrij voor een orderwachtrij.
Notitie
Voer geen stateful containers uit, zoals DocumentDB en RabbitMQ, zonder permanente opslag in productie. In dit artikel worden ze zonder permanente opslag gebruikt om het eenvoudig te maken. Gebruik voor productieworkloads beheerde services zoals Azure Cosmos DB of Azure Service Bus.
Bekijk het YAML-manifest voor de toepassing.
Implementeer de toepassing met behulp van de
kubectl applyopdracht en geef de naam van uw YAML-manifest op.kubectl apply -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-all-in-one.yaml
Een OpenAI-service implementeren
Kies Azure OpenAI of de OpenAI-API voor de toepassing die wordt uitgevoerd op AKS.
- Maak in de Azure-portal een Azure OpenAI-exemplaar.
- Meld u aan bij Microsoft Foundry.
- Schakel de wisselknop New Foundry uit en selecteer vervolgens Alle resources weergeven onder Gebouw houden met Foundry.
- Selecteer de Azure OpenAI-resource die u hebt gemaakt en selecteer vervolgens Implementaties onder Gedeelde resources.
- Selecteer Model implementeren>basismodel implementeren.
- Selecteer het basismodel gpt-4o-mini , voer een implementatienaam in en implementeer vervolgens het model. Sla de implementatienaam op voor de volgende sectie.
Zie Aan de slag met het genereren van tekst met Azure OpenAI voor meer informatie over het maken van een Azure OpenAI-implementatie.
De AI-microservice implementeren
Implementeer de op Python gebaseerde AI-microservice die Gebruikmaakt van OpenAI om automatisch productbeschrijvingen te genereren. Deze microservice maakt verbinding met de AKS Store-toepassing die u in de vorige sectie hebt geïmplementeerd.
Gebruik de Azure OpenAI-resource en -modelimplementatie die u hebt gemaakt in de sectie Een OpenAI-service implementeren. Configureer de volgende omgevingsvariabelen in het AI-microservicemanifest:
| Omgevingsvariabele | Waarde |
|---|---|
USE_AZURE_OPENAI |
Ingesteld op "True" het gebruik van Azure OpenAI. |
AZURE_OPENAI_DEPLOYMENT_NAME |
De naam van uw gpt-4o-mini modelimplementatie in Microsoft Foundry. |
AZURE_OPENAI_ENDPOINT |
Het eindpunt op de pagina Sleutels en eindpunt van uw Azure OpenAI-resource. |
OPENAI_API_KEY |
Een API-sleutel op de pagina Sleutels en eindpunt van uw Azure OpenAI-resource. |
Maak een bestand met de naam
ai-service.yamlen kopieer dit in het volgende 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-serviceStel de omgevingsvariabele
USE_AZURE_OPENAIin op"True".Kopieer in Microsoft Foundry de naam van de Azure OpenAI-implementatie en stel de
AZURE_OPENAI_DEPLOYMENT_NAMEwaarde in.Selecteer in de Azure-portal sleutels en eindpunt in uw Azure OpenAI-resource. Kopieer het eindpunt en de API-sleutel en stel de
AZURE_OPENAI_ENDPOINTwaardenOPENAI_API_KEYin.Implementeer de toepassing met behulp van de
kubectl applyopdracht en geef de naam van uw YAML-manifest op.kubectl apply -f ai-service.yamlIn de volgende voorbeelduitvoer ziet u de gemaakte implementaties en services:
deployment.apps/ai-service created service/ai-service created
Notitie
Het rechtstreeks opslaan van API-sleutels in Kubernetes-manifesten is onveilig en kan geheimen beschikbaar maken in broncodebeheer. In dit voorbeeld worden manifestwaarden gebruikt voor het gemak. Voor productieworkloads moet u zich verifiëren bij Azure OpenAI met behulp van een beheerde identiteit of geheimen opslaan in Azure Key Vault.
De toepassing testen
Controleer de status van de geïmplementeerde pods met behulp van de
kubectl get podsopdracht.kubectl get podsControleer of alle pods de status Actief hebben voordat u doorgaat.
Haal het externe IP-adres voor De Store-beheerder op met behulp van de
kubectl get serviceopdracht.kubectl get service store-adminEen Kubernetes-service stelt Store-beheerder beschikbaar via een openbare load balancer. Het kan enkele minuten duren voordat de load balancer een adres toewijst. De waarde EXTERNAL-IP wordt in behandeling weergegeven totdat het adres beschikbaar is.
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE store-admin LoadBalancer 10.0.142.228 40.64.86.161 80:32494/TCP 50mHerhaal de voorgaande stap voor de
store-frontservice.Ga in een webbrowser naar het externe IP-adres voor Winkelbeheerder. In dit voorbeeld is het adres 40.64.86.161.
Selecteer In Winkelbeheerder producten>toevoegen product.
Na
ai-servicehet starten wordt de knop Ai-assistent vragen weergegeven naast het beschrijvingsveld. Voer de naam, prijs en trefwoorden in, selecteer Ai-assistent vragen om een productbeschrijving te genereren en selecteer vervolgens Product opslaan.Controleer of dog smart collar wordt weergegeven in Store Admin.
Ga naar het externe IP-adres voor Store Front en controleer of Dog Smart Collar wordt weergegeven.
Volgende stappen
Nu u OpenAI-functionaliteit hebt toegevoegd aan een AKS-toepassing, kunt u Secure access to Azure OpenAI from Azure Kubernetes Service (AKS).
Zie de volgende bronnen voor meer informatie over generatieve AI-gebruiksvoorbeelden: