在本页面
Cloud Manager和Ops Manager 4.0.11支持MongoDB资源
您可以使用Kubernetes Operator通过Ops Manager 4.0.11或更高版本以及Cloud Manager部署MongoDB资源。在本指南中任何提到Ops Manager的地方,都可以替代 Cloud Manager。
甲副本集是一组保持相同的数据集的MongoDB部署。副本集提供冗余和高可用性,并且是所有生产部署的基础。
要了解有关副本集的更多信息,请参见MongoDB手册中的“ 复制简介 ”。
使用此过程可以部署由Ops Manager管理的新副本集。部署后,使用Ops Manager管理副本集,包括添加,删除和重新配置成员的操作。
从MongoDB Enterprise Kubernetes Operator 1.3.0版开始,每个项目只能有一个MongoDB资源。要了解如何将项目迁移到单集群配置,请参阅每个项目迁移到一个资源(版本1.3.0必需)。
键 | 类型 | 描述 | 例 |
---|---|---|---|
metadata.name |
串 |
资源名称不得超过44个字符。 也可以看看
|
myproject |
spec.members |
整数 | 副本集成员的数量。 | 3 |
spec.version |
串 | 此副本集应运行的MongoDB版本。 格式应 要了解有关MongoDB版本控制的更多信息,请参阅 《 MongoDB手册》中的MongoDB 版本控制。 |
3.6.7 |
串 | 具有Ops Manager连接配置的ConfigMap的名称。该
值必须与名称空间和ConfigMap的名称匹配 该值必须与您在其中创建Ops Manager 项目ConfigMap的名称空间匹配。 如果此MongoDB Kubernetes资源与
项目ConfigMap位于不同的名称空间中,则应使用以下格式将此值设置为ConfigMap 的名称空间和名称:
操作员管理对ConfigMap的更改 Kubernetes操作员跟踪对ConfigMap的任何更改,并协调MongoDB Kubernetes资源的状态。 |
<myconfigmap> 要么
<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资源的类型。 | ReplicaSet |
spec.persistent |
串 | 可选的。 指示此MongoDB Kubernetes资源是否应使用持久卷进行存储的标志。当MongoDB Kubernetes资源停止或重新启动时,持久卷不会被删除。 如果该值为 要更改永久卷声明配置,请配置以下集合以满足您的部署要求:
|
true |
您还可以将以下任何可选设置添加到 对象规范文件中,以进行副本集部署:
spec.clusterDomain
spec.featureCompatibilityVersion
spec.logLevel
spec.podSpec.cpu
spec.podSpec.cpuRequests
spec.podSpec.memory
spec.podSpec.memoryRequests
spec.podSpec.persistence.single
spec.podSpec.persistence.multiple.data
spec.podSpec.persistence.multiple.journal
spec.podSpec.persistence.multiple.logs
spec.podSpec.podAffinity
spec.podSpec.podAntiAffinityTopologyKey
spec.podSpec.nodeAffinity
警告
您必须设置spec.clusterDomain
Kubernetes群集是否具有
除default以外的默认域cluster.local
。如果您既不使用默认值也不设置spec.clusterDomain
选项,则Kubernetes Operator可能无法按预期运行。
要检查MongoDB Kubernetes资源的状态,请调用以下命令:
该-w
标志表示“手表”。设置了“监视”标志后,当某些更改发生时,输出将立即刷新,直到状态阶段达到该Running
状态为止。
请参阅对Kubernetes Operator进行故障排除以获取有关资源部署状态的信息。
按照说明进行操作:部署副本集<deploy-replica-set>。为了简化配置,请不要使用该设置启用
TLSspec.security.tls.enabled
。
调用以下命令以检索每个主机的CSR:
该命令的输出类似于以下内容:
对部署中的每个主机重复以下命令以删除CSR:
重要
仅删除TLS CSR。不要删除X.509或任何其他 CSR。
键 | 类型 | 必要性 | 描述 | 例 |
---|---|---|---|---|
spec.security.tls |
布尔值 | 可选的 | 将此值设置 默认情况下,Kubernetes Operator要求主机使用并接受 TLS加密连接。 注意 要从Kubernetes外部连接到副本集,请将此值设置为 |
true |
spec.connectivity |
采集 | 有条件的 | 如果需要在Kubernetes之外访问数据库,请添加此参数和值。此设置允许您在Kubernetes群集内和Kubernetes群集中提供不同的DNS设置。Kubernetes Operator将水平分割DNS用于副本集成员。该功能允许在Kubernetes集群内部和外部Kubernetes进行通信。 您可以为每个主机添加多个外部映射。 水平分割要求
|
See Setting |
确认设置中的外部主机名
spec.connectivity.replicaSetHorizons
正确。
外部主机名应与Kubernetes辅助节点的DNS名称匹配。这些可以是Kubernetes集群中的任何节点。如果Pod在另一个节点上运行,则节点将进行内部路由。
将端口设置为spec.connectivity.replicaSetHorizons
发现的NodePort值。
例
Kubernetes操作员创建MongoDB资源,并请求Kubernetes CA批准数据库主机的证书。运行以下命令来验证证书是否正在等待批准:
在status
输出的字段应类似于以下内容:
如果看不到status.message
以上内容,请参阅
对Kubernetes Operator进行故障排除以帮助诊断问题。
警告
不要在生产中使用–sslAllowInvalidCertificates标志。在生产中,与客户端工具或应用程序共享Kubernetes CA文件。
如果连接成功,您应该看到: