Redimensionar armazenamento para um recurso de reconhecimento de data center
Nesta página
Pré-requisitos
A classe de armazenamento deve suportar o redimensionamento
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.
Procedimento
Criar ou identificar um recurso personalizado persistente .
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:
1 apiVersion: mongodb.com/v1 2 kind: MongoDB 3 metadata: 4 name: <my-replica-set> 5 spec: 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"
Insira dados no reconhecimento de data center ao qual o recurso atende.
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 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") }
Corrija cada volume de persistência.
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
Remova os StatefulSets.
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>
Atualize o recurso do reconhecimento de data center com um novo valor de armazenamento.
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:1 apiVersion: mongodb.com/v1 2 kind: MongoDB 3 metadata: 4 name: <my-replica-set> 5 spec: 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" Recriar um StatefulSet recurso com o novo tamanho do volume.
kubectl apply -f my-replica-set-vol.yaml Aguarde até que este StatefulSet atinja o estado
Running
.
Validar que existem dados na declaração de volume persistente atualizada .
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