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.
Los Controladores MongoDB para el Operador Kubernetes utilizan la API de Kubernetes y herramientas para gestionar clústeres de MongoDB que se ejecutan dentro de tu clúster de Kubernetes. 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 de MongoDB en MongoDB Cloud Manager con el Operador de Kubernetes. Puede usar Kind para configurar rápidamente un clúster. Para aprender más, consulta Kind.
Requisitos previos
Este tutorial requiere:
Un clúster activo de MongoDB Cloud Manager.
Un clúster de Kubernetes en ejecución.
Nodos de Kubernetes ejecutándose en arquitecturas de hardware compatibles.
El Shell de MongoDB instalado en tu máquina local.
Procedimiento
Agrega el repositorio Helm Charts de MongoDB para Kubernetes a Helm.
helm repo add mongodb https://mongodb.github.io/helm-chartsInstala el operador de los controladores de MongoDB para Kubernetes
Para instalar el operador de Kubernetes con Helm, consulte las instrucciones en el repositorio.
Ejemplo
El siguiente comando instala los Controladores de MongoDB para el Operador de Kubernetes en el namespace mongodb con la opción opcional --create-namespace. Por defecto, el Operador de Kubernetes utiliza el namespace default.
helm install kubernetes-operator mongodb/mongodb-kubernetes --namespace mongodb --create-namespaceConfigura el operador de Kubernetes
Haz clic en Create New API Keys o Use Existing API Keys.
Completa el formulario. Para obtener más información, consulta Acceso programático a Cloud Manager.
Haga clic en Generate Key and YAML.
Haz una copia y guarda el ConfigMap.
Copia y guarda el archivo config-map.yaml generado.
Ejemplo:
apiVersion: v1kind: ConfigMapmetadata: name: my-project namespace: mongodbdata: baseUrl: https://cloud.mongodb.com
projectName: my-project # this is an optional parameter orgId: 5ecd252f8c1a75033c74106c # this is a required parameterPara obtener más información, consulte las descripciones de los parámetros.
Copiar y guardar el secreto.
Copia y guarda el archivo secret.yaml generado.
Ejemplo:
apiVersion: v1kind: Secretmetadata: name: organization-secret namespace: mongodbstringData: publicKey: <public_key> privateKey: <private_key>Por motivos de seguridad, MongoDB Cloud Manager muestra este archivo una sola vez.
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.