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

Implemente sets de réplicas en un clúster multi-Kubernetes

Utiliza este procedimiento para crear un nuevo set de réplicas en un clúster nodo de Kubernetes, dentro de una implementación de MongoDB en varios clústeres de Kubernetes.

Este procedimiento te permite configurar distintos ajustes para el recurso de set de réplicas, como anulaciones para la configuración de statefulSet. Como alternativa al uso de este procedimiento, se puede usar el inicio rápido de Multi-Kubernetes-Cluster, el cual crea una implementación de MongoDB de clúster de múltiples Kubernetes con ajustes predeterminados.

Antes de empezar:

Puedes utilizar los siguientes procedimientos en esta pestaña TLS-Encrypted Connections:

  • Implementar un recurso MongoDBMultiCluster

  • Renovar certificados TLS para un recurso de MongoDBMultiCluster

Estos procedimientos establecen conexiones cifradas con TLSentre hosts de MongoDB en un set de réplicas, y entre aplicaciones cliente e implementaciones de MongoDB.

Antes de comenzar, debe tener certificados válidos para el cifrado TLS.

1

Ejecute el comando kubectl para crear un nuevo secreto que almacene el certificado de recurso MongoDBMultiCluster:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \
--namespace=<metadata.namespace> \
create secret tls <prefix>-<metadata.name>-cert \
--cert=<resource-tls-cert> \
--key=<resource-tls-key>

Nota

Debe anteponer sus secretos con <prefix>-<metadata.name>.

Por ejemplo, si llama a su implementación my-deployment y establece el prefijo en mdb, debe nombrar el secreto TLS para las comunicaciones TLS del cliente mdb-my-deployment-cert. Además, debe nombrar el secreto TLS para la autenticación interna del clúster (si está habilitada) mdb-my-deployment-clusterfile.

2

Ejecute el comando kubectl para vincular su CA a su recurso MongoDBMultiCluster. Especifique el archivo de certificado CA al que siempre debe asignar el nombre ca-pem para el recurso MongoDBMultiCluster:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \
--namespace=<metadata.namespace> \
create configmap custom-ca -from-file=ca-pem=<your-custom-ca-file>
3

Si no lo has hecho ya, ejecuta los siguientes comandos para ejecutar todos los comandos kubectl en el clúster de operador en el espacio de nombres por defecto.

kubectl config use-context $MDB_CENTRAL_CLUSTER_FULL_NAME
kubectl config set-context $(kubectl config current-context) \
--namespace=mongodb
4
  1. Copia el archivo de muestra del set de réplicas YAML y pégalo en un nuevo archivo de texto.

  2. Cambia la configuración del archivo para que coincida con la configuración de set de réplicas deseada.

1# This example provides statefulSet overrides per cluster.
2
3apiVersion: mongodb.com/v1
4kind: MongoDBMultiCluster
5metadata:
6 name: multi-replica-set
7spec:
8 version: 8.0.0
9 type: ReplicaSet
10 duplicateServiceObjects: false
11 credentials: my-credentials
12 opsManager:
13 configMapRef:
14 name: my-project
15 clusterSpecList:
16 - clusterName: cluster1.example.com
17 members: 2
18 statefulSet:
19 spec:
20 template:
21 spec:
22 containers:
23 # Example of custom sidecar containers. Remove it before using the file in production.
24 - name: sidecar1
25 image: busybox
26 command: [ "sleep" ]
27 args: [ "infinity" ]
28 # Use the following settings to override the default storage size of the "data" Persistent Volume.
29 volumeClaimTemplates:
30 - metadata:
31 name: data
32 spec:
33 resources:
34 requests:
35 storage: 1Gi
36 - clusterName: cluster2.example.com
37 members: 1
38 statefulSet:
39 spec:
40 template:
41 spec:
42 containers:
43 # Example of custom sidecar containers. Remove it before using the file in production.
44 - name: sidecar2
45 image: busybox
46 command: [ "sleep" ]
47 args: [ "infinity" ]
48 volumeClaimTemplates:
49 - metadata:
50 name: data
51 spec:
52 resources:
53 requests:
54 storage: 1Gi
55 - clusterName: cluster3.example.com
56 members: 1
57 statefulSet:
58 spec:
59 template:
60 spec:
61 containers:
62 # Example of custom sidecar containers. Remove it before using the file in production.
63 - name: sidecar3
64 image: busybox
65 command: [ "sleep" ]
66 args: [ "infinity" ]
67 volumeClaimTemplates:
68 - metadata:
69 name: data
70 spec:
71 resources:
72 requests:
73 storage: 1Gi
74
75...
5
Clave
Tipo
Descripción
Ejemplo

string

Etiqueta para el recurso MongoDBMultiCluster.

Los nombres de recursos deben tener 44 caracteres o menos.

Consulta también metadata.name y nombres en la documentación de Kubernetes.

multi-replica-set

string

Versión de MongoDB en la que debe ejecutarse este recurso MongoDBMultiCluster.

