MongoDB工具 >MongoDB Kubernetes运营商 >部署MongoDB数据库资源 >部署MongoDB数据库资源 > 部署分片集群
Cloud Manager和Ops Manager 4.0.11支持MongoDB资源
您可以使用Kubernetes Operator通过Ops Manager 4.0.11或更高版本以及Cloud Manager部署MongoDB资源。在本指南中任何提到Ops Manager的地方,都可以替代 Cloud Manager。
分片群集为大型数据集提供水平扩展,并通过在一组服务器之间分布数据集来实现高吞吐量操作。
要了解有关分片的更多信息,请参阅MongoDB手册中的分片 简介。
使用此过程可以部署由Ops Manager管理的新分片群集。以后,您可以使用Ops Manager在群集上添加分片并执行其他维护操作。
从MongoDB Enterprise Kubernetes Operator 1.3.0版开始,每个项目只能有一个MongoDB资源。要了解如何将项目迁移到单集群配置,请参阅每个项目迁移到一个资源(版本1.3.0必需)。
不要将Kubernetes外部的MongoDB部署与同一项目中的内部Kubernetes混合使用。
由于Kubernetes网络转换,Kubernetes外部的监视代理无法监视Kubernetes内的MongoDB实例。因此,不支持同一项目中的k8s和非k8s部署。使用单独的项目。
部署分片群集的过程取决于您是否需要在群集内部通信和客户端连接到数据库的客户端启用TLS的情况下运行部署:
键 | 类型 | 描述 | 例 |
---|---|---|---|
metadata.name |
串 |
资源名称不得超过44个字符。 也可以看看
|
myproject |
spec.shardCount |
整数 | 要部署的分片数。 | 2 |
spec.mongodsPerShardCount |
整数 | 每个分片的分片成员数。 | 3 |
spec.mongosCount |
整数 | 要部署的分片路由器的数量。 | 2 |
spec.configServerCount |
整数 | 配置服务器副本集的成员数。 | 3 |
spec.version |
串 | 分片群集应运行的MongoDB版本。 格式应 要了解有关MongoDB版本控制的更多信息,请参阅 《 MongoDB手册》中的MongoDB 版本控制。 |
4.2.2-ent |
spec.opsManager.configMapRef.name |
串 | 具有Ops Manager连接配置的ConfigMap的名称。该
值必须与名称空间和ConfigMap的名称匹配 该值必须与您在其中创建Ops Manager 项目ConfigMap的名称空间匹配。 如果此MongoDB Kubernetes资源与
项目ConfigMap位于不同的名称空间中,则应使用以下格式将此值设置为ConfigMap 的名称空间和名称:
操作员管理对ConfigMap的更改 Kubernetes操作员跟踪对ConfigMap的任何更改,并协调MongoDB Kubernetes资源的状态。 |
<myproject> 要么
<namespace>/<myconfigmap> |
spec.credentials |
串 | 您 创建的作为Ops Manager API 身份验证凭据的Kubernetes 机密的名称,供Kubernetes操作员与Ops Manager进行通信。 值必须使用名称空间和Secret的名称 该值必须与您在其中创建密钥的名称空间以及 如果此对象位于与Secret 不同的名称空间中,则应
使用以下格式将此值设置为Secret的名称空间和名称:
操作员管理对机密的更改 Kubernetes操作员跟踪对Secret的任何更改,并协调MongoDB Kubernetes资源的状态。 |
<mycredentials> 要么
<namespace>/<mycredentials> |
spec.type |
串 | 要创建的MongoDB Kubernetes资源的类型。 | ShardedCluster |
spec.persistent |
串 | 可选的。 指示此MongoDB Kubernetes资源是否应使用持久卷进行存储的标志。当MongoDB Kubernetes资源停止或重新启动时,持久卷不会被删除。 如果此值为 要更改永久卷声明配置,请配置以下集合以满足您的部署要求:
|
true |
您也可以将以下任何可选设置添加到 对象规范文件中,以进行分片群集 部署:
spec.clusterDomain
spec.exposedExternally
spec.logLevel
spec.featureCompatibilityVersion
spec.connectivity.replicaSetHorizons
警告
您必须设置spec.clusterDomain
Kubernetes群集是否具有
除default以外的默认域cluster.local
。如果您既不使用默认值也不设置spec.clusterDomain
选项,则Kubernetes Operator可能无法按预期运行。
对于配置服务器
spec.configSrvPodSpec.cpu
spec.configSrvPodSpec.cpuRequests
spec.configSrvPodSpec.memory
spec.configSrvPodSpec.memoryRequests
spec.configSrvPodSpec.persistence.single
spec.configSrvPodSpec.persistence.multiple.data
spec.configSrvPodSpec.persistence.multiple.journal
spec.configSrvPodSpec.persistence.multiple.logs
spec.configSrvPodSpec.nodeAffinity
spec.configSrvPodSpec.podAffinity
spec.configSrvPodSpec.podAntiAffinityTopologyKey
对于分片路由器
spec.mongosPodSpec.cpu
spec.mongosPodSpec.cpuRequests
spec.mongosPodSpec.memory
spec.mongosPodSpec.memoryRequests
spec.mongosPodSpec.nodeAffinity
spec.mongosPodSpec.podAffinity
spec.mongosPodSpec.podAntiAffinityTopologyKey
对于分片成员
spec.shardPodSpec.cpu
spec.shardPodSpec.cpuRequests
spec.shardPodSpec.memory
spec.shardPodSpec.memoryRequests
spec.shardPodSpec.nodeAffinity
spec.shardPodSpec.persistence.single
spec.shardPodSpec.persistence.multiple.data
spec.shardPodSpec.persistence.multiple.journal
spec.shardPodSpec.persistence.multiple.logs
spec.shardPodSpec.podAffinity
spec.shardPodSpec.podAntiAffinityTopologyKey
.yaml
文件扩展名保存该文件。¶要检查MongoDB Kubernetes资源的状态,请调用以下命令:
该-w
标志表示“手表”。设置了“监视”标志后,当某些更改发生时,输出将立即刷新,直到状态阶段达到该Running
状态为止。
请参阅对Kubernetes Operator进行故障排除以获取有关资源部署状态的信息。