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 :


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 :

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

- 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

- Pour vérifier la connexion, exécutez simplement :
kubectl cluster-info
Si la sortie ressemble à l'image ci-dessous - la connexion est réussie

- 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

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

- 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

- Pour lancer MongoDB, veuillez exécuter la commande :
kubectl apply -fUne sortie réussie ressemble à l'image ci-dessous :

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
mongoSi vous voyez l'invite MongoDB, la connexion est réussie :

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