Inicio rápido: Implementación de un contenedor de SQL Server en Linux en Azure Kubernetes Service (AKS) mediante gráficos de Helm

Se aplica a:SQL Server: Linux

En este inicio rápido se describen los pasos necesarios para implementar contenedores de SQL Server en Linux en Azure Kubernetes Service (AKS) con gráficos de Helm, desde una máquina cliente Windows.

AKS es un servicio de Kubernetes administrado para implementar y administrar clústeres de contenedores. Helm es una herramienta de empaquetado de código abierto que ayuda a instalar y administrar el ciclo de vida de las aplicaciones de Kubernetes.

Requisitos previos

  • Suscripción a Azure. Si no tiene una suscripción a Azure, puede crear una cuenta gratuita.

  • Creación de un clúster de AKS.

  • Descargue y revise el gráfico de Helm de ejemplo para este inicio rápido. El gráfico de ejemplo contiene muchas opciones de configuración para personalizar la implementación de SQL Server.

Instalar las herramientas de cliente

En la máquina cliente Windows, necesitará las siguientes herramientas.

Si prefiere usar un sistema operativo cliente diferente, deberá seleccionar los paquetes adecuados para esa plataforma.

Instalación de kubectl con el módulo Az PowerShell

Usará kubectl para interactuar con el clúster de Kubernetes. Para más información, consulte az aks install-cli.

Para instalar kubectl, ejecute el comando siguiente desde el símbolo del sistema de Windows:

az aks install-cli

Sugerencia

Puede agregar kubectl a la variable de entorno PATH local, de modo que no tenga que escribir la ruta de acceso completa cada vez.

Conexión de kubectl al clúster de AKS

  1. Debe combinar el contexto del clúster de AKS para que los comandos kubectl o helm se ejecuten en ese clúster de AKS específico.

    Para combinarlo, ejecute el comando como se describe en el artículo Conexión al clúster de AKS:

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

    Debería ver la siguiente salida, donde <clustername> es el clúster que proporcionó y <username> es la cuenta de usuario local de Windows:

    Merged "<clustername>" as current context in C:\Users\<username>\.kube.config
    
  2. Confirme que la combinación se realizó correctamente mediante la ejecución de kubectl get nodes. La salida debe mostrar los nodos en el contexto del clúster de AKS.

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

Revisión del gráfico de Helm de ejemplo

Ya está listo para implementar el clúster de SQL Server en AKS mediante el gráfico de Helm.

En este inicio rápido se proporciona un gráfico de Helm de ejemplo "tal cual". El ejemplo es solo para referencia. Recuerde revisar el archivo readme para comprender los valores de configuración que coinciden con los requisitos de configuración.

Si desea implementar SQL Server en el modo StatefulSet, que es el modo recomendado para las implementaciones de SQL Server, puede ver una implementación de gráfico de Helm basado en StatefulSet de ejemplo "tal cual".

  1. Descargue el gráfico de Helm de ejemplo.

  2. Cambie al directorio donde descargó el gráfico de ejemplo y modifique el archivo values.yaml si es necesario.

Implementación de SQL Server en el clúster de AKS

Implemente SQL Server con el comando siguiente. El nombre de la implementación es personalizable, por lo que puede cambiar mssql-latest-deploy a cualquier cosa que desee.

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

En el ejemplo anterior, el gráfico y sus archivos están en el directorio actual, representado por el punto (.). Puede especificar la ruta de acceso del gráfico si lo prefiere.

Si la ejecución es correcta, verá una salida similar a esta:

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

Verificación de la implementación de SQL Server

La implementación en un clúster de Kubernetes puede tardar unos minutos. Para comprobar que la implementación se ha realizado correctamente, ejecute el siguiente comando:

kubectl get all

Si la ejecución es correcta, verá una salida similar a esta:

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

Conexión a instancia de SQL Server que se ejecuta en AKS

Puede conectarse a la instancia de SQL Server mediante cualquier herramienta de cliente de SQL Server conocida, como SQL Server Management Studio (SSMS), Azure Data Studio o sqlcmd.

Por ejemplo, si se conecta a la instancia de SQL Server mediante SSMS, puede usar la siguiente configuración:

  • Nombre del servidor: use la dirección External-IP del servicio mssql-latest-deploy. En este ejemplo, es 20.40.0.145.
  • Autenticación: seleccione Autenticación de SQL Server en la lista desplegable.
  • Iniciar sesión: use sa, que es la cuenta de administrador del sistema.
  • Contraseña: la contraseña sa coincide con el valor que proporcionó en la opción de configuración sa_password, en el archivo values.yaml del gráfico de Helm.

Una vez que se haya conectado, podrá expandir la instancia de SQL Server en el Explorador de objetos.

Screenshot showing the Object Explorer connected to the database instance.

Limpieza de recursos

Si no va a seguir usando el clúster de AKS, recuerde eliminar el clúster.