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 deze handleiding wordt getoond hoe u Data API Builder (DAB) implementeert naar de Azure Kubernetes Service (AKS) met behulp van een aangepaste containerimage die naar Azure Container Registry wordt gepusht. AKS biedt beheerde Kubernetes met ingebouwde schaalaanpassing, statustests en geheimbeheer.
Vereiste voorwaarden
- Een Azure-account met een actief abonnement. Gratis een account maken
- Azure CLI is geïnstalleerd
- kubectl geïnstalleerd
- Docker geïnstalleerd
- Data-API-bouwer CLI. De CLI installeren
- Een bestaand AKS-cluster. Een AKS-cluster maken
- Een bestaande ondersteunde database bereikbaar vanuit AKS
Het configuratiebestand bouwen
Maak een lokale map voor uw configuratiebestanden.
Initialiseer een basisconfiguratiebestand met behulp van
dab init. Gebruik de@env()functie voor de verbindingsreeks, zodat het geheim tijdens runtime wordt geïnjecteerd en niet in de afbeelding is gebakken.dab init \ --database-type mssql \ --connection-string "@env('DATABASE_CONNECTION_STRING')"Voeg ten minste één entiteit toe met behulp van
dab add. Herhaal dit voor elke tabel of weergave die u wilt weergeven.dab add Books \ --source dbo.Books \ --permissions "anonymous:read"Controleer
dab-config.jsonvoordat u doorgaat.
Een aangepaste containerimage bouwen en pushen
Bouw een image die dab-config.json bevat bij /App/dab-config.json.
Maak een Azure Container Registry als u er nog geen hebt.
az acr create \ --resource-group <resource-group> \ --name <registry-name> \ --sku Basic \ --admin-enabled trueMaak een
Dockerfilein dezelfde map alsdab-config.json.FROM mcr.microsoft.com/azure-databases/data-api-builder:latest COPY dab-config.json /App/dab-config.jsonBouw en push de afbeelding met ACR Tasks.
az acr build \ --registry <registry-name> \ --image dab:latest \ .Let op de volledige afbeeldingsreferentie:
<registry-name>.azurecr.io/dab:latest.
AKS verbinden met ACR
Ververleent uw AKS-cluster pull-toegang tot het register.
az aks update \
--name <cluster-name> \
--resource-group <resource-group> \
--attach-acr <registry-name>
De verbindingsreeks opslaan als een Kubernetes-geheim
Sla de databaseverbindingsreeks op als een Kubernetes-geheim, zodat deze zich nooit in het manifestbestand bevindt.
kubectl create secret generic dab-secrets \
--from-literal=DATABASE_CONNECTION_STRING="<your-connection-string>"
Waarschuwing
Plaats verbindingsreeksen nooit rechtstreeks in kubernetes-manifestbestanden of containerinstallatiekopieën. Gebruik geheimen of Azure Key Vault.
Het Kubernetes-manifest maken
Maak een bestand met de naam dab-deployment.yaml met de volgende inhoud. Vervang <registry-name> door uw ACR-naam.
apiVersion: apps/v1
kind: Deployment
metadata:
name: dab
labels:
app: dab
spec:
replicas: 2
selector:
matchLabels:
app: dab
template:
metadata:
labels:
app: dab
spec:
containers:
- name: dab
image: <registry-name>.azurecr.io/dab:latest
ports:
- containerPort: 5000
env:
- name: DATABASE_CONNECTION_STRING
valueFrom:
secretKeyRef:
name: dab-secrets
key: DATABASE_CONNECTION_STRING
readinessProbe:
httpGet:
path: /health
port: 5000
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
httpGet:
path: /health
port: 5000
initialDelaySeconds: 15
periodSeconds: 20
---
apiVersion: v1
kind: Service
metadata:
name: dab-service
spec:
selector:
app: dab
ports:
- protocol: TCP
port: 80
targetPort: 5000
type: LoadBalancer
Opmerking
readinessProbe en livenessProbe gebruiken het DAB-eindpunt/health. Zie Statuscontroles voor meer informatie.
Implementeren naar AKS
Haal referenties op voor uw cluster.
az aks get-credentials \ --resource-group <resource-group> \ --name <cluster-name>Pas het manifest toe.
kubectl apply -f dab-deployment.yamlHoud de implementatie in de gaten totdat de pods klaar zijn.
kubectl rollout status deployment/dabHaal het externe IP-adres op dat is toegewezen aan de service.
kubectl get service dab-serviceIn
EXTERNAL-IPde kolom wordt het openbare IP-adres weergegeven. Wacht even totdat de load balancer kan worden ingericht.
De implementatie controleren
Navigeer naar
http://<external-ip>/health. Een goed antwoord ziet er als volgt uit:{ "status": "healthy", "version": "2.0.0", "app-name": "dab_oss_2.0.0" }Test een entiteitseindpunt.
curl http://<external-ip>/api/Books
De implementatie schalen
Wijzig het aantal replica's om horizontaal te schalen.
kubectl scale deployment/dab --replicas=4
Werk spec.replicas bij in dab-deployment.yaml en pas opnieuw toe.
De hulpbronnen opschonen
Verwijder de implementatie en service wanneer u deze niet meer nodig hebt.
kubectl delete -f dab-deployment.yaml
kubectl delete secret dab-secrets
Als u het AKS-cluster en het register wilt verwijderen, verwijdert u de resourcegroep.
az group delete \
--name <resource-group> \
--yes --no-wait
Verwante inhoud
- Implementeren in Azure Container Apps
- Implementeren in Azure Container Instances
- Overzicht van implementatieopties
- Gezondheidscontroles
- Aanbevolen procedures voor implementatie: beveiliging