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.

Aumentar el almacenamiento para volúmenes persistentes

The Ops Manager, MongoDB Database, AppDB and daemon de copias de seguridad custom recursos that comprise a standard Kubernetes Operator implementación are each implementan as Kubernetes statefulSets. El Operador de Kubernetes permite aumentar el almacenamiento asociado con estos recursos específicos al aumentar la capacidad de sus respectivos Kubernetes persistentVolumeClaims cuando la infraestructura subyacente de Kubernetes storageClass soporta la expansión de Kubernetes persistentVolume.

En función del tipo específico de recurso, puede aumentar el almacenamiento de una de dos maneras. Puedes aumentar manualmente el almacenamiento o aprovechar la funcionalidad de expansión fácil de almacenamiento del Operador de Kubernetes. La siguiente tabla ilustra cuál de estos dos procedimientos es compatible para un tipo de recurso personalizado determinado.

Tipo personalizado de recurso
Expansión manual de almacenamiento
Fácil expansión del almacenamiento

AppDB

Daemon de copias de seguridad

Base de datos MongoDB

MongoDB Multi-clúster

Gerente de Operaciones

El almacenamiento del índice de búsqueda de MongoDB Search no está cubierto por estos procedimientos. Para aprender a aumentarlo, consulte Ampliar el almacenamiento del índice de búsqueda de MongoDB Search.

Asegúrate de que tanto el StorageClass como el proveedor del plugin de volúmenes que utiliza el Volúmenes persistentes admiten el cambio de tamaño:

kubectl patch storageclass/<my-storageclass> --type='json' \ -p='[{"op": "add", "path": "/allowVolumeExpansion", "value": true }]'

Si no tienes un storageClass que admita el cambio de tamaño, pídele al administrador de Kubernetes que te ayude.

Nota

El mecanismo de expansión fácil requiere el RBAC por defecto incluido con el operador de Kubernetes. Específicamente, requiere get, list, watch, patch y update permisos para persistantVolumeClaims. Si ha personalizado alguno de los recursos de RBAC del operador de Kubernetes, es posible que deba ajustar los permisos para permitir que el operador de Kubernetes amplíe los recursos de almacenamiento en su clúster de Kubernetes.

Este proceso resulta en un reinicio en secuencia del recurso personalizado MongoDB en tu clúster Kubernetes.

1

Utilice un recurso de base de datos existente o cree uno nuevo con almacenamiento persistente. Espere hasta que el volumen persistente entre en el estado Running.

Ejemplo

Un recurso de base de datos con almacenamiento persistente incluiría:

apiVersion: mongodb.com/v1kind: MongoDBmetadata: name: <my-replica-set>spec: members: 3 version: "8.0.0" project: my-project credentials: my-credentials type: ReplicaSet podSpec: persistence: single: storage: "1Gi"
2
  1. Inicie mongo en el clúster de Kubernetes.

    $kubectl exec -it <my-replica-set>-0 \ /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-8.0.0/bin/mongo
  2. Inserte datos en la base de datos test.

    <my-replica-set>:PRIMARY> use test switched to db test <my-replica-set>:PRIMARY> db.tmp.insertOne({"foo":"bar"}) { "acknowledged" : true, "insertedId" : ObjectId("61128cb4a783c3c57ae5142d")}
3

Importante

Solo puedes aumentar el tamaño del disco para los recursos de almacenamiento existentes, no disminuirlo. La disminución del tamaño de almacenamiento causa un error en la fase de conciliación.

  1. Actualiza el tamaño del disco. Abre tu editor de texto preferido y realiza cambios similares a este ejemplo:

    Ejemplo

    Para actualizar el tamaño de disco del set de réplicas a 2 GB, cambie el valor storage en la especificación del recurso de base de datos:

    apiVersion: mongodb.com/v1kind: MongoDBmetadata: name: <my-replica-set>spec: members: 3 version: "8.0.0" project: my-project credentials: my-credentials type: ReplicaSet podSpec: persistence: single: storage: "2Gi"
  2. Actualice el recurso personalizado de MongoDB con el nuevo tamaño de volumen.

    kubectl apply -f my-updated-replica-set-vol.yaml
  3. Espera hasta que este StatefulSet alcance el estado Running.

4

Si reutilizas Volúmenes Persistentes, puedes encontrar los datos que insertaste en el Paso 2 en las bases de datos almacenadas en Volúmenes Persistentes:

$ kubectl describe mongodb/<my-replica-set> -n mongodb

La siguiente salida indica que tu solicitud de cambio de tamaño de PVC está siendo procesada.

