Important
Kubernetes Operator deploys MongoDB Enterprise, Ops Manager, and MongoDB Community to Kubernetes. Due to the breadth of configuration options available for MongoDB Enterprise and Ops Manager, this guide focuses on these deployment options.
To deploy MongoDB Community in Kubernetes, see the documentation on GitHub.
Enterprise MongoDB deployments consist of two distinct resource types. They are the database itself and an external database management resource, which is responsible for backing up data, automation (deployment, configuration, upgrades), real-time monitoring, and more. This external resource can either be Ops Manager (a self-managed resource) or Cloud Manager (a managed equivalent).
Community MongoDB deployments consist of the database resource only, and do not include an external management resource. This guide focuses on the Enterprise MongoDB deployment. To learn more about Community MongoDB deployments, see the documentation on GitHub.
Kubernetes Operator allows you to create these resources and administer all aspects of your deployments in a variety of configurations across one or more Kubernetes clusters according to your specific needs.
Kubernetes Operator is a Kubernetes Controller, which works by effectively extending the native Kubernetes API to include these afore-mentioned MongoDB elements as custom resources, so that they can be defined and deployed with YAML manifests in the same way that you deploy any other resources to Kubernetes.
While the MongoDB and Ops Manager custom resources can be deployed as standalone pods,
the recommended deployment topology involves deploying the database and
Ops Manager as StatefulSets, as illustrated in the diagram above. Moreover,
Kubernetes Operator requires the availability of a storageClass in your Kubernetes cluster,
available by default in managed clusters, in order to create the
PersistentVolumes responsible for storing and backing up data.
To learn more about the specific system requirements and prerequisites to deploying MongoDB in Kubernetes with Kubernetes Operator, see the Prerequisites page.
The MongoDB Controllers for Kubernetes Operator is an operator that replaces the previous MongoDB Enterprise Kubernetes Operator and MongoDB Community Operator. For more information about the first version of Kubernetes Operator, see the release notes.