noticias
Serverspace Tecnologías en los Emiratos Árabes Unidos: lanzamiento de Falconcloud
VB
23 de agosto de 2022
Actualizado junio 7, 2023

MongoDB en Kubernetes

Kubernetes MongoDB

Introducción

En Serverspace usted puede crear un servidor con la aplicación ya instalada "MongoDB".
MongoDB es una de las soluciones de gestión de bases de datos NoSQL más populares. en combinaciónnation con Kubernetes orquestador podría ser una solución multipropósito fácil de escalar.

Requisitos

Para trabajar con MongoDB en Kubernetes necesita un servidor bajo cualquier sistema operativo (Linux con acceso raíz o membresía sudo preferida) para administrar y Kubernetes clúster (ver el siguiente paso).

Kubernetes creación de instancias

Antes de implementar MongoDB, debe tener Kubernetes. Para crearlo en ServerSpace infraestructura, simplemente inicie sesión en su cliárea ent, entonces click a Kubernetes vincular y crear una instancia:

pic1

pic2

El proceso puede tomar un tiempo, tenga paciencia. Cuando termine, verá el clúster parameters y debe 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

      Consejo: 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 sabías cómo crear Kubernetes vía ServerSpace client, implemente MongoDB en él, cree una nueva base de datos e inserte nuevos datos en esta base.

      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
      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.