MongoDB Enterprise Kubernetes Operator 1.29 系列
MongoDB Enterprise Kubernetes Operator 1.29.0
已发布2024 - 11 - 11
新增功能
- AppDb:通过增加Kubernetes - persistentVolumeClaims的容量,添加对存储自动扩展的支持。要学习;了解更多信息,请参阅增加持久卷的存储空间。- 仅当根本的Kubernetes - storageClass支持Kubernetes- persistentVolume扩展时,才支持- persistentVolumeClaims的自动扩展。 确保您的- storageClass支持就地扩展而不会丢失数据。
缺陷修复
- MongoDB 、 AppDB 、 MongoDBMultiCluster :修复了一个错误:为存储卷的大小指定小数(例如 - 1.7Gi)会中断该资源的协调循环,并显示错误- Can't execute update on forbidden fields,即使根本的持久卷声明已成功部署。
- MongoDB 、 MongoDBMultiCluster 、 OpsManager 、 AppDB :提高 TLS 轮换期间部署的稳定性。在部署的 StatefulSet 正在进行协调且发生 TLS 轮换的情况下,部署将达到损坏状态。 部署现在会将以前的 TLS 证书与新证书一起存储。 
MongoDB Enterprise Kubernetes Operator 1.28 系列
MongoDB Enterprise Kubernetes Operator 1.28.0
已发布2024 - 10 - 02
新增功能
- (公共预览版) MongoDB资源:通过在使用 - spec.type=ShardedCluster创建MongoDB资源时设置- spec.topology=MultiCluster,引入支持跨多分片的集群MongoDB部署的分片集群的支持。 要学习;了解更多信息,请参阅多集群分片集群。
- MongoDB和MongoDBMultiCluster资源:通过增加Kubernetes - persistentVolumeClaims的容量,添加对存储自动扩展的支持。 要学习;了解更多信息,请参阅增加持久卷的存储空间。- 仅当根本的Kubernetes - storageClass支持Kubernetes- persistentVolume扩展时,才支持- persistentVolumeClaims的自动扩展。 确保您的- storageClass支持就地扩展而不会丢失数据。
 
- OpsManager资源:引入支持MongoDB Ops Manager 8.0.0 的支持。 
- MongoDB和MongoDBMultiCluster资源:引入支持MongoDB 8.0.0的支持。 
- MongoDB和MongoDBMultiCluster应用程序数据库资源:更改数据库的 - spec.featureCompatibilityVersion默认行为:- 当您升级MongoDB版本时, Kubernetes Operator 会将 - spec.featureCompatibilityVersion设为要升级的版本,以便您可以在必要时选择降级。
- 如果您希望特征兼容性版本与新的MongoDB版本匹配,则必须手动设立 - featureCompatibilityVersion设置为新的MongoDB版本或- AlwaysMatchVersion。
 
- 更新容器映像以使用Red Hat UBI 9作为基本映像,但 - mongodb-enterprise-database-ubi除外,该映像保留在- UBI8上以支持在 MongoDB 6 上运行的工作负载。0。4和更早的时间。- UBI 8映像仅用于默认的非静态架构。 对于完整的 UBI 9设置,请使用静态容器。 要学习;了解更多信息,请参阅静态容器(公共预览版)。 
 
缺陷修复
- MongoDB 、 AppDB和MongoDBMultiCluster资源:修复了 - init容器未获取默认安全上下文(随后由安全策略标记)的错误。
- MongoDBMultiCluster资源:修复了资源验证未作为协调循环的一部分执行的错误。 
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。从此发布开始,OLM 自动配置 Webhook。 
- 为 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 快照存储中的备份添加自定义证书列表。
旧发布说明
要查看旧版本操作符的发布说明,请单击此处。