Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.

Aumentar o armazenamento para volumes persistentes

Os recursos personalizados MongoDB Ops Manager, Banco de dados MongoDB , AppDB e Backup Daemon que compõem uma implantação padrão do Operador Kubernetes são implantados como Kubernetes statefulSets. O Operador do Kubernetes suporta aumentar o armazenamento associado a estes recursos específicos aumentando a capacidade dos seus respectivos Kubernetes persistentVolumeClaims quando o Kubernetes storageClass subjacente suporta a expansão do Kubernetes persistentVolume .

Dependendo do tipo de recurso específico, você pode aumentar o armazenamento de duas maneiras. Você pode aumentar manualmente o armazenamento ou pode aproveitar o recurso de expansão de armazenamento fácil do Kubernetes Operator. A tabela a seguir ilustra qual desses dois procedimentos é suportado para um determinado tipo de recurso personalizado.

Tipo de recurso personalizado
Expansão manual de armazenamento
fácil expansão de armazenamento

AppDB

Backup Daemon

Banco de dados MongoDB

Multi-Cluster do MongoDB

Ops Manager

O armazenamento do índice do MongoDB Search não é coberto por esses procedimentos. Para aprender como aumentá-lo, consulte Expandir o armazenamento do índice do MongoDB Search.

Verifique se o provedor de plugin-in de volume e StorageClass que os Volumes persistentes usam suporta redimensionamento:

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

Se você não tiver um storageClass que suporte o redimensionamento, peça ajuda ao administrador do Kubernetes.

Observação

O mecanismo de expansão fácil requer o RBAC padrão incluído com o Kubernetes Operator. Especificamente, requer get, list, watch, patch e update permissões para persistantVolumeClaims. Se você tiver personalizado algum dos recursos RBAC do Kubernetes Operator, talvez seja necessário ajustar as permissões para permitir que o Kubernetes Operator redimensione os recursos de armazenamento em seu cluster do Kubernetes.

Esse processo resulta em uma reinicialização contínua do recurso personalizado do MongoDB em seu cluster Kubernetes.

1

Use um recurso de banco de dados de dados existente ou crie um novo com armazenamento persistente. Aguarde até que o volume persistente entre no estado Running .

Exemplo

Um recurso de reconhecimento de data center com armazenamento persistente incluiria:

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 o mongo no cluster Kubernetes.

    $kubectl exec -it <my-replica-set>-0 \ /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-8.0.0/bin/mongo
  2. Inserir dados no reconhecimento de data center 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

Você só pode aumentar o tamanho do disco para os recursos de armazenamento existentes, não diminuir. Diminuir o tamanho do armazenamento causa um erro no estágio de reconciliação.

  1. Atualize o tamanho do disco. Abra seu editor de texto preferido e faça alterações semelhantes a este exemplo:

    Exemplo

    Para atualizar o tamanho do disco do conjunto de réplicas para 2 GB, altere o valor storage na especificação do recurso do banco de dados de dados:

    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. Atualize o recurso personalizado MongoDB com o novo tamanho do volume.

    kubectl apply -f my-updated-replica-set-vol.yaml
  3. Aguarde até que este StatefulSet atinja o estado Running .

4

Se você reutilizar Volumes persistentes, poderá encontrar os dados inseridos na etapa 2 nos bancos de dados armazenados em Volumes persistentes:

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

A saída a seguir indica que sua solicitação de redimensionamento de PVC está sendo processada.

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

Se você reutilizar Volumes persistentes, poderá encontrar os dados inseridos na etapa 2 nos bancos de dados armazenados em Volumes 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

Use um recurso de reconhecimento de data center existente ou crie um novo com armazenamento persistente. Aguarde até que o volume persistente chegue ao estado Running .

Exemplo

Um recurso de reconhecimento de data center com armazenamento persistente incluiria:

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 o mongo no cluster Kubernetes.

    $kubectl exec -it <my-replica-set>-0 \ /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-8.0.0/bin/mongo
  2. Inserir dados no reconhecimento de data center 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

Invoque os seguintes comandos para todo o conjunto 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"}}}}'

Aguarde até que cada declaração de volume persistente chegue à seguinte condição:

- 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

Atualize a definição de implantação do Kubernetes Operator e aplique a alteração em seu cluster do Kubernetes para reduzir o Kubernetes Operator para réplicas 0 . O dimensionamento do Operador Kubernetes para réplicas 0 permite evitar uma condição de corrida na qual o Operador Kubernetes tenta restaurar o estado do recurso atualizado manualmente para se alinhar com a definição original do recurso.

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

Observação

Esta etapa remove apenas o StatefulSet. Os pods permanecem inalterados e em execução.

Exclua um recurso StatefulSet.

kubectl delete sts --cascade=false <my-replica-set>
6
  1. Atualize o tamanho do disco. Abra seu editor de texto preferido e faça alterações semelhantes a este exemplo:

    Exemplo

    Para atualizar o tamanho do disco do conjunto de réplicas para 2 GB, altere o valor storage na especificação do recurso do banco de dados de dados:

    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. Recrie um recurso StatefulSet com o novo tamanho do volume.

    kubectl apply -f my-replica-set-vol.yaml
  3. Aguarde até que o recurso personalizado MongoDB esteja em um estado Running .

7

Invocar o seguinte comando:

kubectl rollout restart sts <my-replica-set>

Os novos pods montam o volume redimensionado.

8

Se os Volumes persistentes foram reutilizados, os dados inseridos na etapa 2 poderão ser encontrados nos bancos de dados armazenados em Volumes 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