Importante
Esta sección es solo para implementaciones de un solo clúster de Kubernetes. Para implementaciones de MongoDB en múltiples clústeres de Kubernetes, consulte Inicio rápido de múltiples clústeres de Kubernetes.
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 trabaja 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 Kubernetes operador. Puedes usar Kind para configurar rápidamente un clúster. Para obtener más información, consulte 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 que se ejecutan 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-charts
Instala 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 mongodb
namespace con la opción opcional --create-namespace. De forma predeterminada, Kubernetes Operator utiliza el namespace default.
helm install kubernetes-operator mongodb/mongodb-kubernetes --namespace mongodb --create-namespace
Configura el operador de Kubernetes
Ve a la Página de configuración de Kubernetes en la Interfaz de usuario de Cloud Manager.
Haga clic 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: v1 kind: ConfigMap metadata: name: my-project namespace: mongodb data: baseUrl: https://cloud.mongodb.com projectName: my-project # this is an optional parameter orgId: 5ecd252f8c1a75033c74106c # this is a required parameter
Para 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: v1 kind: Secret metadata: name: organization-secret namespace: mongodb stringData: publicKey: <public_key> privateKey: <private_key>
Por motivos de seguridad, MongoDB Cloud Manager muestra este archivo una sola vez.
Implementar el recurso del conjunto de réplicas de MongoDB.
Copie y guarde el siguiente archivo YAML:
apiVersion: mongodb.com/v1 kind: MongoDB metadata: name: demo-mongodb-cluster-1 namespace: mongodb spec: 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: 10Gi Ejecuta 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 obtener una contraseña de texto sin formato, cree y guarde el siguiente archivo YAML:
apiVersion: v1 kind: Secret metadata: name: mms-user-1-password # corresponds to user.spec.passwordSecretKeyRef.name type: Opaque stringData: password: <my-plain-text-password> # corresponds to user.spec.passwordSecretKeyRef.key
Para una contraseña codificada en Base64, cree y guarde el siguiente archivo YAML:
apiVersion: v1 kind: Secret metadata: name: mms-user-1-password # corresponds to user.spec.passwordSecretKeyRef.name type: Opaque data: password: <base-64-encoded-password> # corresponds to user.spec.passwordSecretKeyRef.key
Cree un usuario de base de datos.
Copia y guarda el siguiente archivo Especificación de recursos de usuario de MongoDB:
apiVersion: mongodb.com/v1 kind: MongoDBUser metadata: name: mms-scram-user-1 spec: 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éctate al set de réplicas de MongoDB.
Realice 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.