status: clusterStatusList: {} lastTransition: "2024-08-21T11:03:52+02:00" message: StatefulSet not ready observedGeneration: 2 phase: Pending pvc: - phase: PVC Resize - STS has been orphaned statefulsetName: multi-replica-set-pvc-resize-0 resourcesNotReady: - kind: StatefulSet message: 'Not all the Pods are ready (wanted: 2, updated: 1, ready: 1, current:2)' name: multi-replica-set-pvc-resize-0 version: ""
5

Si reutilizas Volúmenes Persistentes, puedes encontrar los datos que insertaste en el Paso 2 en las bases de datos almacenadas en Volúmenes Persistentes:

$ kubectl exec -it <my-replica-set>-1 \ /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-8.0.0/bin/mongo
<my-replica-set>:PRIMARY> use testswitched to db test <my-replica-set>:PRIMARY> db.tmp.count()1
1

Utiliza un recurso de base de datos existente o crea uno nuevo con almacenamiento persistente. Espere hasta que el volumen persistente alcance el estado Running.

Ejemplo

Un recurso de base de datos con almacenamiento persistente incluiría:

apiVersion: mongodb.com/v1kind: MongoDBmetadata: name: <my-replica-set>spec: members: 3 version: "8.0.0" project: my-project credentials: my-credentials type: ReplicaSet podSpec: persistence: single: storage: "1Gi"
2
  1. Inicie mongo en el clúster de Kubernetes.

    $kubectl exec -it <my-replica-set>-0 \ /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-8.0.0/bin/mongo
  2. Inserte datos en la base de datos test.

    <my-replica-set>:PRIMARY> use test switched to db test <my-replica-set>:PRIMARY> db.tmp.insertOne({"foo":"bar"}) { "acknowledged" : true, "insertedId" : ObjectId("61128cb4a783c3c57ae5142d")}
3

Invoca los siguientes comandos para todo el set de réplicas:

kubectl patch pvc/"data-<my-replica-set>-0" -p='{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'kubectl patch pvc/"data-<my-replica-set>-1" -p='{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'kubectl patch pvc/"data-<my-replica-set>-2" -p='{"spec": {"resources": {"requests": {"storage": "2Gi"}}}}'

Espere hasta que cada solicitud de volumen persistente llegue a la siguiente condición:

- lastProbeTime: null lastTransitionTime: "2019-08-01T12:11:39Z" message: Waiting for user to (re-)start a pod to finish file system resize of volume on node. status: "True" type: FileSystemResizePending
4

Actualiza la definición de implementación de Kubernetes operador y aplica el cambio a tu clúster de Kubernetes a fin de escalar Kubernetes operador a 0 réplicas. Reducir el Operador de Kubernetes a 0 réplicas te permite evitar una condición de competencia en la que el Operador de Kubernetes intenta restaurar el estado del recurso actualizado manualmente para alinearlo con la definición original del recurso.

apiVersion: apps/v1kind: Deploymentmetadata: name: mongodb-kubernetes-operator namespace: mongodbspec: replicas: 0
5

Nota

Este paso remueve únicamente el StatefulSet. Los pods se mantienen sin cambios y en funcionamiento.

Borra un recurso StatefulSet.

kubectl delete sts --cascade=false <my-replica-set>
6
  1. Actualiza el tamaño del disco. Abre tu editor de texto preferido y realiza cambios similares a este ejemplo:

    Ejemplo

    Para actualizar el tamaño de disco del set de réplicas a 2 GB, cambie el valor storage en la especificación del recurso de base de datos:

    apiVersion: mongodb.com/v1kind: MongoDBmetadata: name: <my-replica-set>spec: members: 3 version: "8.0.0" project: my-project credentials: my-credentials type: ReplicaSet podSpec: persistence: single: storage: "2Gi"
  2. Recrea un recurso StatefulSet con el nuevo tamaño de volumen.

    kubectl apply -f my-replica-set-vol.yaml
  3. Espera hasta que el recurso personalizado de MongoDB esté en un estado Running.

7

Ejecute el siguiente comando:

kubectl rollout restart sts <my-replica-set>

Las nuevas pods montan el volumen redimensionado.

8

Si el volumen persistente se reutilizó, los datos que insertaste en el paso 2 se pueden encontrar en las bases de datos almacenadas en volumen persistente:

$ kubectl exec -it <my-replica-set>-1 \ /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-8.0.0/bin/mongo
<my-replica-set>:PRIMARY> use testswitched to db test <my-replica-set>:PRIMARY> db.tmp.count()1