Docs Menu
Docs Home
/ /
Editar
/ / /

Cambiar el tamaño del almacenamiento para un recurso de base de datos

Asegúrese de que la clase de almacenamientoy el proveedor de complementos de volumen que utilizan los volúmenes persistentes admite el cambio de tamaño:

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

Si no tiene una StorageClass que admita el cambio de tamaño, pídale ayuda a su administrador de Kubernetes.

1

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

Ejemplo

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

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 en el clúster de mongo Kubernetes.

    $kubectl exec -it <my-replica-set>-0 \
    /var/lib/mongodb-mms-automation/mongodb-linux-x86_64-4.4.0/bin/mongo
  2. Insertar 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

Invoque los siguientes comandos para todo el 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"}}}}'

Espere hasta que cada reclamación 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

Nota

Este paso elimina únicamente el StatefulSet. Los pods permanecen sin cambios y en ejecución.

Borra un recurso StatefulSet.

kubectl delete sts --cascade=false <my-replica-set>
5
  1. Actualice el tamaño del disco. Abra su editor de texto preferido y realice cambios similares a este ejemplo:

    Ejemplo

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

    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. Recrea un recurso StatefulSet con el nuevo tamaño de volumen.

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

6

Ejecute el siguiente comando:

kubectl rollout restart sts <my-replica-set>

Los nuevos pods montan el volumen redimensionado.

7

Si se reutilizaron los volúmenes persistentes, los datos que insertó en el paso 2 se pueden encontrar 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-4.4.0/bin/mongo
<my-replica-set>:PRIMARY> use test
switched to db test
<my-replica-set>:PRIMARY> db.tmp.count()
1

Volver

Despliegue a escala

En esta página