Skip to main content

Command Palette

Search for a command to run...

Corriendo Microsoft SQL Server 2022 en Kubernetes

Una instancia de Kubernetes corriendo en Linux proporciona lo necesario para correr Microsoft SQL Server 2022

Updated
2 min read
Corriendo Microsoft SQL Server 2022 en Kubernetes

Correr Microsoft SQL Server 2022 en Kubernetes ofrece la flexibilidad de los contenedores junto con las fortalezas de una base de datos empresarial. En este artículo veremos cómo instalar SQL Server sobre un clúster de Kubernetes corriendo sobre Ubuntu 24.04.

Limitaciones

Para este ejemplo, es importante destacar que no se va a contar con la integración a Active Directory (a pesar de que es posible hacerlo) y tampoco estará disponible el servicio de Microsoft SQL Server Agent.

Pre-requisitos

Antes de comenzar con la instalación de Microsoft SQL Server 2022 en Kubernetes, es esencial contar con un clúster de Kubernetes funcional. Para ello, te recomendamos seguir los pasos detallados en nuestra: Guía para crear un servidor personal de Kubernetes. Esta guía te proporcionará las instrucciones necesarias para configurar tu entorno de Kubernetes de manera adecuada, asegurando que los siguientes pasos del tutorial se ejecuten sin inconvenientes.

Procedimiento

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Namespace
metadata:
  name: mssql
---
apiVersion: v1
kind: Secret
metadata:
  name: mssql-secret
  namespace: mssql
type: Opaque
stringData:
  SA_PASSWORD: "YourStrong!Passw0rd"   # ⚠️ Reemplazar con un password fuerte
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: mssql-pvc
  namespace: mssql
spec:
  storageClassName: longhorn
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: mssql
  namespace: mssql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mssql
  template:
    metadata:
      labels:
        app: mssql
    spec:
      securityContext:
        fsGroup: 10001
      containers:
      - name: mssql
        image: mcr.microsoft.com/mssql/server:2022-latest
        ports:
        - containerPort: 1433
        env:
        - name: ACCEPT_EULA
          value: "Y"
        - name: SA_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mssql-secret
              key: SA_PASSWORD
        volumeMounts:
        - name: mssql-data
          mountPath: /var/opt/mssql
      volumes:
      - name: mssql-data
        persistentVolumeClaim:
          claimName: mssql-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: mssql
  namespace: mssql
spec:
  type: LoadBalancer
  selector:
    app: mssql
  ports:
  - protocol: TCP
    port: 1433
    targetPort: 1433
EOF

Probando la nueva instancia de Microsoft SQL Server 2022

Empiece por verificar el IP asignado por MetalLB a su instancia:

kubectl get svc mssql -n mssql -o jsonpath='{.status.loadBalancer.ingress[0].ip}'

Utilice este IP en la ventana de conexión del SQL Server Management Studio 21 o superior:

Tome en cuenta que para este ejemplo, el password del usuario “sa” es: YourStrong!Passw0rd

Conclusión

En este artículo vimos cómo instalar Microsoft SQL Server 2022 en Kubernetes, cubriendo la creación del contenedor y el acceso al servicio. Al combinar la robustez de SQL Server con la escalabilidad de Kubernetes, es posible crear entornos de bases de datos modernos, flexibles y fácilmente gestionables.

Es recomendable investigar sobre mejores prácticas de seguridad antes de intentar correr esta instancia en un ambiente de producción.