MongoDB工具 >MongoDB Kubernetes运营商 >部署Ops Manager资源 > 计划您的Ops Manager资源
MongoDB Ops Manager是一个企业应用程序,用于管理,备份和监视MongoDB部署。借助Ops Manager,您可以扩展和升级MongoDB,优化查询,执行时间点还原,接收性能警报等。为了轻松管理和维护Ops Manager及其基础数据库,您可以使用MongoDB Enterprise Kubernetes Operator在Kubernetes上将Ops Manager作为容器运行。
在部署Ops Manager资源之前,请确保您已阅读 注意事项并完成前提条件。
该Kubernetes操作管理和监控每一个MongoDBOpsManager
自定义资源通过资源定义文件,您
创建。每次创建或更新资源定义时,Kubernetes Operator都会执行以下调节过程:
Global Owner
spec.backup.enabled
Kubernetes Operator会生成一个加密密钥来保护Ops Manager应用程序数据库中的敏感信息。Kubernetes操作员将此密钥保存在与Ops Manager资源相同的名称空间中的秘密中。Kubernetes运算符为该秘密命名
<om-resource-name>-gen-key
。
如果删除Ops Manager资源,则密钥仍存储在Kubernetes集群的机密中。如果将应用程序数据库存储在持久卷中,并且使用相同的名称创建另一个Ops Manager资源,则Kubernetes Operator会重用该机密。如果您使用不同的名称创建Ops Manager资源,则Kubernetes Operator会创建一个新的机密和应用程序数据库,并且不会重复使用旧的机密。
通过Kubernetes Operator创建Ops Manager实例时, Ops Manager应用程序数据库将部署为副本集。您不能将应用程序数据库配置为独立 数据库或分片群集。如果您对应用程序数据库的性能或大小要求有疑问,请联系 MongoDB支持。
Kubernetes Operator 在应用程序数据库上执行SCRAM-SHA-1
身份验证。
Kubernetes Operator创建一个数据库用户,Ops Manager使用该数据库用户来连接到应用程序数据库。该数据库用户具有以下属性:
用户名 | mongodb-ops-manager |
---|---|
认证数据库 | admin |
的角色 |
您无法修改Ops Manager数据库用户的名称和角色。您 创建一个秘密来设置数据库用户的密码。您编辑密码以更新密码。如果您不创建密码或删除现有密码,则Kubernetes Operator会生成密码并将其存储。
如果您需要以其他用户身份验证到应用程序数据库,请执行以下操作:
mongo
Shell 将新用户添加到数据库。Kubernetes Operator将MongoDB Enterprise 4.2.2版本与应用程序数据库 映像捆绑在一起,以实现Ops Manager资源的离线部署。
要在没有Internet连接的情况下在Kubernetes中部署Ops Manager,请忽略spec.applicationDatabase.version
设置或将该值保留为空。
升级Kubernetes Operator时,应用程序数据库会对MongoDB的新修补程序版本(例如从4.2.2-ent
到)进行滚动升级
4.2.3-ent
。但是,应用程序数据库不会在主要版本(例如从4.2.2-ent
到)之间自动升级
4.4.0-ent
。
部署Ops Manager后,需要对其进行配置。常规过程包括通过配置向导设置Ops Manager 。如果在部署之前在对象规范中设置了一些基本设置,则可以绕过配置向导。
在spec.configuration
Ops Manager对象规范的块中,您需要:
true
。Kubernetes Operator 默认情况下启用备份。Kubernetes Operator部署一个由一个Pod组成的StatefulSet来承载Backup Daemon服务,然后为Backup Daemon的头数据库创建一个Persistent Volume Claim 和Persistent Volume。Kubernetes Operator使用Ops Manager API启用备份守护程序并配置头数据库。
重要
要配置备份,必须为oplog存储和以下其中一项创建MongoDB数据库资源:
如果同时部署S3 快照存储和 块存储,则Ops Manager会随机选择一个用于备份。
在Pending
您配置这些备份资源之前,Ops Manager资源将保持状态。
您必须部署一个三人副本集来存储 oplog slice。
如果SCRAM
在oplog数据库上启用身份验证,则必须:
name
在Ops Manager资源定义中指定用户的。要配置S3 快照存储,您必须创建一个与AWS S3或S3兼容的存储桶以存储数据库备份快照。
默认配置将快照元数据存储在应用程序数据库中。您还可以部署一个副本集来存储快照元数据,然后使用Ops Manager资源定义中的spec.backup.s3Stores.mongodbResourceRef.name
和
spec.backup.s3Stores.mongodbResourceRef.user
设置对其进行配置
。
您可以更新 Kubernetes Operator无法通过Ops Manager应用程序管理的任何其他S3 配置设置。
要在启用备份后禁用它:
将Ops Manager Kubernetes 对象 spec.backup.enabled
设置设置为false
。
在Ops Manager应用程序中禁用备份。
重要
删除备份后台驻留程序服务 StatefulSet时,不会删除备份后台驻留程序的头数据库的持久卷声明和持久卷。您可以在删除这些Kubernetes资源之前检索存储的数据。
要了解有关回收持久卷的信息,请参阅 Kubernetes文档。
默认情况下,Kubernetes Operator不会创建Kubernetes服务来将来自Kubernetes集群外部的流量路由到Ops Manager应用程序。
要访问Ops Manager应用程序,您可以:
LoadBalancer
如果您的云提供商支持,MongoDB建议使用
Kubernetes服务。最简单的方法是配置Kubernetes Operator,以创建Kubernetes服务,该服务将外部流量路由到Ops Manager应用程序。Ops Manager部署过程指示您将以下设置添加到对象规范中,该规范将Kubernetes Operator配置为创建服务:
spec.
externalConnectivity
spec.externalConnectivity.
type
如果您的环境阻止授予Kubernetes群集中的主机对Internet的访问权限,请参阅将Ops Manager资源配置为使用本地模式以使用Kubernetes Operator部署Ops Manager。
使用Kubernetes Operator部署Ops Manager时,Ops Manager可以管理已部署的MongoDB数据库资源:
如果Ops Manager管理部署到不同于Ops Manager或Kubernetes群集之外的其他Kubernetes群集的MongoDB数据库资源,则必须:
将mms.centralUrl
设置添加到spec.configuration
Ops Manager资源规范中。
将值设置为在Kubernetes集群之外公开Ops Manager的URL:
更新您使用Kubernetes Operator部署的Kubernetes集群内的所有MongoDB数据库资源引用的ConfigMap。
设置data.baseUrl
为与spec.configuration.mms.centralUrl
Ops Manager资源规范中的设置相同的值
。
重要
这包括ConfigMap,供oplog和快照存储的MongoDB数据库资源参考。
如果尚未安装,请运行以下命令以执行创建kubectl
的名称空间中的所有
命令:
安装 MongoDB Enterprise Kubernetes Operator 1.4.1或更高版本。
确保要在其上部署Ops Manager的主机至少有5 GB的内存。
在与 Ops Manager资源相同的名称空间中为管理员用户创建Kubernetes 机密。
部署Ops Manager资源时,Ops Manager将使用这些凭据创建一个用户并授予该角色。使用这些凭据首次登录Ops Manager。部署Ops Manager后,请更改密码或删除此机密。Global Owner
(可选)要为Ops Manager数据库用户设置密码,请在与Ops Manager资源相同的名称空间中创建密钥。
Kubernetes操作员创建Ops Manager用于连接到Ops Manager应用程序数据库的数据库用户。您可以通过调用以下命令创建密钥来为此数据库用户设置密码:
注意
如果选择为Ops Manager数据库用户创建机密,则必须name
在Ops Manager资源定义中指定该机密
。默认情况下,Kubernetes Operator在password
密钥中查找密码值。如果将密码值存储在其他密钥中,则还必须key
在Ops Manager资源定义中指定该
名称。
如果您不创建密码,那么Kubernetes Operator会自动生成一个密码并将其存储在内部。要了解更多信息,请参阅身份验证。
(可选)。要将备份配置到S3快照存储,请在与Ops Manager资源相同的名称空间中创建一个密钥。
此密钥存储您的S3凭证,以便Kubernetes Operator可以将Ops Manager连接到与您的AWS S3或S3兼容的存储桶。机密必须包含以下键值对:
键 | 值 |
accessKey |
拥有S3或 S3兼容存储桶的AWS用户的唯一标识。 |
secretKey |
拥有S3或 S3兼容存储桶的AWS用户的密钥。 |
要创建机密,请调用以下命令:
要了解有关管理S3快照存储的更多信息,请参阅 先决条件。