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:


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:

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

- 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

- 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

- 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

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

- 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

- Para iniciar MongoDB, ejecute el comando:
kubectl apply -fLa salida exitosa se ve como en la imagen a continuación:

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
mongoEn caso de que vea el mensaje de MongoDB, la conexión es exitosa:

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