Recuerdo que cuando escuche por primera vez el concepto de base de datos en contenedor me dio algo de inseguridad. Se me quito enseguida al ver su rendimiento pero en mas de una ocasion cuando digo que tengo las bases de datos en contenedores veo reacciones contrarias incluso hoy en día.
Cada base de datos es adecuada segun que escenario y para que, asi que no se puede decir que despelgar las bases de datos en contenedores sea bueno o malo, solo es una opcion. Desde la misma pagina oficial de mongo ofrecen codigo de despliegue de operadores mongogb para kubernetes que nos facilita mucho el trabajo si queremos desplegar mongodb dentro de nuestro cluster de kubernetes.
¿Pero que es un operador de kubernetes? Basicamente es algo que hace trabajo por ti.
En el caso de mongo Operators Manager Resource
https://docs.opsmanager.mongodb.com/current/application/
¿Que gano si lo despliego?
-Automation
-Monitoring
-Backup
-Server Pool
Pero esto ya lo podia hacer yo. (con otras herramientas y atutomatismos que se tienen que configurar y desplegar) ¿Vale la pena?
Es en este punto donde tienes que probar para ver si optas por desplegar el operador o sigues con tu standarizacion propia.
Al lío
Habilitar ntp
yum install ntp -y systemctl start ntpd systemctl status ntpd systemctl enable ntpd ansible nodes -a "yum install -y ntp" ansible nodes -a "systemctl start ntpd" ansible nodes -a "systemctl enable ntpd"
Instalar Operador
Primero descargamos el codigo de despliegue del repo de mongodb
git clone https://github.com/mongodb/mongodb-enterprise-kubernetes.git cd mongodb-enterprise-kubernetes
Desplegamos los customresourcedefinition y un operador que tendra los permisos necesarios para crear recursos dentro del cluster.
kubectl create namespace mongodb kubectl apply -f mongodb-enterprise.yaml kubectl -n mongodb get serviceaccount kubectl apply -f crds.yaml
Instalar Operators Manager
Creamos un secreto para el login.
kubectl create secret generic ops-manager-admin-secret --from-literal=Username="adriandepalma@hotmail.es" --from-literal=Password="Passw0rd." --from-literal=FirstName="Adrian" --from-literal=LastName="De Palma" -n mongodb
vi ops-manager-mongo.yaml apiVersion: mongodb.com/v1 kind: MongoDBOpsManager metadata: name: op-manager-mongo namespace: mongodb spec: replicas: 1 version: "4.2.0" adminCredentials: ops-manager-admin-secret backup: enabled: true opLogStores: - name: op-log-name mongodbResourceRef: name: op-log-resource-name externalConnectivity: type: LoadBalancer applicationDatabase: members: 3 version: "4.0.7" persistent: true kubectl -n mongodb apply -f ops-manager-mongo.yaml
Despues de esto se nos habra levantado un servicio con ip externa nos autenticamos con el secreto que hemos definido antes y nos pediria que configuremos un smtp y la config default del backup.
Con esto ya tenemos una interfaz desde donde adminsitrar nuestras bases de datos mongo.
PD: El operator manager es por namspace.
0 comentarios