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

Diagrama de arquitectura multiclúster: Ops Manager y la base de datos de la aplicación

El siguiente diagrama muestra la Aplicación de Ops Manager, la Base de Datos de la Aplicación, el Daemon de Copias de Seguridad y los correspondientes Volúmenes Persistentes implementados en varios clústeres de Kubernetes.

Diagrama que muestra la implementación a alto nivel del Ops Manager, su aplicación de Interfaz de Usuario, la base de datos de la aplicación y el daemon de copias de seguridad en múltiples clústeres de Kubernetes. El diagrama también muestra las conexiones de red entre los componentes.

En este diagrama:

  1. El Member Cluster 0 también es un "clúster de operadores" porque se instala el Operador de Kubernetes en él. También es un "clúster nodo" y puede hostear cualquier recurso personalizado de varios clústeres.

  2. The Member Cluster 0 stores the kubeconfig files, which describe the Kubernetes configuration for member clusters, users, and contexts. When you configure the Kubernetes Operator for multi-cluster deployments using the kubectl mongodb plugin, it creates the following resource:

    • El mongodb-enterprise-operator-multi-cluster-kubeconfig secreto, que contiene las credenciales de todos los clústeres de Kubernetes que el Operador de Kubernetes gestionará. Si planeas utilizar el clúster operador como un clúster nodo, este secreto puede guardar las credenciales del mismo clúster donde se instala el Kubernetes Operator.

    Cuando el Operador de Kubernetes se ejecuta en el modo multicluster, almacena los recursos que necesita, tales como ConfigMaps y secretos de los clústeres que va a gestionar. Estos recursos pertenecen al mismo namespace que el operador de Kubernetes. El operador de Kubernetes utiliza estos recursos para implementar la aplicación Ops Manager y la base de datos de la aplicación en múltiples clústeres de Kubernetes.

  3. El operador de Kubernetes también crea y mantiene algunos ConfigMaps adicionales de estado de implementación multiclúster para cada implementación de la aplicación y la base de datos de la aplicación de Ops Manager que administra. El Member Cluster 0 almacena esta configuración, que incluye los siguientes ConfigMaps:

    • El ConfigMap <om_resource_name>-cluster-mapping contiene el mapeo de nombres de clústeres nodos listados en el spec.clusterSpecList a índices de clústeres, referenciados en esta documentación como cluster_index, como Cluster 0, o Cluster 1. El operador de Kubernetes asigna estos índices a cada nombre de clúster.

    • El ConfigMap <om_resource_name>-db-cluster-mapping contiene el mapeo de los nombres de nodos listados en el spec.applicationDatabase.clusterSpecList a los índices de clúster.

    • El ConfigMap <om_resource_name>-db-member-spec contiene el número de réplicas de bases de datos de la aplicación configuradas para cada clúster miembro. Tener esta información permite al operador de Kubernetes escalar correctamente o reconfigurar el set de réplicas como parte de la recuperación ante desastres, por ejemplo, tras perder todo el clúster nodo.

  4. La configuración del recurso MongoDBOpsManager es un archivo que usted crea y que describe una implementación de Ops Manager multinúcleo. El operador de Kubernetes utiliza este archivo para implementar los componentes de Ops Manager.

    El siguiente ejemplo muestra la configuración que lleva a que el operador de Kubernetes implemente los componentes de Ops Manager descritos en este diagrama. Este ejemplo omite algunas configuraciones que no son relevantes para este diagrama, como la configuración de TLS.

    1apiVersion: mongodb.com/v1
    2kind: MongoDBOpsManager
    3metadata:
    4 name: om
    5 namespace: om-ns
    6spec:
    7 replicas: 1 # You can set this value and use it as a global or default
    8 # setting for all clusters. The spec.clusterSpecList.members
    9 # setting overrides this setting.
    10 topology: MultiCluster
    11 version: 8.0.0
    12 adminCredentials: om-admin-secret
    13 clusterSpecList:
    14 - clusterName: "Member Cluster 1" # Ops Manager settings for "Member Cluster 1"
    15 members: 2
    16 backup: # Backup settings for "Member Cluster 1"
    17 members: 2 # Overrides spec.backup.members
    18 - clusterName: "Member Cluster 2" # Ops Manager settings for "Member Cluster 2"
    19 members: 1
    20 backup: # Backup settings for "Member Cluster 2"
    21 members: 2 # Overrides spec.backup.members
    22 applicationDatabase: # Global {+appdb+} settings
    23 topology: MultiCluster
    24 version: 8.0.0
    25 members: 3 # In multi-cluster mode, the Operator ignores this field.
    26 # The Operator sets the number of members for the Application
    27 # Database in spec.applicationDatabase.clusterSpecList.members.
    28 clusterSpecList:
    29 - clusterName: "Member Cluster 1"
    30 members: 3
    31 - clusterName: "Member Cluster 2"
    32 members: 2
    33 backup: # Global settings for the Backup Daemon
    34 enabled: true
    35 members: 1 # Set this value and use it as a global or default setting.
    36 # To override this value, set the value for
    37 # spec.clusterSpecList.backup.members.
    38 # The Backup Daemon's configuration for each cluster isn't
    39 # stored here. Use the Ops Manager's spec.clusterSpecList.backup to
    40 # specify the Backup Daemon configuration for each member cluster.
  5. El operador de Kubernetes se conecta a las instancias del Ops Manager haciendo referencia, ya sea a:

    • El FQDN por defecto del servicio que crea para el recurso de MongoDB Ops Manager, <om_resource_name>-svc.<namespace>.svc.cluster.local, o

    • La URL que especifique en spec.opsManagerURL. En algunas implementaciones, como cuando el clúster donde instaló el operador de Kubernetes no está conectado a la malla de servicios, el FQDN de servicio por defecto podría no ser accesible. En este caso, el operador de Kubernetes informa el estado del recurso MongoDBOpsManager como Failed, lo que indica un error de conexión. Para tener en cuenta estos casos, proporcione la URL a MongoDB Ops Manager en el spec.opsManagerURL. Esta URL podría ser un nombre de host de una instancia de MongoDB Ops Manager expuesta externamente. Para obtener más información, consulte Descripción general de redes.

  6. Two member clusters host the Ops Manager Application. In each cluster, the Kubernetes Operator deploys a StatefulSet named <om_resource_name>-<cluster_index>.

    • El StatefulSet implementa dos instancias de la aplicación Ops Manager en Member Cluster 1 y una instancia en Member Cluster 2.

    • Se define el número de instancias en spec.clusterSpecList.members. Puedes establecer el número de instancias en cero para que este clúster no implemente ninguna instancia de Ops Manager aplicación. Esto es útil, si, por ejemplo, deseas utilizar este clúster solo para alojar instancias de daemon de copias de seguridad.

      Si se remueve un clúster de spec.clusterSpecList, esto equivale a especificar cero nodos en spec.clusterSpecList.members y spec.clusterSpecList[*].backup.members.

    • For each StatefulSet in each cluster, the Kubernetes Operator configures a service of type ClusterIP, named <om_resource_name>-svc, that contains all Pods on the cluster's endpoints list. This service's FQDN, <om_resource_name>-svc.<namespace>.svc.cluster.local, is a default hostname that the Kubernetes Operator uses to access the deployed endpoint for the Ops Manager Application.

    • Si se especifica spec.externalConnectivity, el operador de Kubernetes también crea un servicio externo de Kubernetes de tipo LoadBalancer, denominado <om_resource_name>-svc-ext, para cada clúster. En cada clúster, puedes especificar su propia configuración para este servicio externo usando spec.clusterSpecList.externalConnectivity. Por ejemplo, puedes cambiar el tipo del servicio o definir anotaciones.

  7. base de datos de la aplicación. El operador de Kubernetes implementa la base de datos de la aplicación en dos clústeres.

    • The Member Cluster 1 contains three mongod processes for the Application Database, and the Member Cluster 2 contains two mongod processes..

    • You define the Application Database configuration using the spec.applicationDatabase settings. On each member cluster, the Kubernetes Operator creates a StatefulSet named <om_resource_name>-db-<cluster_index> with the number of member clusters defined in spec.applicationDatabase.clusterSpecList.members. In multi-cluster mode, the Kubernetes Operator ignores values that you set for the spec.applicationDatabase.members field. The Kubernetes Operator configures one replica set formed from mongod processes deployed across all member clusters.

    • Para cada Pod en <statefulset_name>-<pod_index> que aloja un proceso de MongoDB <om_resource_name>-db-<cluster_index>-<pod_index> llamado, el operador de Kubernetes crea un ClusterIPservicio de tipo de Kubernetes para acceder a los mongod procesos individuales mediante su FQDN,.<om_resource_name>-db-<cluster_index>-<pod_index>-svc Cada proceso mongod en el set de réplicas debe ser direccionable de manera única.

      Los procesos de la configuración del set de réplicas deben tener sus nombres de host de proceso configurados en el FQDN de ese servicio Pod: <om_resource_name>-db-<cluster_index>-<pod_index>-svc.<namespace>.svc.cluster.local.

    • Cada pod tiene su volumen persistente adjunto a través de un Reclamo de Volumen Persistente que crea el operador de Kubernetes.

    • To form a replica set from all mongod processes, each process must connect to each other process for replication purposes. To achieve this, include all member clusters on which you deploy the Application Database into the same service mesh configuration.

      La malla de servicios gestionar las queries DNS entre clústeres y enruta el tráfico en consecuencia. La malla de servicios ayuda a resolver el FQDN de cada servicio de Pod <om_resource_name>-db-<cluster_index>-<pod-index>-svc.<namespace>.svc.cluster.local en todos los clústeres y permite la conectividad en el puerto expuesto mongod (27017 por defecto).

      For example, when a mongod process running in the om-db-1-0 Pod in Member Cluster 1 connects to a mongod running in the om-db-2-1 Pod in Member Cluster 2, the first mongod process uses its hostname from the Automation Configuration, om-db-2-1-svc.om-ns.svc.cluster.local:27017, and the service mesh routes this request to Member Cluster 2 to the om-db-2-1-svc service. Without the service mesh, the Kubernetes Member Cluster 1 has no information about the om-db-2-1-svc service deployed in the Member Cluster 2 and the DNS resolution of om-db-2-1-svc.om-ns.svc.cluster.local would fail.

    • Cuando la base de datos de la aplicación y las instancias de la aplicación de Ops Manager están en un estado Running, el operador de Kubernetes añade un contenedor de supervisión adicional a los StatefulSets de la base de datos de la aplicación. Esto da como resultado un reinicio en secuencia de todos los pods de la base de datos de la aplicación en todos los clústeres. El operador de Kubernetes actualiza los StatefulSets en todos los clústeres de manera secuencial, para que durante el proceso de reinicio en secuencia, en cada clúster, solo un nodo del set de réplicas quede temporalmente no disponible.

    • El agente de supervisión se conecta a las instancias de la aplicación Ops Manager mediante el FQDN del servicio Ops Manager, <om_resource_name>-svc.<namespace>.svc.cluster.local, o el valor en spec.opsManagerURL si lo especifica.

      La Aplicación Ops Manager y el daemon de copias de seguridad siempre utilizan la cadena de conexión a la Base de Datos de la Aplicación que contiene todos los miembros del conjunto de réplicas. La cadena de conexión siempre se construye usando los FQDN por servicio por pod.

  8. El Operador de Kubernetes implementa los StatefulSets del daemon de copias de seguridad si se configura el spec.backup.enabled como true.

    • En cada clúster miembro listado en el spec.clusterSpecList, el Kubernetes operador crea un daemon de copias de seguridad StatefulSet, llamado <om_resource_name>-backup-daemon-<cluster_index>, con el número de instancias de daemon de copias de seguridad establecido en spec.backup.members.

      De manera alternativa, puedes configurar el número de instancias de daemon de copias de seguridad para cada clúster en spec.clusterSpecList[*].backup.members.

    • Las instancias del daemon de copias de seguridad solo se conectan al set de réplicas de la base de datos de la aplicación utilizando la misma cadena de conexión que las instancias de aplicaciones de Ops Manager.

Además, en este diagrama, puedes observar el service mesh y las conexiones de red entre los componentes:

  • Las líneas de puntos que rodean el diagrama muestran la malla de servicios única que incluye la configuración de red para todos los clústeres.

  • Las líneas de puntos que rodean la aplicación Ops Manager a través de los clústeres de nodos indican que estas instancias son sin estado y el tráfico puede distribuirse por igual a todas las instancias, por ejemplo, utilizando un balanceador de carga round-robin.

  • Las líneas de puntos que rodean la base de datos de la aplicación a través de los clústeres de nodos indican que estas instancias se comunican entre sí y forman un único set de réplicas de MongoDB.

Califique esta página