Utiliser un script Python pour déployer un cluster Big Data SQL Server sur Azure Kubernetes Service (AKS)

S’applique à : SQL Server 2019 (15.x)

Important

Le module complémentaire Clusters Big Data Microsoft SQL Server 2019 sera mis hors service. La prise en charge de la plateforme Clusters Big Data Microsoft SQL Server 2019 se terminera le 28 février 2025. Tous les utilisateurs existants de SQL Server 2019 avec Software Assurance seront entièrement pris en charge sur la plateforme, et le logiciel continuera à être maintenu par les mises à jour cumulatives SQL Server jusqu’à ce moment-là. Pour plus d’informations, consultez le billet de blog d’annonce et les Options Big Data sur la plateforme Microsoft SQL Server.

Dans ce tutoriel, vous utilisez un exemple de script de déploiement Python pour déployer des Clusters de Big Data SQL Server 2019 sur AKS (Azure Kubernetes Service).

Conseil

AKS n’est qu’une option pour héberger Kubernetes pour votre cluster Big Data. Pour découvrir les autres options de déploiement et savoir comment les personnaliser, consultez Guide pratique pour déployer Clusters Big Data SQL Server sur Kubernetes.

Le déploiement de cluster Big Data par défaut utilisé ici se compose d’une instance principale SQL, d’une instance de pool de calcul, de deux instances de pool de données et de deux instances de pool de stockage. Les données sont conservées avec des volumes persistants Kubernetes qui utilisent les classes de stockage par défaut d’AKS. La configuration par défaut utilisée dans ce tutoriel est adaptée aux environnements de développement et de test.

Prérequis

  • Un abonnement Azure.
  • Outils Big Data :
    • azdata
    • kubectl
    • Azure Data Studio
    • Extension SQL Server 2019
    • Azure CLI

Se connecter à votre compte Azure

Le script utilise Azure CLI pour automatiser la création d’un cluster AKS. Avant d’exécuter le script, vous devez vous connecter à votre compte Azure avec Azure CLI au moins une fois. Exécutez la commande suivante à partir d’une invite de commandes. Pour plus d’informations, consultez Se connecter avec Azure CLI.

az login

Télécharger le script de déploiement

Ce tutoriel automatise la création du cluster Big Data sur AKS à l’aide d’un script Python deploy-sql-big-data-aks.py. Si vous avez déjà installé Python pour azdata, vous devez normalement pouvoir exécuter le script avec succès dans ce tutoriel.

Dans une invite Windows PowerShell ou Linux bash, exécutez la commande suivante pour télécharger le script de déploiement à partir de GitHub.

curl -o deploy-sql-big-data-aks.py "https://raw.githubusercontent.com/Microsoft/sql-server-samples/master/samples/features/sql-big-data-cluster/deployment/aks/deploy-sql-big-data-aks.py"

Exécuter le script de déploiement

Procédez comme suit pour exécuter le script de déploiement dans une invite bash Windows PowerShell ou Linux. Ce script crée un service AKS dans Azure, puis déploie un cluster Big Data SQL Server 2019 sur AKS. Vous pouvez également modifier le script avec d’autres variables d’environnement pour créer un déploiement personnalisé.

  1. Exécutez le script avec la commande suivante :

    python deploy-sql-big-data-aks.py
    

    Notes

    Si vous avez à la fois python3 et python2 sur votre machine cliente et dans le chemin, vous devez exécuter la commande avec python3 : python3 deploy-sql-big-data-aks.py.

  2. Quand vous y êtes invité, entrez les informations suivantes :

    Valeur Description
    ID d’abonnement Azure ID d’abonnement Azure à utiliser pour AKS. Vous pouvez lister tous vos abonnements et leur ID en exécutant az account list à partir d’une autre ligne de commande.
    Groupe de ressources Azure Nom du groupe de ressources Azure à créer pour le cluster AKS.
    Région Azure Région Azure pour le nouveau cluster AKS (westus par défaut).
    Taille de machine Taille de machine à utiliser pour les nœuds du cluster AKS (Standard_D16s_v3 par défaut).
    Nœuds worker Nombre de nœuds worker du cluster AKS (1 par défaut).
    Nom du cluster Nom du cluster AKS et du cluster Big Data. Le nom de votre cluster Big Data ne doit contenir que des caractères alphanumériques minuscules et aucun espace. (sqlbigdata par défaut).
    Mot de passe Mot de passe pour le contrôleur, la passerelle HDFS/Spark et l’instance principale (MySQLBigData2019 par défaut).
    Nom d’utilisateur Nom d’utilisateur de l’utilisateur du contrôleur (admin par défaut).

    Important

    La taille de machine Standard_D16s_v3 par défaut peut ne pas être disponible dans toutes les régions Azure. Si vous sélectionnez une autre taille de machine, veillez à ce que le nombre total de disques pouvant être attachés sur les nœuds du cluster soit supérieur ou égal à 24. Chaque revendication de volume persistant dans le cluster nécessite un disque attaché. Actuellement, le cluster Big Data nécessite 24 revendications de volumes persistants.

    Exécutez la commande suivante pour identifier les types de machines virtuelles disponibles.

    az vm list-sizes --query "sort_by(@,&name)[?contains(name,'Standard_D16s')]" -l westus2 -o table
    

    Notes

    Le compte SQL Server sa est désactivé durant le déploiement de clusters Big Data. Une nouvelle connexion sysadmin est provisionnée dans l’instance maître de SQL Server avec le même nom que celui spécifié pour l’entrée du Nom d’utilisateur et le mot de passe correspondant à l’entrée du Mot de passe. Les mêmes valeurs correspondant à Nom d’utilisateur et Mot de passe sont utilisées pour provisionner un utilisateur administrateur de contrôleur. Le seul utilisateur pris en charge pour la passerelle (Knox) sur des clusters déployés avant SQL Server 2019 CU5 est racine et le mot de passe est le même que ci-dessus.

    À partir de SQL Server 2019 (15.x) CU 5, lorsque vous déployez un nouveau cluster avec l’authentification de base, tous les points de terminaison, dont la passerelle, utilisent AZDATA_USERNAME et AZDATA_PASSWORD. Les points de terminaison sur les clusters mis à niveau vers la CU 5 continuent à utiliser root comme nom d’utilisateur pour se connecter au point de terminaison de la passerelle. Cette modification ne s’applique pas aux déploiements utilisant l’authentification Active Directory. Voir Informations d’identification pour l’accès aux services via le point de terminaison de passerelle dans les notes de publication.

  3. Le script commence par créer un cluster AKS avec les paramètres que vous avez spécifiés. Cette étape prend plusieurs minutes.

