Importante
Esta sección es solo para implementaciones de un solo clúster de Kubernetes. Para implementaciones multidistribuidas de clústeres de MongoDB, consulte la Visión general.
MongoDB Controllers for Kubernetes operador utiliza la API y herramientas de Kubernetes para gestionar los clústeres de MongoDB. El operador de Kubernetes funciona junto con MongoDB Cloud Manager u Ops Manager. Este tutorial demuestra cómo implementar y conectarse a su primer set de réplicas en Cloud Manager u Ops Manager desde OpenShift con Kubernetes Operator.
Requisitos previos
Este tutorial requiere:
- Un clúster en funcionamiento de Cloud Manager u Ops Manager.
Procedimiento
Clona el repositorio de MongoDB Controllers for Kubernetes Operator y selecciona la etiqueta de la versión actual.
git clone https://github.com/mongodb/mongodb-kubernetes.gitcd mongodb-kubernetesgit checkout 1.4.0Instala el operador de los controladores de MongoDB para Kubernetes
Ejecuutii el siguiente oc comando para instalar las CustomResourceDefinitions para implementaciones de MongoDB:
oc apply -f crds.yamlAgrega tu
<openshift-pull-secret>a las definicionesServiceAccounten el archivo YAML de MongoDB Controllers for Kubernetes Operator.apiVersion: v1kind: ServiceAccountmetadata: name: enterprise-operator namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> apiVersion: v1kind: ServiceAccountmetadata: name: mongodb-kubernetes-appdb namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret> apiVersion: v1kind: ServiceAccountmetadata: name: mongodb-kubernetes-database-pods namespace: mongodb imagePullSecrets: - name: <openshift-pull-secret>Invoca el siguiente comando oc para instalar el Operador de Kubernetes:
oc apply -f mongodb-kubernetes-openshift.yaml
Crea credenciales y almacénalas como un secreto.
Ejecuta el siguiente comando:
Nota
Proporcione los valores de su clave pública y privada para los siguientes parámetros. Para aprender más, consulte Crear credenciales para el Operador de Kubernetes.
kubectl -n mongodb \ create secret generic ops-manager-admin-key \ --from-literal="publicKey=<publicKey>" \ --from-literal="privateKey=<privateKey>"Invoca el siguiente comando para crear un ConfigMap.
cat <<EOF | kubectl apply -f -apiVersion: v1kind: ConfigMapmetadata: name: my-project namespace: mongodbdata: projectName: myProjectName # this is an optional parameter; when omitted, the Operator creates a project with the resource name orgId: 5b890e0feacf0b76ff3e7183 # this is a required parameter baseUrl: https://ops.example.com:8443
EOFClave | Tipo | Descripción | Ejemplo |
|---|---|---|---|
| string | Nombre del objeto de Kubernetes. Los nombres de recursos deben tener 44 caracteres o menos. Este nombre debe seguir las RFC1123 convenciones de nomenclatura, conteniendo solo caracteres alfanuméricos en minúsculas o Para obtener más información, consulte la documentación de Kubernetes sobre nombres. |
|
| string |
| |
| string | Etiqueta para tu Ops Manager proyecto. El operador de Kubernetes crea el proyecto Ops Manager si no existe. Si omites el Para utilizar un proyecto existente en una organización de Cloud Manager o Ops Manager, localiza el |
|
| string | Requerido. string hexadecimal de 24 caracteres que identifica de manera única tu Cloud Manager u Ops Manager Organización. Puedes usar el Operador de Kubernetes para implementar recursos de MongoDB con Cloud Manager y con Ops Manager versión 6.0.x o posterior. Puedes usar el Atlas Operator para implementar recursos de MongoDB en Atlas. Especifique una Organización existente:
Debes tener el rol Organization Project Creator para crear un nuevo proyecto dentro de una organización existente de Cloud Manager u Ops Manager. Si se proporciona una string vacía como |
|
| string | URL de tu aplicación Ops Manager, incluida el FQDN y el número de puerto. IMPORTANTE: Si implementas Ops Manager con el Kubernetes Operator y Ops Manager va a gestionar recursos de bases de datos MongoDB implementados fuera del clúster de Kubernetes donde está implementado, debes establecer Si usas Cloud Manager, establezca el valor de |
|
Implemente el recurso conjunto de réplicas de MongoDB.
Copie y guarde el siguiente archivo YAML:
apiVersion: mongodb.com/v1kind: MongoDBmetadata: name: demo-mongodb-cluster-1 namespace: mongodbspec: members: 3 version: 8.0.0 type: ReplicaSet security: authentication: enabled: true modes: ["SCRAM"] cloudManager: configMapRef: name: my-project credentials: organization-secret persistent: true podSpec: podTemplate: spec: containers: - name: mongodb-enterprise-database resources: limits: cpu: 2 memory: 1.5G requests: cpu: 1 memory: 1G persistence: single: storage: 10GiEjecuta el siguiente comando:
kubectl apply -f <replica-set-conf>.yaml
Crear un secreto con la contraseña del usuario de tu base de datos
Puedes elegir usar una contraseña en texto claro o una contraseña codificada en Base64. Las contraseñas en texto claro usan stringData.password y las contraseñas codificadas en Base64 usan data.password.
Nota
Proporcione sus valores para los siguientes parámetros. Para obtener más información, consulte las descripciones de parámetros.
Para una contraseña de texto sin formato, crea y guarda el siguiente archivo YAML:
apiVersion: v1kind: Secretmetadata: name: mms-user-1-password # corresponds to user.spec.passwordSecretKeyRef.nametype: OpaquestringData: password: <my-plain-text-password> # corresponds to user.spec.passwordSecretKeyRef.keyPara una contraseña codificada en Base64, crear y guardar el siguiente archivo YAML:
apiVersion: v1kind: Secretmetadata: name: mms-user-1-password # corresponds to user.spec.passwordSecretKeyRef.nametype: Opaquedata: password: <base-64-encoded-password> # corresponds to user.spec.passwordSecretKeyRef.keyCree un usuario de base de datos.
Copia y guarda el siguiente archivo Especificación de recursos de usuario de MongoDB:
apiVersion: mongodb.com/v1kind: MongoDBUsermetadata: name: mms-scram-user-1spec: passwordSecretKeyRef: name: mms-user-1-password # Match to metadata.name of the User Secret key: password username: "mms-scram-user-1" db: "admin" # mongodbResourceRef: name: "demo-mongodb-cluster-1" # Match to MongoDB resource using authentication roles: - db: "admin" name: "clusterAdmin" - db: "admin" name: "userAdminAnyDatabase" - db: "admin" name: "readWrite"Ejecuta el siguiente comando:
kubectl apply -f <database-user-conf>.yaml
Conéctese al conjunto de réplicas de MongoDB.
Realiza los siguientes pasos en la aplicación Cloud Manager:
Haz clic en Deployment en la navegación izquierda.
Haga clic en para la implementación a la que desea conectarse.
Haga clic en Connect to this instance.
Ejecuta el comando de conexión en una terminal para conectar con la implementación.