为MongoDB资源配置存储选项
您可以将MongoDB资源配置为绑定到MongoDB
CustomResourceDefinition 中的特定存储。MongoDB CustomResourceDefinition 中的persistence
字段可让您更精确地管理Kubernetes存储MongoDB自定义资源生成的日志和元数据的位置。通过控制日志和元数据存储,可以更精细地控制管理生成的元数据并交互的进程。
您可以在MongoDB CustomResourceDefinition 中为每个组件配置持久性设置 。这些设置允许您指定给定组件与一个或多个相关PersistentVolume
资源之间的关系,这些资源存储MongoDB自定义资源的输出。
persistence
设置指定与Kubernetes集群中MongoDB自定义资源托管对象关联的persistentVolumes
的数量和存储容量。
先决条件
要为MongoDB 部署配置存储选项,您必须通过MongoDB Kubernetes Operator 部署MongoDB副本集,或者满足以下先决条件:
步骤
创建单个PersistentVolume
,其中给定组件将存储所有MongoDB CustomResourceDefinition 输出,将组件的persistence
定义为single
。要为组件的data
、 journal
和logs
创建不同的PersistentVolume
,请将组件的persistence
定义为multiple
。
1
更新您的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: "6.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 ...