El formato debe ser X.Y.Z para la Community Edition y X.Y.Z-ent para la edición Enterprise.

IMPORTANTE: Asegúrate de elegir una versión compatible del servidor MongoDB. Las versiones compatibles varían según la imagen base que utiliza el recurso de la base de datos MongoDB.

Para obtener más información sobre el versionado de MongoDB, consulta versionado de MongoDB en el manual de MongoDB.

8.0.0

spec
.opsManager
.configMapRef
.name

string

Name of the ConfigMap with the Ops Manager connection configuration. The spec.cloudManager.configMapRef.name setting is an alias for this setting and can be used in its place.

Este valor debe existir en el mismo espacio de nombres que el recurso que quieres crear.

IMPORTANTE: El operador de Kubernetes rastrea cualquier cambio en el ConfigMap y reconcilia el estado del recurso MongoDB.

<my-project>

spec
.clusterSpecList
.clusterName

string

Nombre del clúster en el recurso MongoDBMultiCluster.

cluster1.example.com

spec
.clusterSpecList
.members

entero

El número de nodos en este clúster.

2

spec
.clusterSpecList
.statefulSet
.spec

Colección

Opcional.

Proporciona la configuración para la anulación de StatefulSet para cada uno de los StatefulSets del clúster en una implementación de MongoDB en clústeres de Kubernetes múltiples. Si se especifica a nivel de clúster individual clusterSpecList en, anula la configuración global de StatefulSet para toda la implementación de MongoDB en clústeres de Kubernetes múltiples. Consulte la documentación de Kubernetes sobre la especificación de recursos de clústeres de Kubernetes múltiples y las aplicaciones StatefulSet v.1

Consulta el ejemplo.

spec
.clusterSpecList
.statefulSet
.spec
.volumeClaimTemplates
.spec

Colección

opcional. Si se especifica, proporciona una anulación por clúster para el tamaño de almacenamiento por defecto de las plantillas volumeClaim, para el volumen persistente que almacena los datos.

Consulta el ejemplo.

string

Nombre del secreto que creaste como Ops Manager API credenciales de autenticación para que el operador de Kubernetes pueda comunicarse con Ops Manager.

The Ops Manager Kubernetes Secret object holding the Credentials must exist on the same Namespace as the resource you want to create.

IMPORTANTE: El operador de Kubernetes rastrea cualquier cambio realizado en el Secreto y reconcilia el estado del recurso MongoDB.

<mycredentials>

string

Tipo de recurso MongoDB a crear. El único valor admitido para este campo es ReplicaSet. Consulta las Limitaciones.

ReplicaSet

6

También puedes agregar cualquier configuración opcional a la especificación objeto. Consulta Especificación de Recursos Multi-Kubernetes-clúster.

7
8

En cualquier directorio, ejecuta el siguiente comando de Kubernetes para crear tu set de réplicas:

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

Para comprobar el estado de tu recurso MongoDBMultiCluster, utiliza el siguiente comando en el clúster del operador:

kubectl get mdbmc <resource-name> -o yaml -w

Con la bandera -w (observar) activada, cuando la configuración cambia, la salida se actualiza inmediatamente hasta que la fase de estado alcanza el estado Running. Para obtener más información sobre el estado de implementación de recursos, consulta Solucionar problemas con el operador de Kubernetes.

Renueva periódicamente tus certificados TLS utilizando el siguiente procedimiento.

1

Ejecute este kubectl comando para renovar un secreto existente que almacena los certificados para el MongoDBMultiCluster recurso:

kubectl --context $MDB_CENTRAL_CLUSTER_FULL_NAME \
--namespace=<metadata.namespace> \
create secret tls <prefix>-<metadata.name>-cert \
--cert=<resource-tls-cert> \
--key=<resource-tls-key> \
--dry-run=client \
-o yaml |
kubectl apply -f -

Este procedimiento no cifra las conexiones entre los hosts de MongoDB en un set de réplicas, ni entre las aplicaciones cliente y las implementaciones de MongoDB.

1

Si no lo has hecho ya, ejecuta los siguientes comandos para ejecutar todos los comandos kubectl en el clúster de operador en el espacio de nombres por defecto.

kubectl config use-context $MDB_CENTRAL_CLUSTER_FULL_NAME
kubectl config set-context $(kubectl config current-context) \
--namespace=mongodb
2
  1. Copia el archivo de muestra del set de réplicas YAML y pégalo en un nuevo archivo de texto.

  2. Cambia la configuración del archivo para que coincida con la configuración de set de réplicas deseada.

