VB
Agosto 23 2022
Actualizado el 31 de julio de 2025

Cómo implementar MongoDB en Kubernetes con el Serverspace

Kubernetes MongoDB

Introducción

Serverspace le permite implementar rápidamente un servidor con MongoDB preinstalado
MongoDB es uno de los sistemas de gestión de bases de datos NoSQL más populares. Al combinarse con... Kubernetes Orchestrator, se convierte en una solución altamente escalable y versátil para manejar datos de aplicaciones modernas en entornos distribuidos.

Requisitos

Para trabajar con MongoDB en KubernetesNecesitarás un servidor que ejecute cualquier sistema operativo (preferiblemente Linux con acceso root o privilegios sudo) para administrar el Kubernetes clúster (ver el siguiente paso).

Kubernetes creación de instancias

Antes de implementar MongoDB, debe tener KubernetesPara crearlo en la infraestructura de ServerSpace, simplemente inicie sesión en su área de cliente y luego haga clic en Kubernetes vincular y crear una instancia:

pic1

pic2

El proceso puede tardar un poco, tenga paciencia. Cuando haya terminado, verá los parámetros del clúster y debería descargar el archivo de credenciales de acceso:

pic3

Configuración de instancia

Para instalar el servicio de base de datos en su Kubernetes grupo por favor siga:

  • Inicie sesión en su servidor de administración como usuario privilegiado e instale las herramientas necesarias:
sudo -s
apt-get update && apt install curl apt-transport-https -y && curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list && apt-get update && apt install kubectl -y

pic4

  • Cree un archivo que almacene datos de acceso al clúster y configúrelo como variable del sistema:
mkdir /usr/local/etc/mongo && cd /usr/local/etc/mongo
cat << EOF > testcluster.conf
<PASTE CONFIGURATION DATA HERE>
EOF
echo "export KUBECONFIG=testcluster.conf" >> ~/.bashrc

pic5

  • Para verificar la conexión simplemente ejecute:
kubectl cluster-info

Si la salida se parece a la imagen de abajo, la conexión es exitosa

pic6

    • MongoDB necesita almacenamiento para guardar sus datos. El proceso de creación de almacenamiento se describe en archivos de configuración especiales. Puedes personalizarlo según tus necesidades:
    cat << EOF > PersistVolClaim.yaml
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
    name: mongodatapv # Should be the same with name in previous file
    spec:
    accessModes:
    - ReadWriteOnce
    resources:
    requests:
    storage: 1Gi # Should be the same with capacity in previous file
    EOF

    pic8

      El siguiente paso es crear un archivo de credenciales, que almacena el acceso a MongoDB:

      cat << EOF > Creds.yaml
      apiVersion: v1
      data:
      username: <BASE64_ENCODED_LOGIN>
      password: <BASE64_ENCODED_PASSWORD>
      kind: Secret
      metadata:
      creationTimestamp: null
      name: creds
      EOF

      pic9

      Tip: Para codificar y decodificar datos, puede usar comandos simples:

      echo <DATA> | base64 # to crypt data via base64 tool
      echo <BASE64_ENCRYPTED_DATA> | base64 -d # to decrypt it

      pic10

      • A continuación, cree un archivo de implementación de instancia:
        cat << EOF > Deploy.yaml
        apiVersion: apps/v1
        kind: Deployment
        metadata:
        labels:
        app: mongo
        name: mongo
        spec:
        replicas: 1
        selector:
        matchLabels:
        app: mongo
        strategy: {}
        template:
        metadata:
        labels:
        app: mongo
        spec:
        containers:
        - image: mongo
        name: mongo
        args: ["--dbpath","/data/db"]
        livenessProbe:
        exec:
        command:
        - mongo
        - --disableImplicitSessions
        - --eval
        readinessProbe:
        exec:
        command:
        - mongo
        - --disableImplicitSessions
        - --eval
        env:
        - name: MONGO_INITDB_ROOT_USERNAME
        valueFrom:
        secretKeyRef:
        name: creds
        key: username
        - name: MONGO_INITDB_ROOT_PASSWORD
        valueFrom:
        secretKeyRef:
        name: creds
        key: password
        volumeMounts:
        - name: "datadir"
        mountPath: "/data/db"
        volumes:
        - name: "datadir"
        persistentVolumeClaim:
        claimName: "mongopvc"
        EOF

      pic11

      • Para iniciar MongoDB, ejecute el comando:
      kubectl apply -f

      La salida exitosa se ve como en la imagen a continuación:

      pic12

      Verificación de conexión

      • Ahora las instancias están implementadas, por lo que debe verificar la conexión. Solo corre:
      kubectl exec deployment/client -it -- /bin/bash
      mongo

      En caso de que vea el mensaje de MongoDB, la conexión es exitosa:

      pic14

       

      • Para crear una nueva base de datos simplemente "cambie" a la nueva base de datos. NOTA: Los datos no se guardarán hasta que agregue algo a la base de datos:
      use NEW_DATABASE_NAME
      db.createCollection("newdata") # example to add data
      show dbs # check is database exist

      pic15

      Conclusión

      Después de leer este artículo, habrá aprendido a crear un Kubernetes agrupar usando el Serverspace Área de cliente, implemente el servicio MongoDB en el clúster, cree una nueva base de datos e inserte datos en ella. Esta configuración proporciona una base sólida para desarrollar aplicaciones escalables y nativas de la nube mediante una solución NoSQL flexible.

      Preguntas Frecuentes

      • P: ¿Necesito información previa? Kubernetes ¿Tienes experiencia para seguir este tutorial?
        R: No, el artículo es para principiantes y ofrece instrucciones paso a paso. Sin embargo, será útil tener conocimientos básicos de servidores y operaciones de línea de comandos.
      • P: ¿Puedo implementar otras bases de datos en la misma base de datos? Kubernetes ¿grupo?
        A: Sí, Kubernetes Permite ejecutar múltiples servicios y bases de datos en pods aislados. Puedes implementar PostgreSQL, MySQL, o cualquier otra base de datos compatible junto con MongoDB.
      • P: ¿Esta configuración es adecuada para uso en producción?
        R: Si bien la guía cubre los conceptos básicos, se recomiendan configuraciones adicionales como almacenamiento persistente, refuerzo de seguridad y copias de seguridad para entornos de producción.
      Votar:
      5 de 5
      Calificación promedio: 5
      Calificado por: 1
      1101 CT Ámsterdam Países Bajos, Herikerbergweg 292
      +31 20 262-58-98
      700 300
      ITGLOBAL.COM NL
      700 300

      También le podría interesar...

      Utilizamos cookies para hacer que su experiencia en el Serverspace mejor. Al continuar navegando en nuestro sitio web, usted acepta nuestros
      Uso de Cookies y Política de privacidad.