The MongoDB operator is a custom CRD-based operator inside Kubernetes to create, manage, and auto-heal MongoDB setup. It helps in providing different types of MongoDB setup on Kubernetes like- standalone, replicated, and sharded. There are quite amazing features we have introduced inside the operator and some are in-pipeline on which deployment is going on. Some of the MongoDB operator features are:-
- Standalone and replicated cluster setup
- Failover and recovery of MongoDB nodes
- Inbuilt monitoring support for Prometheus using MongoDB Exporter.
- Different Kubernetes-related best practices like:- Affinity, Pod Disruption Budget, Resource management, etc, are also part of it.
- Insightful and detailed monitoring dashboards for Grafana.
- Custom MongoDB configuration support.
[Good Read: Migration Of MS SQL From Azure VM To Amazon RDS ]
Other than this, there are a lot of features are in the backlog on which active development is happening. For example:-
- Backup and Restore support
- TLS encryption and decryption
- DB management support
- User management support
- Roles management support
MongoDB Operator architecture looks like this:-
For more information about MongoDB Operator, please check out the documentation page of it.
https://ot-mongodb-operator.netlify.app/
https://github.com/OT-CONTAINER-KIT/mongodb-operator
Installation and Configuration of MongoDB Operator
MongoDB Operator requires a Kubernetes cluster of version >=1.16.0. If you have just started with the CRD and Operators, it’s highly recommended to use the latest version of Kubernetes.
Setup of MongoDB operator can be easily done by using simple helm and kubectl commands.
First, add the helm repository to your system.
# Add the helm chart
$ helm repo add ot-helm \
https://ot-container-kit.github.io/helm-charts/
...
"ot-helm" has been added to your repositories
Once the helm repository is configured, we can simply deploy the operator using the helm install command.
# Deploy the MongoDB Operator
$ helm install mongodb-operator \
ot-helm/mongodb-operator --namespace ot-operators
...
Release "mongodb-operator" does not exist. Installing it now.
NAME: mongodb-operator
LAST DEPLOYED: Sun Jan 9 23:05:13 2022
NAMESPACE: ot-operators
STATUS: deployed
REVISION: 1
After the operator deployment is successful, we can verify it using the kubectl command line.
# List the pod and status of mongodb-operator
$ kubectl get pods -n ot-operators -l name=mongodb-operator
...
NAME READY STATUS RESTARTS AGE
mongodb-operator-fc88b45b5-8rmtj 1/1 Running 0 21d
MongoDB Cluster setup on Kubernetes
MongoDB cluster can be easily set up on Kubernetes cluster by providing a simple manifest file like this:-
---
apiVersion: opstreelabs.in/v1alpha1
kind: MongoDBCluster
metadata:
name: mongodb
spec:
clusterSize: 3
kubernetesConfig:
image: quay.io/opstree/mongo:v5.0
imagePullPolicy: IfNotPresent
securityContext:
fsGroup: 1001
storage:
accessModes: ["ReadWriteOnce"]
storageSize: 1Gi
storageClass: csi-cephfs-sc
mongoDBSecurity:
mongoDBAdminUser: admin
secretRef:
name: mongodb-secret
key: password
mongoDBMonitoring:
enableExporter: true
image: bitnami/mongodb-exporter:0.11.2-debian-10-r382
imagePullPolicy: IfNotPresent
You can check more info about: MongoDB Setup on Kubernetes using MongoDB Operator.
Comments
Post a Comment