nouvelles
Serverspace a ajouté un nouveau Rocky Linux OS
VB
23 août 2022
Mise à jour en juin 7, 2023

MongoDB sur Kubernetes

Kubernetes MongoDB

Introduction

Dans le Serverspace vous pouvez créer un serveur avec l'application déjà installée "MongoDB".
MongoDB est l'une des solutions de gestion de base de données NoSQL les plus populaires. En combinations avec Kubernetes Orchestrator, il pourrait s'agir d'une solution polyvalente facile à mettre à l'échelle.

Exigences

Pour travailler avec MongoDB dans Kubernetes vous avez besoin d'un serveur sous n'importe quel système d'exploitation (Linux avec accès root ou sudo de préférence) pour gérer et Kubernetes cluster (voir étape suivante).

Kubernetes création d'instances

Avant de déployer MongoDB, vous devez avoir Kubernetes. Pour le créer en ServerSpace infrastructure, connectez-vous simplement à votre clizone ent, puis click à Kubernetes lier et créer une instance :

pic1

pic2

Le processus peut prendre un certain temps, veuillez être patient. Une fois terminé, vous verrez le cluster parameters et devrait télécharger le fichier d'accréditation d'accès :

pic3

Configuration de l'instance

Pour installer le service de base de données sur votre Kubernetes cluster s'il vous plaît suivez:

  • Connectez-vous à votre serveur de gestion en tant qu'utilisateur privilégié et installez les outils nécessaires :
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

  • Créez un fichier qui stocke les données d'accès au cluster et définissez-le comme variable système :
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

  • Pour vérifier la connexion, exécutez simplement :
kubectl cluster-info

Si la sortie ressemble à l'image ci-dessous - la connexion est réussie

pic6

    • MongoDB a besoin de stockage pour enregistrer ses données. Le processus de création de stockage est décrit dans des fichiers de configuration spéciaux. Vous pouvez le personnaliser selon vos besoins :
    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

      L'étape suivante consiste à créer un fichier d'informations d'identification, qui stocke l'accès à 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

      Conseil : Pour encoder et décoder les données, vous pouvez utiliser des commandes simples :

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

      pic10

      • Créez ensuite un fichier de déploiement d'instance :

        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

      • Pour lancer MongoDB, veuillez exécuter la commande :
      kubectl apply -f

      Une sortie réussie ressemble à l'image ci-dessous :

      pic12

      Vérification de la connexion

      • Maintenant que les instances sont déployées, vous devez vérifier la connexion. Exécutez simplement :
      kubectl exec deployment/client -it -- /bin/bash
      mongo

      Si vous voyez l'invite MongoDB, la connexion est réussie :

      pic14

       

      • Pour créer une nouvelle base de données, il suffit de "basculer" vers la nouvelle base de données. REMARQUE : Les données ne seront pas enregistrées tant que vous n'aurez pas ajouté quelque chose dans la base de données :
      use NEW_DATABASE_NAME
      db.createCollection("newdata") # example to add data
      show dbs # check is database exist

      pic15

      Conclusion

      Après la lecture de cet article, vous avez su créer Kubernetes via ServerSpace client, déployez-y MongoDB, créez une nouvelle base de données et insérez de nouvelles données dans cette base.

      Voter:
      5 sur 5
      Note moyenne : 5
      Noté par : 1
      1101 CT Amsterdam Pays-Bas, Herikerbergweg 292
      +31 20 262-58-98
      700 300
      ITGLOBAL.COM NL
      700 300
      Nous utilisons des cookies pour rendre votre expérience sur le Serverspace meilleur. En poursuivant votre navigation sur notre site, vous acceptez nos
      Utilisation des cookies et Politique de confidentialité.