Actualités
FreeBSD 15, Nouvelles options de système d'exploitation sur VMware, et nouveau 1-Click Apps Sont désormais disponibles dans le panneau de contrôle !
VB
Août 23 2022
Mise à jour le 31 juillet 2025

Comment déployer MongoDB sur Kubernetes au Serverspace

Kubernetes MongoDB

Introduction

Serverspace vous permet de déployer rapidement un serveur avec MongoDB préinstallé
MongoDB est l'un des systèmes de gestion de bases de données NoSQL les plus populaires. Associé à Kubernetes orchestrateur, il devient une solution hautement évolutive et polyvalente pour la gestion des données d'application modernes dans des environnements distribués.

Exigences

Pour travailler avec MongoDB dans Kubernetes, vous aurez besoin d'un serveur exécutant n'importe quel système d'exploitation (de préférence Linux avec accès root ou privilèges sudo) pour gérer le Kubernetes cluster (voir l'étape suivante).

Kubernetes création d'instances

Avant de déployer MongoDB, vous devez avoir KubernetesPour le créer dans l'infrastructure ServerSpace, connectez-vous simplement à votre espace client, puis cliquez sur Kubernetes lier et créer une instance :

pic1

pic2

Le processus peut prendre un certain temps, veuillez patienter. Une fois terminé, vous verrez les paramètres du cluster et devrez télécharger le fichier d'informations d'identification 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

      Astuce: 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 avoir lu cet article, vous avez appris à créer un Kubernetes cluster à l'aide de la Serverspace Dans l'espace client, déployez le service MongoDB dans le cluster, créez une base de données et insérez-y des données. Cette configuration offre une base solide pour créer des applications évolutives et cloud-native grâce à une solution NoSQL flexible.

      QFP

      • Q : Ai-je besoin d'un préavis ? Kubernetes expérience pour suivre ce tutoriel ?
        R : Non, cet article est adapté aux débutants et fournit des instructions étape par étape. Cependant, des connaissances de base sur les serveurs et les opérations en ligne de commande seront utiles.
      • Q : Puis-je déployer d’autres bases de données dans le même Kubernetes grappe?
        Un: oui, Kubernetes vous permet d'exécuter plusieurs services et bases de données dans des pods isolés. Vous pouvez déployer PostgreSQL, MySQL, ou toute autre base de données prise en charge avec MongoDB.
      • Q : Cette configuration est-elle adaptée à une utilisation en production ?
        R : Bien que le guide couvre les bases, des configurations supplémentaires telles que le stockage persistant, le renforcement de la sécurité et les sauvegardes sont recommandées pour les environnements de production.
      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

      Vous pourriez aussi aimer...

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