Importante
Esta sección es solo para implementaciones de un solo clúster de Kubernetes. Para implementaciones de MongoDB con varios clústeres de Kubernetes, consulte Inicio rápido de múltiples clústeres de Kubernetes.
El operador de controladores MongoDB para Kubernetes utiliza la API y las herramientas de Kubernetes para administrar los clústeres MongoDB que se ejecutan en su clúster de Kubernetes. Kubernetes Operator funciona en conjunto con MongoDB Cloud Manager u Ops Manager. Este tutorial muestra cómo implementar y conectarse a su primer conjunto de réplicas MongoDB en MongoDB Cloud Manager con Kubernetes Operator. Puede usar Configurar un clúster rápidamente. Para obtener más información, consulte Amable.
Requisitos previos
Este tutorial requiere:
Un clúster de MongoDB Cloud Manager en ejecución.
Un clúster de Kubernetes en ejecución.
Nodos de Kubernetes que se ejecutan en arquitecturas de hardware compatibles.
El MongoDB Shell instalado en su 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 el operador de controladores MongoDB para Kubernetes en el mongodb
Espacio de nombres con la opción --create-namespace. De forma predeterminada, el operador de Kubernetes usa el espacio de nombres default.
helm install kubernetes-operator mongodb/mongodb-kubernetes --namespace mongodb --create-namespace
Configurar el operador de Kubernetes
Vaya 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.
Copie y guarde el ConfigMap.
Copie y guarde 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.
Copia y guarda el secreto.
Copie y guarde 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 solo una 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
Crea un secreto con la contraseña de usuario de tu base de datos
Puede optar por usar una contraseña de texto simple o una contraseña codificada en Base64. Las contraseñas de texto simple usan stringData.password y las contraseñas codificadas en Base64usan data.password.
Nota
Indique los valores de los siguientes parámetros. Para obtener más información, consulte las descripciones de los 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.
Copie y guarde el siguiente archivo de 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 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.