Menu Docs
Página inicial do Docs
/
Operador de Kubernetes do MongoDB Enterprise
/ /

Redimensionar armazenamento para um recurso de reconhecimento de data center

Nesta página

  • Pré-requisitos
  • Procedimento

Certifique-se de que a StorageClass e fornecedor de plugin -ins de volume que o fornecedor de Volumes persistentes usar 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 seu administrador do Kubernetes.

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:

1apiVersion: mongodb.com/v1
2kind: MongoDB
3metadata:
4 name: <my-replica-set>
5spec:
6 members: 3
7 version: "4.4.0"
8 project: my-project
9 credentials: my-credentials
10 type: ReplicaSet
11 podSpec:
12 persistence:
13 single:
14 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-4.4.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 reivindicação de volume persistente chega à 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

Observação

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

Excluir um StatefulSet recurso.

kubectl delete sts --cascade=false <my-replica-set>
5
  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 do storage na especificação do recurso do reconhecimento de data center:

    1apiVersion: mongodb.com/v1
    2kind: MongoDB
    3metadata:
    4 name: <my-replica-set>
    5spec:
    6 members: 3
    7 version: "4.4.0"
    8 project: my-project
    9 credentials: my-credentials
    10 type: ReplicaSet
    11 podSpec:
    12 persistence:
    13 single:
    14 storage: "2Gi"
  2. Recriar um StatefulSet recurso com o novo tamanho do volume.

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

6

Invocar o seguinte comando:

kubectl rollout restart sts <my-replica-set>

Os novos pods montam o volume redimensionado.

7

Se os Volumes persistentes foram reutilizados, os dados inseridos na etapa 2 podem 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-4.4.0/bin/mongo
<my-replica-set>:PRIMARY> use test
switched to db test
<my-replica-set>:PRIMARY> db.tmp.count()
1

Voltar

Implantação em escala