You can configure your MongoDB resources to bind to specific storage in your MongoDB CustomResourceDefinition. The persistence field in the MongoDB CustomResourceDefinition allows you to more precisely manage where Kubernetes stores the logs and metadata generated from MongoDB custom resources. Controlling log and metadata storage allows you to have more fine-grained control of processes that manage and interact with this generated metadata.
You can configure persistence settings per component in the MongoDB CustomResourceDefinition. These settings allow you to specify the relationship between a given component and one or more related PersistentVolume resources, which store output from your MongoDB custom resources.
persistence设置指定与Kubernetes集群中MongoDB自定义资源托管对象关联的persistentVolumes的数量和存储容量。
先决条件
要为MongoDB 部署配置存储选项,您必须通过MongoDB Kubernetes Operator 部署MongoDB副本集,或者满足以下先决条件:
步骤
To create a single PersistentVolume in which a given component will store all MongoDB CustomResourceDefinition output, define the component's persistence as single. To create a distinct PersistentVolume for the component's data, journal, and logs, define the component's persistence as multiple.
更新您的MongoDB自定义资源。
填充MongoDB CRD 定义的persistence部分,如以下示例所示:
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 ...