Prerequisites
On this page
Procedure
To install the MongoDB Kubernetes Operator, you must:
Have a Kubernetes solution available to use, and verify hardware architecture support.
If you need a Kubernetes solution, see the Kubernetes documentation on picking the right solution. Review supported hardware architectures.
Clone the MongoDB Enterprise Kubernetes Operator repository.
git clone https://github.com/mongodb/mongodb-enterprise-kubernetes.git
Note
You can use Helm to install the Kubernetes Operator. To learn how to install Helm, see its documentation on GitHub.
Create a namespace for your Kubernetes deployment.
By default, The Kubernetes Operator uses the mongodb
namespace. To
simplify your installation, consider creating a namespace labeled
mongodb
using the following kubectl command:
kubectl create namespace mongodb
If you do not want to use the mongodb
namespace, you can label
your namespace anything you like:
kubectl create namespace <namespaceName>
Optional: Have a running Ops Manager.
If you don't deploy an Ops Manager resource with the Kubernetes Operator, you must have an Ops Manager running outside of your Kubernetes cluster. If you will deploy an Ops Manager resource in Kubernetes with the Kubernetes Operator, skip this prerequisite.
Important
Your Ops Manager installation must run an active NTP service. If the Ops Manager host's clock falls out of sync, that host can't communicate with the Kubernetes Operator.
To learn how to check your NTP service for your Ops Manager host, see the documentation for RHEL.
Required for OpenShift Installs: Create a secret that contains credentials authorized to pull images from the registry.connect.redhat.com
repository.
If you use the Kubernetes Operator to deploy MongoDB resources to multiple namespaces or with a cluster-wide scope, create the secret only in the namespace where you intend to deploy the Kubernetes Operator. The Kubernetes Operator synchronizes the secret across all watched namespaces.
If you have not already, obtain a Red Hat subscription.
Create a Registry Service Account.
Click on your Registry Service Account, then click the Docker Configuration tab.
Download the
<account-name>-auth.json
file and open it in a text editor.Copy the
registry.redhat.io
object, and paste another instance of this object into the file. Remember to add a comma after the first object. Rename the second objectregistry.connect.redhat.com
, then save the file:{ "auths": { "registry.redhat.io": { "auth": "<encoded-string>" }, "registry.connect.redhat.com": { "auth": "<encoded-string>" } } } Create an
openshift-pull-secret.yaml
file and add the contents of the modified<account-name>-auth.json
file asstringData
named.dockerconfigjson
to theopenshift-pull-secret.yaml
secret file.apiVersion: v1 kind: Secret metadata: name: openshift-pull-secret stringData: .dockerconfigjson: | { "auths": { "registry.redhat.io": { "auth": "<encoded-string>" }, "registry.connect.redhat.com": { "auth": "<encoded-string>" } } } type: kubernetes.io/dockerconfigjson The value you provide in the
metadata.name
field contains the secret name. Provide this value when asked for the<openshift-pull-secret>
.Create a secret from the
openshift-pull-secret.yaml
file in the same namespace in which you will deploy the Kubernetes Operator.oc apply -f openshift-pull-secret.yaml -n <metadata.namespace>