Share via


Démarrage rapide : Déployer un conteneur Linux SQL Server sur Kubernetes à l’aide de graphiques Helm

S’applique à :SQL Server - Linux

Ce guide de démarrage rapide vous guide tout au long des étapes de déploiement de conteneurs SQL Server sur Linux sur Azure Kubernetes Service (AKS) avec des graphiques Helm à partir d’une machine cliente Windows.

AKS est un service Kubernetes managé pour le déploiement et la gestion des clusters de conteneurs. Helm est un outil d’empaquetage open source qui vous aide à installer et à gérer le cycle de vie d’applications Kubernetes.

Prérequis

  • Un abonnement Azure. Si vous n’avez pas d’abonnement Azure, vous pouvez créer un compte gratuit.

  • Créer un cluster AKS.

  • Télécharger et passer en revue l’exemple de graphique Helm pour ce guide de démarrage rapide. L’exemple de graphique contient de nombreuses options de configuration pour personnaliser votre déploiement SQL Server.

Installer les outils clients

Sur votre ordinateur client Windows, vous aurez besoin des outils suivants.

Si vous préférez utiliser un autre système d’exploitation client, vous devez sélectionner les packages appropriés pour cette plateforme.

Installer kubectl à l’aide du module Az PowerShell

Vous allez utiliser kubectl pour interagir avec le cluster Kubernetes. Pour plus d’informations, consultez az aks install-cli.

Pour installer kubectl, exécutez la commande suivante à partir de l’invite de commandes Windows :

az aks install-cli

Conseil

Vous pouvez ajouter kubectl à votre variable d’environnement locale PATH afin que vous n’ayez pas à taper le chemin d’accès complet chaque fois.

Connecter kubectl au cluster AKS

  1. Vous devez fusionner le contexte du cluster AKS afin que les commandes kubectl ou helm s’exécutent sur ce cluster AKS spécifique.

    Pour fusionner, exécutez la commande comme décrit dans l’article Se connecter au cluster AKS :

    az aks get-credentials --resource-group <resourcegroupname> --name <aks clustername>
    

    Vous devez voir la sortie suivante, où <clustername> est le cluster que vous avez fourni et <username> est votre compte d’utilisateur Windows local :

    Merged "<clustername>" as current context in C:\Users\<username>\.kube.config
    
  2. Vérifiez que la fusion a réussi en exécutant kubectl get nodes. La sortie doit afficher les nœuds dans le contexte de votre cluster AKS.

    NAME                    STATUS   ROLES   AGE    VERSION
    <aks-node>-vmss000000   Ready    agent   141d   v1.16.13
    <aks-node>-vmss000001   Ready    agent   141d   v1.16.13
    

Examiner l’exemple de graphique Helm

Vous êtes maintenant prêt à déployer SQL Server sur un cluster AKS via le graphique Helm.

Ce guide de démarrage rapide fournit un exemple de graphique Helm « as-is ». L’exemple est uniquement pour référence. Pensez à passer en revue le fichier readme pour comprendre les valeurs de configuration qui correspondent à vos besoins de configuration.

Si vous souhaitez déployer SQL Server en mode StatefulSet, qui est le mode recommandé pour les déploiements SQL Server, vous pouvez afficher un exemple de déploiement de graphique Helm « as-is » basé sur StatefulSet à la place.

  1. Téléchargez l’exemple de graphique Helm.

  2. Basculez vers le répertoire dans lequel vous avez téléchargé l’exemple de graphique et modifiez le fichier values.yaml si nécessaire.

Déployer SQL Server sur le cluster AKS

Déployez SQL Server à l’aide de la commande ci-dessous. Le nom du déploiement est personnalisable. Vous pouvez donc définir mssql-latest-deploy comme vous le souhaitez.

helm install mssql-latest-deploy . --set ACCEPT_EULA.value=Y --set MSSQL_PID.value=Developer

Dans l’exemple ci-dessus, le graphique et ses fichiers se trouvent dans le répertoire actif, représenté par le point (.). Vous pouvez spécifier le chemin d’accès du graphique si vous préférez.

En cas de réussite, vous verrez une sortie similaire :

NAME: mssql-latest-deploy
LAST DEPLOYED: Wed Apr 06 21:36:19 2022
NAMESPACE: default
STATUS: deployed
REVISION: 1

Vérifier le déploiement SQL Server

Le déploiement sur un cluster Kubernetes peut prendre quelques minutes. Pour vérifier que le déploiement a réussi, exécutez la commande suivante :

kubectl get all

En cas de réussite, vous verrez une sortie similaire :

NAME                                      READY   STATUS    RESTARTS   AGE
pod/mssql-latest-deploy-7f8c7f5bc-9grmg   1/1     Running   0          2m56s

NAME                          TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
service/kubernetes            ClusterIP      10.0.0.1       <none>        443/TCP          141d
service/mssql-latest-deploy   LoadBalancer   10.0.247.220   20.40.0.145   1433:30780/TCP   2m56s

NAME                                  READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/mssql-latest-deploy   1/1     1            1           2m56s

NAME                                            DESIRED   CURRENT   READY   AGE
replicaset.apps/mssql-latest-deploy-7f8c7f5bc   1         1         1       2m56s

Se connecter à SQL Server exécuté sur AKS

Vous pouvez vous connecter à l’instance SQL Server à l’aide d’un outil client SQL Server familier, tel que SQL Server Management Studio (SSMS), Azure Data Studio ou sqlcmd.

Par exemple, si vous vous connectez à l’instance SQL Server à l’aide de SSMS, vous pouvez utiliser les paramètres suivants :

  • Nom du serveur : utilisez l’adresse External-IP du service mssql-latest-deploy. Dans cet exemple, il s’agit de 20.40.0.145.
  • Authentification : sélectionnez l’authentification SQL Server dans la liste déroulante.
  • Nom d’utilisateur : utilisez sa, qui est le compte administrateur système.
  • Mot de passe : le mot de passe sa correspond à la valeur que vous avez fournie dans l’option de configuration sa_password, dans le fichier values.yaml du graphique Helm.

Une fois connecté, vous pourrez développer l’instance SQL Server dans l’Explorateur d’objets.

Screenshot showing the Object Explorer connected to the database instance.

Nettoyer les ressources

Si vous n’allez pas continuer à utiliser votre cluster AKS, n’oubliez pas de le supprimer.