Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Guía de inicio rápido para el Operador de Kubernetes

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.

El operador de controladores de MongoDB para Kubernetes utiliza la API y las herramientas de Kubernetes para administrar los clústeres de MongoDB que se ejecutan dentro de su clúster de Kubernetes. El operador de Kubernetes funciona conjuntamente con Ops Manager. Este tutorial muestra cómo implementar Ops Manager en Kubernetes y, a continuación, cómo implementar y conectarse a su primer conjunto de réplicas de MongoDB con el operador de Kubernetes. Puede usar Kind para configurar rápidamente un clúster. Para obtener más información, consulte Kind.

Este tutorial requiere:

Si utiliza Kind con Docker Desktop, asigne al menos 8 GB de memoria y 4 CPU en la configuración de recursos de Docker Desktop. Ops Manager requiere un mínimo de 5 GB de memoria para la aplicación y recursos adicionales para la base de datos de la aplicación y el operador de Kubernetes.

1
helm repo add mongodb https://mongodb.github.io/helm-charts
2

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-namespace
3

Si aún no lo has hecho, ejecuta el siguiente comando para ejecutar todos los comandos kubectl en el namespace que creaste:

kubectl config set-context $(kubectl config current-context) --namespace=mongodb
4

Cree un secreto que contenga las credenciales iniciales del usuario administrador de Ops Manager. El operador de Kubernetes utiliza este secreto para configurar el primer usuario administrador al implementar el recurso de Ops Manager.

Ejecute el siguiente comando, reemplazando los valores de marcador de posición con sus credenciales preferidas:

kubectl create secret generic ops-manager-admin-secret \
--from-literal=Username="<admin-email>" \
--from-literal=Password="<admin-password>" \
--from-literal=FirstName="<first-name>" \
--from-literal=LastName="<last-name>"

Nota

Guarde estas credenciales de forma segura. Las necesitará para iniciar sesión en la interfaz de usuario de Ops Manager después de la implementación.

5
  1. Copie y guarde el siguiente archivo YAML ops-manager.yaml como:

    apiVersion: mongodb.com/v1
    kind: MongoDBOpsManager
    metadata:
    name: ops-manager
    namespace: mongodb
    spec:
    replicas: 1
    version: "8.0.0"
    adminCredentials: ops-manager-admin-secret
    externalConnectivity:
    type: NodePort
    configuration:
    mms.ignoreInitialUiSetup: "true"
    automation.versions.source: "mongodb"
    mms.fromEmailAddr: admin@example.com
    mms.replyToEmailAddr: admin@example.com
    mms.adminEmailAddr: admin@example.com
    mms.mail.transport: smtp
    mms.mail.hostname: localhost
    mms.mail.port: "25"
    backup:
    enabled: false
    applicationDatabase:
    topology: SingleCluster
    members: 3
    version: "8.0.0"

    Para obtener más información, consulte la especificación de recursos de Ops Manager.

  2. Ejecuta el siguiente comando:

    kubectl apply -f ops-manager.yaml
6

El operador de Kubernetes primero despliega el conjunto de réplicas de la base de datos de la aplicación y luego inicia la aplicación Ops Manager. Este proceso puede tardar varios minutos.

Ejecute el siguiente comando para realizar un seguimiento del estado del recurso:

kubectl get om -o yaml -w

Espere hasta que la salida muestre las siguientes fases:

status:
applicationDatabase:
phase: Running
opsManager:
phase: Running

Cuando ambos componentes alcancen Running, recupere la URL del Administrador de operaciones:

kubectl get om ops-manager -o jsonpath='{.status.opsManager.url}'

Anota esta URL. La necesitarás para el ConfigMap en un paso posterior.

7

Puedes usar la interfaz de usuario de Ops Manager para generar el ConfigMap y el Secret, o puedes crearlos manualmente.

Primero, redirija el puerto del servicio Ops Manager a su máquina local para que pueda acceder a la interfaz de usuario en su navegador:

kubectl port-forward svc/ops-manager-svc-ext 8080:8080

Luego, abre http://localhost:8080 en tu navegador e inicia sesión con las credenciales que creaste en el secreto de administrador.

Para usar la interfaz de usuario de Ops Manager:

  1. Haz clic en Create New API Keys o Use Existing API Keys.

  2. Complete el formulario. Para obtener más información, consulte Crear credenciales para el operador de Kubernetes.

  3. Haga clic en Generate Key and YAML.

Como alternativa, puede crear el ConfigMap y el Secret manualmente siguiendo los pasos que se indican a continuación.

8

Si generó el ConfigMap desde la interfaz de usuario de Ops Manager, copie y guarde el archivo config-map.yaml generado. De lo contrario, cree y guarde el siguiente archivo. Establezca data.baseUrl en la URL de su instancia de Ops Manager desde status.opsManager.url.

Ejemplo:

apiVersion: v1
kind: ConfigMap
metadata:
name: my-project
namespace: mongodb
data:
baseUrl: http://ops-manager-svc.mongodb.svc.cluster.local:8080
projectName: my-project
orgId: <your-org-id>

Reemplace <your-org-id> con su ID de organización de Ops Manager. Puede encontrar este valor en la URL de la interfaz de usuario de Ops Manager: http://<ops-manager-url>/v2#/org/<orgId>/projects.

Para obtener más información, consulte las descripciones de los parámetros.

9

Si generó el secreto desde la interfaz de usuario de Ops Manager, copie y guarde el secret.yaml archivo generado. De lo contrario, cree un secreto que contenga las claves API de su organización de Ops Manager.

Ejemplo:

apiVersion: v1
kind: Secret
metadata:
name: organization-secret
namespace: mongodb
stringData:
publicKey: <public_key>
privateKey: <private_key>

Para crear claves API programáticas, consulte la sección "Crear credenciales para el operador de Kubernetes".

10

Ejecuta el siguiente comando:

kubectl apply -f secret.yaml -f config-map.yaml
11
  1. 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"]
    opsManager:
    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
  2. Ejecuta el siguiente comando:

    kubectl apply -f <replica-set-conf>.yaml
12

Elige una contraseña para tu usuario de base de datos MongoDB y guárdala en un secreto. Esta contraseña puede ser cualquier valor que elijas. Deberás consultar este secreto al crear el usuario de la base de datos en el siguiente paso.

Puede almacenar la contraseña como texto plano (usando stringData) o como un valor codificado en Base64(usando data).

Para una contraseña de texto sin formato, crea y guarda 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, crear y guardar 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

Sustituya el marcador de posición por la contraseña que haya elegido. Para obtener más información, consulte la sección «Administrar usuarios de la base de datos mediante la autenticación SCRAM».

13
  1. 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"
  2. Ejecuta el siguiente comando:

    kubectl apply -f <database-user-conf>.yaml
14

Puede ver el usuario recién creado en Cloud Manager u Ops Manager:

  1. Desde la vista Deployment del proyecto, haz clic en la pestaña Security.

  2. Haz clic en la pestaña anidada MongoDB Users.

15

Realice los siguientes pasos en la aplicación Ops Manager:

  1. Haz clic en Deployment en la navegación izquierda.

  2. Haga clic en para la implementación a la que desea conectarse.

  3. Haga clic en Connect to this instance.

  4. Ejecuta el comando de conexión en una terminal para conectar con la implementación.