Puede configurar sus recursos de MongoDB para vincularlos a un almacenamiento específico en su MongoDB CustomResourceDefinition. El campo persistence en MongoDB CustomResourceDefinition te permite gestionar de manera más precisa dónde Kubernetes almacena los registros y metadatos generados por recursos personalizados de MongoDB. Controlar el almacenamiento de registros y metadatos te permite tener un control más detallado de los procesos que gestionan e interactúan con estos metadatos generados.
Puedes configurar la configuración de persistencia por componente en la Definición de recurso personalizado de MongoDB. Estos ajustes te permiten especificar la relación entre un determinado componente y uno o más recursos relacionados PersistentVolume, que almacenan la salida de tus recursos personalizados de MongoDB.
La configuración persistence especifica el número y la capacidad de almacenamiento de persistentVolumes asociados con los objetos gestionados por recursos personalizados de MongoDB en tu clúster de Kubernetes.
Requisitos previos
Para configurar las opciones de almacenamiento de tu implementación de MongoDB, debes tener un set de réplicas de MongoDB implementado a través del Operador de Kubernetes de MongoDB o cumplir con los siguientes requisitos previos:
Procedimiento
Para crear un PersistentVolume único en el que un componente determinado almacenará toda la salida de CustomResourceDefinition de MongoDB, define el persistence del componente como single. Para crear un PersistentVolume distinto para el data, journal y logs del componente, define el persistence del componente como multiple.
Actualiza su recurso personalizado de MongoDB.
Completa las persistence secciones de tu definición CRD de MongoDB como se muestra en el siguiente ejemplo:
1 2 apiVersion: mongodb.com/v1 3 kind: MongoDB 4 metadata: 5 name: my-sharded-cluster 6 spec: 7 shardCount: 2 8 mongodsPerShardCount: 3 9 mongosCount: 2 10 configServerCount: 3 11 version: "8.0.0" 12 service: my-service 13 type: ShardedCluster 14 15 persistent: true 16 17 configSrvPodSpec: 18 persistence: 19 single: true 20 21 shardPodSpec: 22 persistence: 23 multiple: 24 # if the child of "multiple" is omitted then the default size will be used. 25 # 16GB for "data", 1GB for "journal", 3GB for "logs" 26 data: 27 storage: "20Gi" 28 storageClass: standard # You must define a storageClass, as the Operator creates a PVC, which will only create an associated PV with a backing storageClass. 29 logs: 30 storage: "4Gi" 31 storageClass: standard 32 ...