Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Azure Kubernetes Service (AKS) vous permet d’exécuter le générateur d’API de données dans un cluster Kubernetes managé en même temps que vos autres charges de travail. Ce guide décrit la création d’une image conteneur personnalisée qui inclut votre fichier de configuration, l’envoi (push) vers Azure Container Registry (ACR) et son déploiement sur AKS avec un manifeste Kubernetes.
Prerequisites
- Un compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Azure CLI installé
- kubectl installé
- Docker installé
- CLI du générateur d'API de données. Installer l’interface CLI
- Cluster AKS existant. Créer un cluster AKS
- Une base de données prise en charge existante accessible à partir d’AKS
Générer le fichier de configuration
Créez un répertoire local pour vos fichiers de configuration.
Initialisez un fichier de configuration de base à l’aide
dab initde . Utilisez la@env()fonction pour la chaîne de connexion afin que le secret soit injecté au moment de l’exécution, pas dans l’image.dab init \ --database-type mssql \ --connection-string "@env('DATABASE_CONNECTION_STRING')"Ajoutez au moins une entité à l’aide de
dab add. Répétez cette opération pour chaque table ou vue que vous souhaitez exposer.dab add Books \ --source dbo.Books \ --permissions "anonymous:read"Passez en revue
dab-config.jsonavant de continuer.
Générer et envoyer (push) une image conteneur personnalisée
Générez une image qui inclut dab-config.json à /App/dab-config.json.
Créez un Registre de conteneurs Azure si vous n’en avez pas déjà.
az acr create \ --resource-group <resource-group> \ --name <registry-name> \ --sku Basic \ --admin-enabled trueCréez un
Dockerfiledans le même emplacement quedab-config.json.FROM mcr.microsoft.com/azure-databases/data-api-builder:latest COPY dab-config.json /App/dab-config.jsonGénérez et envoyez (push) l’image à l’aide de tâches ACR.
az acr build \ --registry <registry-name> \ --image dab:latest \ .Notez la référence d’image complète :
<registry-name>.azurecr.io/dab:latest.
Connecter AKS à ACR
Accordez à votre cluster AKS un accès par extraction au Registre.
az aks update \
--name <cluster-name> \
--resource-group <resource-group> \
--attach-acr <registry-name>
Stocker la chaîne de connexion en tant que secret Kubernetes
Stockez la chaîne de connexion de base de données en tant que secret Kubernetes afin qu’elle ne se trouve jamais dans le fichier manifeste.
kubectl create secret generic dab-secrets \
--from-literal=DATABASE_CONNECTION_STRING="<your-connection-string>"
Avertissement
Ne placez jamais de chaînes de connexion directement dans les fichiers manifestes Kubernetes ou les images conteneur. Utilisez des secrets ou le service Azure Key Vault.
Créer le manifeste Kubernetes
Créez un fichier nommé dab-deployment.yaml avec le contenu suivant : Remplacez <registry-name> par votre nom ACR.
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
Note
readinessProbe et livenessProbe utilisent l'endpoint DAB /health. Pour plus d’informations, consultez Vérifications d’intégrité.
Déployer sur AKS
Obtenez des informations d’identification pour votre cluster.
az aks get-credentials \ --resource-group <resource-group> \ --name <cluster-name>Appliquez le manifeste.
kubectl apply -f dab-deployment.yamlRegardez le déploiement jusqu’à ce que les pods soient prêts.
kubectl rollout status deployment/dabObtenez l’adresse IP externe affectée au service.
kubectl get service dab-serviceLa
EXTERNAL-IPcolonne affiche l’adresse IP publique. Laissez une minute pour que l’équilibreur de charge soit approvisionné.
Vérifier le déploiement
Accédez à
http://<external-ip>/health. Une réponse saine ressemble à ceci :{ "status": "healthy", "version": "2.0.0", "app-name": "dab_oss_2.0.0" }Testez un point de terminaison d’entité.
curl http://<external-ip>/api/Books
Mettre à l’échelle le déploiement
Modifiez le nombre de réplicas pour effectuer une mise à l’échelle horizontalement.
kubectl scale deployment/dab --replicas=4
Ou mettre à jour spec.replicasdab-deployment.yaml et réappliquer.
Nettoyer les ressources
Supprimez le déploiement et le service quand vous n’en avez plus besoin.
kubectl delete -f dab-deployment.yaml
kubectl delete secret dab-secrets
Pour supprimer le cluster et le Registre AKS, supprimez le groupe de ressources.
az group delete \
--name <resource-group> \
--yes --no-wait