Superviser l’état

Une fois que le script a créé le cluster AKS, il définit les variables d’environnement nécessaires avec les paramètres que vous avez spécifiés précédemment. Il appelle ensuite azdata pour déployer le cluster Big Data sur AKS.

La fenêtre de commande du client indique l’état du déploiement. Vous devez ensuite voir une série de messages indiquant que le processus de déploiement attend le pod du contrôleur :

2018-11-15 15:42:02.0209 UTC | INFO | Waiting for controller pod to be up...

Après 10 à 20 minutes, vous devez être informé que le pod du contrôleur est en cours d’exécution :

2018-11-15 15:50:50.0300 UTC | INFO | Controller pod is running.
2018-11-15 15:50:50.0585 UTC | INFO | Controller Endpoint: https://111.111.111.111:30080

Important

L’ensemble du processus de déploiement peut durer longtemps en raison du temps nécessaire au téléchargement des images de conteneur pour les composants du cluster Big Data. Il ne devrait cependant pas prendre plusieurs heures. Si vous rencontrez des problèmes avec votre déploiement, consultez Supervision et résolution des problèmes de Clusters Big Data SQL Server.

Inspecter le cluster

À tout moment pendant le déploiement, vous pouvez utiliser kubectl ou azdata pour inspecter l’état et les détails sur le cluster Big Data en cours d’exécution.

Utiliser kubectl

Ouvrez une nouvelle fenêtre de commande pour utiliser kubectl pendant le processus de déploiement.

  1. Exécutez la commande suivante pour obtenir un récapitulatif de l’état de l’ensemble du cluster :

    kubectl get all -n <your-big-data-cluster-name>
    

    Conseil

    Si vous n’avez pas modifié le nom du cluster Big Data, le script utilise sqlbigdata par défaut.

  2. Examinez les services kubernetes et leurs points de terminaison internes et externes avec la commande kubectl suivante :

    kubectl get svc -n <your-big-data-cluster-name>
    
  3. Vous pouvez également inspecter l’état des pods kubernetes avec la commande suivante :

    kubectl get pods -n <your-big-data-cluster-name>
    
  4. Trouvez plus d’informations sur un pod spécifique avec la commande suivante :

    kubectl describe pod <pod name> -n <your-big-data-cluster-name>
    

Conseil

Pour plus d’informations sur la supervision et la résolution des problèmes d’un déploiement, consultez Supervision et résolution des problèmes de Clusters Big Data SQL Server.

Se connecter au cluster

Une fois le script déploiement terminé, la sortie vous indique la réussite :

2018-11-15 16:10:25.0583 UTC | INFO | Cluster state: Ready
2018-11-15 16:10:25.0583 UTC | INFO | Cluster deployed successfully.

Le cluster Big Data SQL Server est maintenant déployé sur AKS. Vous pouvez maintenant utiliser Azure Data Studio pour vous connecter au cluster. Pour plus d’informations, consultez Se connecter à un cluster Big Data SQL Server avec Azure Data Studio.

Nettoyer

Si vous testez Clusters Big Data SQL Server dans Azure, vous devez supprimer le cluster AKS une fois que vous avez fini pour éviter les charges inattendues. Ne supprimez pas le cluster si vous envisagez de continuer à l’utiliser.

Avertissement

Les étapes suivantes détruisent le cluster AKS, ce qui supprime également le cluster Big Data SQL Server. Si vous voulez conserver des bases de données ou des données HDFS, sauvegardez-les avant de supprimer le cluster.

Exécutez la commande Azure CLI suivante pour supprimer le cluster Big Data et le service AKS dans Azure (remplacez <resource group name> par le groupe de ressources Azure que vous avez spécifié dans le script de déploiement) :

az group delete -n <resource group name>