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.
Den här guiden visar hur du distribuerar Data API Builder (DAB) till Azure Kubernetes Service (AKS) med hjälp av en anpassad containeravbildning som skickas till Azure Container Registry. AKS tillhandahåller hanterade Kubernetes med inbyggd skalning, hälsoavsökningar och hemlig hantering.
Förutsättningar
- Ett Azure-konto med en aktiv prenumeration. Skapa ett konto kostnadsfritt.
- Azure CLI installerat
- kubectl är installerad
- Docker är installerat
- Data-API-byggarens CLI. Installera CLI
- Ett befintligt AKS-kluster. Skapa ett AKS-kluster
- En befintlig databas som stöds kan nås från AKS
Skapa konfigurationsfilen
Skapa en lokal katalog för dina konfigurationsfiler.
Initiera en baskonfigurationsfil med hjälp av
dab init.@env()Använd anslutningssträngsfunktionen så att hemligheten matas in vid körningstid, inte bakas in i bilden.dab init \ --database-type mssql \ --connection-string "@env('DATABASE_CONNECTION_STRING')"Lägg till minst en entitet med .
dab addUpprepa för varje tabell eller vy som du vill exponera.dab add Books \ --source dbo.Books \ --permissions "anonymous:read"Granska
dab-config.jsoninnan du fortsätter.
Skapa och push-överföra en anpassad containeravbildning
Skapa en avbildning som innehåller dab-config.json på /App/dab-config.json.
Skapa ett Azure Container Registry om du inte redan har ett.
az acr create \ --resource-group <resource-group> \ --name <registry-name> \ --sku Basic \ --admin-enabled trueSkapa en
Dockerfilei samma katalog somdab-config.json.FROM mcr.microsoft.com/azure-databases/data-api-builder:latest COPY dab-config.json /App/dab-config.jsonSkapa och pusha avbildningen med ACR Tasks.
az acr build \ --registry <registry-name> \ --image dab:latest \ .Observera den fullständiga bildreferensen:
<registry-name>.azurecr.io/dab:latest.
Ansluta AKS till ACR
Ge AKS-klustret pull-åtkomst till registret.
az aks update \
--name <cluster-name> \
--resource-group <resource-group> \
--attach-acr <registry-name>
Lagra anslutningssträngen som en Kubernetes-hemlighet
Lagra databasanslutningssträngen som en Kubernetes-hemlighet så att den aldrig finns i manifestfilen.
kubectl create secret generic dab-secrets \
--from-literal=DATABASE_CONNECTION_STRING="<your-connection-string>"
Varning
Placera aldrig anslutningssträngar direkt i Kubernetes-manifestfiler eller containeravbildningar. Använd sekretessdata eller Azure Key Vault.
Skapa Kubernetes-manifestet
Skapa en fil med namnet dab-deployment.yaml med följande innehåll. Ersätt <registry-name> med ditt ACR-namn.
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
Anmärkning
readinessProbe och livenessProbe använder DAB-slutpunkten /health. Mer information finns i Hälsokontroller.
Distribuera till AKS
Hämta autentiseringsuppgifter för klustret.
az aks get-credentials \ --resource-group <resource-group> \ --name <cluster-name>Tillämpa manifestet.
kubectl apply -f dab-deployment.yamlTitta på distributionen tills poddar är klara.
kubectl rollout status deployment/dabHämta den externa IP-adressen som tilldelats till tjänsten.
kubectl get service dab-serviceKolumnen
EXTERNAL-IPvisar den offentliga IP-adressen. Vänta en minut för att lastbalanseraren ska förberedas.
Verifiera driftsättningen
Gå till
http://<external-ip>/health. Ett hälsosamt svar ser ut så här:{ "status": "healthy", "version": "2.0.0", "app-name": "dab_oss_2.0.0" }Testa en entitetsslutpunkt.
curl http://<external-ip>/api/Books
Skala utplaceringen
Ändra antalet repliker för att skala horisontellt.
kubectl scale deployment/dab --replicas=4
Eller uppdatera spec.replicas i dab-deployment.yaml och tillämpa igen.
Rensa resurser
Ta bort distributionen och tjänsten när den inte längre behövs.
kubectl delete -f dab-deployment.yaml
kubectl delete secret dab-secrets
Ta bort AKS-klustret och registret genom att ta bort resursgruppen.
az group delete \
--name <resource-group> \
--yes --no-wait