1# This example provides statefulSet overrides per cluster.
2
3apiVersion: mongodb.com/v1
4kind: MongoDBMultiCluster
5metadata:
6 name: multi-replica-set
7spec:
8 version: 8.0.0
9 type: ReplicaSet
10 duplicateServiceObjects: false
11 credentials: my-credentials
12 opsManager:
13 configMapRef:
14 name: my-project
15 clusterSpecList:
16 - clusterName: cluster1.example.com
17 members: 2
18 statefulSet:
19 spec:
20 template:
21 spec:
22 containers:
23 # Example of custom sidecar containers. Remove it before using the file in production.
24 - name: sidecar1
25 image: busybox
26 command: [ "sleep" ]
27 args: [ "infinity" ]
28 # Use the following settings to override the default storage size of the "data" Persistent Volume.
29 volumeClaimTemplates:
30 - metadata:
31 name: data
32 spec:
33 resources:
34 requests:
35 storage: 1Gi
36 - clusterName: cluster2.example.com
37 members: 1
38 statefulSet:
39 spec:
40 template:
41 spec:
42 containers:
43 # Example of custom sidecar containers. Remove it before using the file in production.
44 - name: sidecar2
45 image: busybox
46 command: [ "sleep" ]
47 args: [ "infinity" ]
48 volumeClaimTemplates:
49 - metadata:
50 name: data
51 spec:
52 resources:
53 requests:
54 storage: 1Gi
55 - clusterName: cluster3.example.com
56 members: 1
57 statefulSet:
58 spec:
59 template:
60 spec:
61 containers:
62 # Example of custom sidecar containers. Remove it before using the file in production.
63 - name: sidecar3
64 image: busybox
65 command: [ "sleep" ]
66 args: [ "infinity" ]
67 volumeClaimTemplates:
68 - metadata:
69 name: data
70 spec:
71 resources:
72 requests:
73 storage: 1Gi
74
75...
3
Clave
Tipo
Descripción
Ejemplo

string

Etiqueta para el recurso MongoDBMultiCluster.

Los nombres de recursos deben tener 44 caracteres o menos.

Consulta también metadata.name y nombres en la documentación de Kubernetes.

multi-replica-set

string

Versión de MongoDB en la que debe ejecutarse este recurso MongoDBMultiCluster.

El formato debe ser X.Y.Z para la Community Edition y X.Y.Z-ent para la edición Enterprise.

IMPORTANTE: Asegúrate de elegir una versión compatible del servidor MongoDB. Las versiones compatibles varían según la imagen base que utiliza el recurso de la base de datos MongoDB.

Para obtener más información sobre el versionado de MongoDB, consulta versionado de MongoDB en el manual de MongoDB.

8.0.0

spec
.opsManager
.configMapRef
.name

string

Name of the ConfigMap with the Ops Manager connection configuration. The spec.cloudManager.configMapRef.name setting is an alias for this setting and can be used in its place.

Este valor debe existir en el mismo espacio de nombres que el recurso que quieres crear.

IMPORTANTE: El operador de Kubernetes rastrea cualquier cambio en el ConfigMap y reconcilia el estado del recurso MongoDB.

<my-project>

spec
.clusterSpecList
.clusterName

string

Nombre del clúster en el recurso MongoDBMultiCluster.

cluster1.example.com

spec
.clusterSpecList
.members

entero

El número de nodos en este clúster.

2

spec
.clusterSpecList
.statefulSet
.spec

Colección

Opcional.

Provides the configuration for the StatefulSet override for each of the cluster's StatefulSets in a multi-Kubernetes cluster MongoDB deployment. If specified at an individual cluster level under clusterSpecList, overrides the global configuration for the StatefulSet for the entire multi-Kubernetes cluster MongoDB deployment. See Multi-Kubernetes-Cluster Resource Specification and StatefulSet v1 apps Kubernetes documentation.

Consulta el ejemplo.

spec
.clusterSpecList
.statefulSet
.spec
.volumeClaimTemplates
.spec

Colección

opcional. Si se especifica, proporciona una anulación por clúster para el tamaño de almacenamiento por defecto de las plantillas volumeClaim, para el volumen persistente que almacena los datos.

Consulta el ejemplo.

string

Nombre del secreto que creaste como Ops Manager API credenciales de autenticación para que el operador de Kubernetes pueda comunicarse con Ops Manager.

The Ops Manager Kubernetes Secret object holding the Credentials must exist on the same Namespace as the resource you want to create.

IMPORTANTE: El operador de Kubernetes rastrea cualquier cambio realizado en el Secreto y reconcilia el estado del recurso MongoDB.

<mycredentials>

string

Tipo de recurso MongoDB a crear. El único valor admitido para este campo es ReplicaSet. Consulta las Limitaciones.

ReplicaSet

4

También puedes agregar cualquier configuración opcional a la especificación objeto. Consulta Especificación de Recursos Multi-Kubernetes-clúster.

5
6

En cualquier directorio, ejecuta el siguiente comando de Kubernetes para crear tu set de réplicas:

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

Para comprobar el estado de tu recurso MongoDBMultiCluster, utiliza el siguiente comando en el clúster del operador:

kubectl get mdbmc <resource-name> -o yaml -w

Con la bandera -w (observar) activada, cuando la configuración cambia, la salida se actualiza inmediatamente hasta que la fase de estado alcanza el estado Running. Para obtener más información sobre el estado de implementación de recursos, consulta Solucionar problemas con el operador de Kubernetes.