MongoDB Enterprise Kubernetes Operator 发布说明
在此页面上
- MongoDB Enterprise Kubernetes Operator 1.27 系列
- MongoDB Enterprise Kubernetes Operator 1.26 系列
- MongoDB Enterprise Kubernetes Operator 1.25 系列
- MongoDB Enterprise Kubernetes Operator 1.24 系列
- MongoDB Enterprise Kubernetes Operator 1.23 系列
- MongoDB Enterprise Kubernetes Operator 1.22 系列
- MongoDB Enterprise Kubernetes Operator 1.21 系列
- 旧发布说明
MongoDB Enterprise Kubernetes Operator 1.27 系列
MongoDB Enterprise Kubernetes Operator 1.27.0
已发布2024 - 08 - 27
新增功能
MongoDB资源:添加了对为MongoDB进程、监控代理和备份代理启用日志轮换的支持。 要学习;了解更多信息,请参阅 MongoDB CRD 日志轮换设置。
使用以下设置来配置每个组件的日志轮换:
spec.agent.mongod.logRotate
用于MongoDB进程。spec.agent.mongod.auditlogRotate
用于MongoDB进程的Atlas 审核日志。spec.agent.backupAgent.logRotate
用于备份代理。spec.agent.readinessProbe.environmentVariables
表示运行就绪探针所使用的环境变量。此设置也适用于与日志轮换相关的设置。 要学习;了解有关支持的环境设置的更多信息,请参阅 就绪探针。spec.applicationDatabase.agent.<component>.logRotate
用于应用程序数据库。
对于分片集群, 分片的 Operator 仅支持在
spec.Agent
设置下配置日志轮换,Kubernetes支持按进程类型(例如mongos
或configsrv
配置日志轮换。OpsManager资源:添加支持替换logback.xml 配置文件的支持,该文件配置常规日志记录设置,例如MongoDB Ops Manager和MongoDB Ops Manager备份的日志轮换。
使用以下设置:
spec.logging.logBackAccessRef
用于 ConfigMap 和访问权限密钥以及要挂载到MongoDB Ops Manager Pod 的logback
访问权限配置文件。 将 ConfigMap 的访问权限键命名为logback-access.xml
。 此文件配置对MongoDB Ops Manager日志记录配置文件的访问权限。spec.logging.logBackRef
用于 ConfigMap 和访问权限密钥以及要挂载到MongoDB Ops Manager Pod 的logback
配置文件。 此文件配置MongoDB Ops Manager的一般日志记录行为,包括日志轮换策略、日志级别和其他日志记录参数。 将 ConfigMap 的访问权限键命名为logback.xml
。spec.backup.logging.logBackAccessRef
用于 ConfigMap 和访问权限密钥以及要挂载到MongoDB Ops Manager Pod 的logback
访问权限配置文件。 将 ConfigMap 的访问权限键命名为logback-access.xml
。 此文件配置对MongoDB Ops Manager备份的日志记录配置文件的访问权限。spec.backup.logging.logBackRef
用于 ConfigMap 和访问权限密钥以及要挂载到MongoDB Ops Manager Pod 的logback
配置文件。 此文件配置MongoDB Ops Manager备份的一般日志记录行为,包括日志轮换策略、日志级别和其他日志记录参数。 将 ConfigMap 的访问权限键命名为logback.xml
。
弃用
应用程序数据库的
spec.applicationDatabase.agent.logRotate
设置已弃用。 请改用spec.applicationDatabase.agent.mongod.logRotate
。
缺陷修复
代理启动器:修复了在某些重新同步情况下,
/journal
中的日志数据可能已损坏的问题。 现在,助手可确保不存在冲突的日志数据,并优先处理来自/data/journal
的数据。 要停用此行为,请将Kubernetes Operator 中的环境变量MDB_CLEAN_JOURNAL
设立为1以外的任何值。MongoDB 、 AppDB 、 MongoDBMulti资源:修复了一个问题,确保在
connectionString
中使用外部域(如果配置)。MongoDB资源:如果您提供的 Horizon 配置短于成员数量,则会删除紧急响应。 现在,在这种情况下, Kubernetes Operator 会在MongoDB资源状态中发出描述性错误。
MongoDB资源:修复了以下问题:在以另一个项目前缀命名的新项目中创建资源时会失败,从而导致无法创建MongoDB资源。
MongoDB Enterprise Kubernetes Operator 1.26 系列
MongoDB Enterprise Kubernetes Operator 1.26.0
已发布2024 - 06 - 21
新增功能
提高 CPU 利用率和Kubernetes Operator 的垂直扩展,并允许您控制Kubernetes Operator 可以并行执行的协调数量,从而更快地协调所有托管资源。
您可以为Kubernetes Operator部署设立
MDB_MAX_CONCURRENT_RECONCILES
,或在Kubernetes Operator 安装 Helm图表中设置operator.maxConcurrentReconciles
。 如果未提供,则默认值为1 。 控制协调次数的能力可能会导致同一时间窗口内MongoDB Ops Manager和Kubernetes API服务器的负载增加。 观察Kubernetes Operator资源使用情况,并根据需要调整operator.resources.requests
和operator.resources.limits
。 要学习;了解更多信息,请参阅Kubernetes文档中的 Pod和容器的资源管理。新增支持OpenShift 4.15的支持。 要学习;了解更多信息,请参阅MongoDB Enterprise Kubernetes Operator 兼容性。
Helm Chart 安装更改
添加了
operator.maxConcurrentReconciles
参数,该参数允许您控制Kubernetes Operator 可以并行执行的协调数量。 默认值为1 。添加操作符.webhook.installClusterRole 参数,用于控制是否安装集群角色,从而允许Kubernetes Operator 配置准入 Webhook。 如果不允许使用集群角色,请将此参数设置为
false
。 默认值为true
。
缺陷修复
MongoDB资源:修复了一个错误:在
spec.agent.startupOptions
中配置具有多个条目的MongoDB资源会导致对根本的StatefulSet
进行额外不必要的协调。MongoDB 、MongoDBMultiCluster资源:修复了Kubernetes Operator 无法监控为MongoDB Agent助手身份验证配置的 X-509 证书更改的错误。
MongoDB资源:修复了以下错误:如果传递给MongoDB Agent的布尔标志的默认值为
true
,则无法将其设立为false
。
MongoDB Enterprise Kubernetes Operator 1.25 系列
MongoDB Enterprise Kubernetes Operator 1.25.0
已发布2024 - 04 - 30
破坏性变更 (breaking change)
MongoDBOpsManager资源。 Kubernetes Operator 不再支持MongoDB Ops Manager 5.0。 升级到更高版本的MongoDB Ops Manager 。 虽然MongoDB Ops Manager5.0 可能会继续与Kubernetes Operator 配合使用,但MongoDB KubernetesMongoDB Ops Manager5.0不会针对 测试 Operator。
新增功能
MongoDBOpsManager 资源:新增对在多个MongoDB Ops Manager Kubernetes集群上部署 应用程序的支持。要了解更多信息,请 参阅在多个 MongoDB Ops Manager集群上部署Kubernetes 资源。
(公共预览版) MongoDB 、 OpsManager资源:为所有类型的部署引入可选的静态容器(公共预览版) 。
OpsManager资源:添加
spec.internalConnectivity
字段以允许覆盖 Kubernetes Operator 所使用的服务,从而确保与OpsManager
资源托管 Pod 的内部连接。MongoDB资源:您可以恢复由于分片集群中的自动化配置损坏而导致的资源。 在以前的版本中,您可以恢复其他类型的资源,但不能恢复分片集群。 要了解更多信息,请参阅恢复因自动化配置损坏而导致的资源。
MongoDB 、 MongoDBMultiCluster资源:这些资源现在允许您在外部服务中添加占位符。
您可以定义 注解 用于Kubernetes Operator托管的外部服务,其中包含占位符,这些占位符将自动替换为正确的值。以前, Kubernetes Operator 会为每个 Pod 创建的所有外部服务配置相同的注释。 从此发布开始,您可以添加占位符,以便Kubernetes Operator 可以使用与每个特定 Pod 相关且唯一的值在每个服务中自定义注解。 要学习;了解详情,请参阅:
MongoDB
资源:spec.externalAccess.externalService.annotations
MongoDBMultiCluster
资源spec.externalAccess.externalService.annotations
kubectl mongodb
插件:允许您在使用该插件时打印版本信息。kubectl mongodb
插件的setup
命令:添加registry.imagePullSecrets 设置。 如果指定,创建的服务帐户将引用imagePullSecrets
字段上的指定密钥。改进了以下情况下的配置处理:Kubernetes Operator 监控多个命名空间,以及您将 Kubernetes Operator 安装在与 Kubernetes Operator 监控资源的命名空间不同的命名空间中。
使用每个 Kubernetes 集群使用单个服务帐户,优化成员 Kubernetes 集群中的角色和权限设置,并为每个受监视的命名空间正确配置角色和角色绑定(不需要集群角色)。
通过每24小时触发一次的基于时间的核对,扩展现有的基于事件的核对流程。 这可确保所有监控代理始终及时升级。
OpenShift 和 OLM Operator:删除了对集群范围权限的要求。 以前,Kubernetes Operator 需要这些权限来配置准入 Webhook。 从此版本开始,Webhook 由 OLM 自动配置。
为 Kubernetes Operator 添加可选的
MDB_WEBHOOK_REGISTER_CONFIGURATION
环境变量。 该变量控制 Kubernetes Operator 是否应执行自动准入 Webhook 配置。 默认值为true
。 对于 OLM 和 OpenShift 部署,该变量设置为false
。
Helm Chart 安装更改
将默认值
agent.version
更改为107.0.0.8502-1
。 这会更改使用 Helm Chart 安装的 Kubernetes Operator 部署中使用的默认代理。添加
operator.additionalArguments
变量(默认值为[]
,以允许您为 Kubernetes Operator 二进制文件传递其他参数。添加
operator.createResourcesServiceAccountsAndRoles
变量(默认值为true
,以控制是否为MongoDB
和OpsManager
资源安装角色和服务帐号。 当您使用kubectl mongodb
插件为多 Kubernetes 集群部署配置 Kubernetes Operator 时,该插件会安装所有必要的角色和服务帐户。 因此,为避免冲突,在某些情况下,请勿使用 Kubernetes Operator Helm 图表安装这些角色。
缺陷修复
MongoDBMultiCluster资源:修复了 Kubernetes Operator 报告
spec.externalAccess.externalDomain
和spec.clusterSpecList[*].externalAccess.externalDomains
字段为必填字段(即使未使用)的问题。 如果自定义资源包含已定义的spec.externalAccess
结构,Kubernetes Operator 会过早触发对这些字段的验证。 从此版本开始,仅当您在spec.externalAccess.externalDomain
或spec.clusterSpecList[*].externalAccess.externalDomains
设置中定义外部域时,Kubernetes Operator 才会检查外部域的唯一性。MongoDB资源:修复了一个错误:删除
MongoDB
资源后,相关MongoDB Ops Manager或Cloud Manager实例上仍保留设置的controlledFeature
策略,导致在丢失Kubernetes Operator 时无法在用户界面中进行清理。OpsManager资源:修复了删除
OpsManager
自定义资源时admin-key
密钥被删除的问题。 修复admin-key
密钥删除问题可以更轻松地重新安装MongoDB Ops Manager 。MongoDB 就绪探针:修复了就绪探针的误导性错误消息:
"... kubelet Readiness probe failed:..."
。 这会影响所有 MongoDB 部署。Operator :修复了在某些情况下,在与
OpsManager
自定义资源通信时 Kubernetes Operator 跳过 TLS 验证(即使您启用了 TLS)的情况。
改进
Kubectl 插件 :现已对已发布的
kubectl mongodb
插件二进制文件进行签名,并且签名与 发布资产 一起发布 。可以在此地址获取公钥。 已发布的kubectl mongodb
插件二进制文件也针对 MacOS 进行了公证。已发布映像已签名:为 Kubernetes Operator 发布的所有容器映像均经过加密签名。 这在 MongoDB Quay 注册表。您可以使用 MongoDB 公钥验证签名。 可通过此地址获取已发布的映像。
MongoDB Enterprise Kubernetes Operator 1.24 系列
MongoDB Enterprise Kubernetes Operator 1.24.0
已发布2023 - 12 - 21
MongoDBOpsManager Resource
新增功能
添加了对即将发布的MongoDB Ops Manager 7.0.x 的支持 系列。
缺陷修复
修复无法正确终止备份的问题。
MongoDB Enterprise Kubernetes Operator 1.23 系列
MongoDB Enterprise Kubernetes Operator 1.23.0
发布日期:2023 年 11 月 13 日
警告和重大更改
将组件映像版本号与 Kubernetes Operator 版本标签保持一致,以便清楚哪些映像与哪个版本的 Kubernetes Operator 匹配。这会影响以下映像:
quay.io/mongodb/mongodb-enterprise-database-ubi
quay.io/mongodb/mongodb-enterprise-init-database-ubi
quay.io/mongodb/mongodb-enterprise-init-appdb-ubi
quay.io/mongodb/mongodb-enterprise-init-ops-manager-ubi
要学习;了解更多信息,请参阅 MongoDB Enterprise Kubernetes Operator kubectl 和 oc 安装设置和 MongoDB Enterprise Kubernetes Operator Helm 安装设置。
将
spec.exposedExternally
(在 Kubernetes Operator 1.19 中已弃用)替换为spec.externalAccess
。
缺陷修复
修复当成员集群失去连接时,在多 Kubernetes 集群 MongoDB 部署中扩展副本集的问题。 该修复涉及手动和自动恢复过程。
修复更改自动化代理和 MongoDB 审核日志的名称导致它们无法发送到 Kubernetes Pod 日志的问题。从 Kubernetes Operator 1.22 开始,MongoDB 审核日志的文件名没有限制。
允许以下新日志类型从
mongodb-enterprise-database
容器直接流式传输到 Kubernetes 日志:agent-launcher-script
monitoring-agent
backup-agent
修复了无法将
MongoDBUser
资源存储在spec.mongodbResourceRef.namespace
中设置的命名空间中的问题。
MongoDB Enterprise Kubernetes Operator 1.22 系列
MongoDB Enterprise Kubernetes Operator 1.22.0
发布日期:2023 年 9 月 21 日
重大更改
Kubernetes Operator 不再对所有自定义资源使用 Reconciling
状态。大多数情况下,此状态已替换为 Pending
和相应的消息。如果将监控工具与通过 Kubernetes Operator 部署的自定义 MongoDB 资源结合使用,您可能需要调整仪表盘和警报规则才能使用 Pending
状态名称。
MongoDBOpsManager Resource
改进
通过将以下新字段添加到 资源,添加对在应用程序数据库的 助手上配置 logRotate MongoDB Agent
MongoDBOpsManager
的支持:spec.applicationDatabase.agent.logRotate
spec.applicationDatabase.agent.logRotate.numTotal
spec.applicationDatabase.agent.logRotate.numUncompressed
spec.applicationDatabase.agent.logRotate.percentOfDiskspace
spec.applicationDatabase.agent.logRotate.sizeThresholdMB
spec.applicationDatabase.agent.logRotate.timeThresholdHrs
现在,您可以使用
MongoDBOpsManager
资源中的以下新字段配置系统日志,将日志发送到默认/var/log/mongodb-mms-automation
目录以外的自定义位置:改进了多 Kubernetes 集群 MongoDB 部署中应用程序数据库集群的处理。
在上个版本中,为了缩小进程,Kubernetes Operator 需要连接到 Kubernetes 集群。由于全集群宕机,这可能会阻碍协调进程。
在此版本中,Kubernetes Operator 可以成功管理剩余的健康集群,前提是它们拥有多数投票来选举主节点。Kubernetes Operator 不会从自动化配置和副本集配置中删除关联的进程。仅当您从
spec.applicationDatabase.clusterSpecList
中删除相应集群或将集群节点数更改为 0 时,Kubernetes Operator 才会删除这些进程。当 Kubernetes Operator 删除这些进程时,它会通过一次删除一个与该集群关联的进程来缩小副本集。
MongoDB
Resource
改进
当自定义资源长时间处于
Pending
(待处理)或Failed
(已失败)状态时,为MongoDB
资源添加自动恢复机制。此外,还引入以下环境变量:要了解更多信息,请参阅恢复因自动化配置损坏而造成的资源损失。
允许您将
MongoDB
资源的审核日志路由到 Kubernetes Pod 日志。确保将MongoDB
资源的审核日志写入/var/log/mongodb-mms-automation/mongodb-audit.log
文件。托管资源的 Pod 监控此文件并将内容附加到其 Kubernetes 日志中。要将审核日志发送到 Kubernetes Pod 日志,请在
MongoDB
资源中使用以下示例配置:spec: additionalMongodConfig: auditLog: destination: file format: JSON path: /var/log/mongodb-mms-automation/mongodb-audit.log Kubernetes Operator 在 Pod 日志中使用
mongodb-audit
键标记审核日志条目。要提取审核日志条目,请使用与以下示例类似的命令:
kubectl logs -c mongodb-enterprise-database replica-set-0 | \ jq -r 'select(.logType == "mongodb-audit") | .contents'
缺陷修复
修复了无法针对分片群集将 spec.backup.autoTerminateOnDeletion
设置设置为 true
的问题。此设置控制在您删除 MongoDB 资源时 Kubernetes Operator 是否停止并终止备份。如果省略,则默认值为 false
。
MongoDB Enterprise Kubernetes Operator 1.21 系列
MongoDB Enterprise Kubernetes Operator 1.21.0
发布日期:2023 年 8 月 25 日
重大更改
将环境变量
CURRENT_NAMESPACE
重命名为NAMESPACE
。该变量追踪 Kubernetes Operator 的命名空间。如果您通过编辑MongoDB
资源设置此变量,请在升级 Kubernetes Operator时将CURRENT_NAMESPACE
更新为NAMESPACE
。
缺陷修复
修复
StatefulSet
重写标签无法重写StatefulSet
的问题。
改进
支持为
MongoDBMultiCluster
资源配置应用程序数据库和 MongoDB 的备份。添加有关在 GitOps 环境中配置
MongoDBMultiCluster
资源部署的文档。要了解更多信息,请参阅“为 GitOps 配置资源”。将
MetadataWrapper
(标签和注解包装器)添加到MongoDB
资源、MongoDBMultiCluster
资源和MongoDBOpsManager
资源。包装器支持重写metadata.Labels
和metadata.Annotations
。
MongoDBOpsManager Resource
重大变更和弃用
appdb-ca
不会自动添加到 Ops Manager 中的 JVM 信任存储中。appdb-ca
是保存在spec.applicationDatabase.security.tls.ca
中指定的 ConfigMap 中的 CA。如果出现以下情况,这会影响您:您可以对
appdb-ca
和 S3 快照存储使用相同的自定义证书。您使用的是早于 1.17.0 版本的 Kubernetes Operator,或者您已经将自己的信任存储安装到 Ops Manager。
如果您需要为
appdb-ca
和 S3 快照存储使用相同的自定义证书,请使用spec.backup.s3Stores.customCertificateSecretRefs
指定证书颁发机构。弃用
spec.backup.s3Stores.customCertificate
和spec.backup.s3OpLogStores.customCertificate
设置。改用spec.backup.s3OpLogStores.customCertificateSecretRefs
和spec.backup.s3Stores.customCertificateSecretRefs
。
缺陷修复
修复了使用
LoadBalancer
服务类型向外部公开 Ops Manager 时无法为spec.externalConnectivity.port
设置任意端口号的问题。通过允许 Kubernetes Operator 将
appdb-ca
(CA 捆绑包)导入 Ops Manager JVM 信任存储中,修复导致 Ops Manager 拒绝证书的问题。
改进
通过向
MongoDBOpsManager
资源添加以下新字段,支持跨多个 Kubernetes 集群使用高度可用的应用程序数据库配置MongoDBOpsManager
资源:新的可选
spec.applicationDatabase.topology
字段的默认值为singleCluster
,如果省略该字段,则使用该默认值。要升级到 Kubernetes Operator 1.21,您无需更新MongoDBOpsManager
资源。这使得添加的spec.applicationDatabase.topology
设置能够向后兼容应用程序数据库的单个 Kubernetes 集群部署。要了解详情,请参阅部署 Ops Manager 资源和 Ops Manager 资源规范。允许您使用
MongoDBOpsManager
资源中的spec.backup.s3Stores.customCertificateSecretRefs
和spec.backup.s3OpLogStores.customCertificateSecretRefs
字段为 S3 快照存储中的备份添加自定义证书列表。