Docs 菜单
Docs 主页
/
MongoDB Enterprise Kubernetes Operator

MongoDB Enterprise Kubernetes Operator 发布说明

在此页面上

  • MongoDB Enterprise Kubernetes Operator 1.29 系列
  • MongoDB Enterprise Kubernetes Operator 1.28 系列
  • 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 系列
  • 旧发布说明

已发布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 证书与新证书一起存储。

已发布2024 - 10 - 02

  • (公共预览版) MongoDB资源:通过在使用spec.type=ShardedCluster创建MongoDB资源时设置spec.topology=MultiCluster ,引入支持跨多分片的集群MongoDB部署的分片集群的支持。 要学习;了解更多信息,请参阅多集群分片集群。

  • MongoDBMongoDBMultiCluster资源:通过增加Kubernetes persistentVolumeClaims的容量,添加对存储自动扩展的支持。 要学习;了解更多信息,请参阅增加持久卷的存储空间。

    • 仅当根本的Kubernetes storageClass支持Kubernetes persistentVolume扩展时,才支持persistentVolumeClaims的自动扩展。 确保您的storageClass支持就地扩展而不会丢失数据。

  • OpsManager资源:引入支持MongoDB Ops Manager 8.0.0 的支持。

  • MongoDBMongoDBMultiCluster资源:引入支持MongoDB 8.0.0的支持。

  • MongoDBMongoDBMultiCluster应用程序数据库资源:更改数据库的spec.featureCompatibilityVersion默认行为:

    • 当您升级MongoDB版本时, Kubernetes Operator 会将spec.featureCompatibilityVersion设为要升级的版本,以便您可以在必要时选择降级。

    • 如果您希望特征兼容性版本与新的MongoDB版本匹配,则必须手动设立featureCompatibilityVersion设置为新的MongoDB版本或AlwaysMatchVersion

  • 更新容器映像以使用 Red Hat UBI9 作为基础映像,但 除外,它保留在mongodb-enterprise-database-ubi UBI8上以支持在MongoDB6 上运行的工作负载。0 。4和更早的时间。

    • UBI 8映像仅用于默认的非静态架构。 对于完整的 UBI 9设置,请使用静态容器。 要学习;了解更多信息,请参阅静态容器(公共预览版)。

  • MongoDBAppDBMongoDBMultiCluster资源:修复了init容器未获取默认安全上下文(随后由安全策略标记)的错误。

  • MongoDBMultiCluster资源:修复了资源验证未作为协调循环的一部分执行的错误。

已发布2024 - 08 - 27

  • MongoDB资源:添加了对为MongoDB进程、监控代理和备份代理启用日志轮换的支持。 要学习;了解更多信息,请参阅MongoDB CRD 日志轮换设置。

    使用以下设置来配置每个组件的日志轮换:

    对于分片集群, 分片的 Operator 仅支持在spec.Agent设置下配置日志轮换,Kubernetes支持按进程类型(例如mongosconfigsrv配置日志轮换。

  • 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

  • 代理启动器:修复了在某些重新同步情况下, /journal中的日志数据可能已损坏的问题。 现在,助手可确保不存在冲突的日志数据,并优先处理来自/data/journal的数据。 要停用此行为,请将Kubernetes Operator 中的环境变量MDB_CLEAN_JOURNAL设立为1以外的任何值。

  • MongoDBAppDBMongoDBMulti资源:修复了一个问题,确保在connectionString中使用外部域(如果配置)。

  • MongoDB资源:如果您提供的 Horizon 配置短于成员数量,则会删除紧急响应。 现在,在这种情况下, Kubernetes Operator 会在MongoDB资源状态中发出描述性错误。

  • MongoDB资源:修复了以下问题:在以另一个项目前缀命名的新项目中创建资源时会失败,从而导致无法创建MongoDB资源。

已发布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.requestsoperator.resources.limits 。 要学习;了解更多信息,请参阅Kubernetes文档中的 Pod和容器的资源管理

  • 新增支持OpenShift 4.15的支持。 要学习;了解更多信息,请参阅MongoDB Enterprise Kubernetes Operator 兼容性。

  • 添加了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

已发布2024 - 04 - 30

  • 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 资源。

  • (公共预览版) MongoDBOpsManager资源:为所有类型的部署引入可选的静态容器(公共预览版)

    • 在此版本中,仅将静态容器用于测试目的。 静态容器可能会成为后续版本中的默认容器。

    • 要激活静态容器模式,请将Kubernetes Operator 级别的MDB_DEFAULT_ARCHITECTURE环境变量设立为static 。 或者,使用mongodb.com/v1.architecture: "static"注释特定的MongoDBOpsManager自定义资源。

    • Kubernetes Operator 支持静态和非静态架构之间的无缝迁移。 要了解详情,请参阅:

  • OpsManager资源:添加spec.internalConnectivity字段以允许覆盖 Kubernetes Operator 所使用的服务,从而确保与OpsManager资源托管 Pod 的内部连接。

  • MongoDB资源:您可以恢复由于分片集群中的自动化配置损坏而导致的资源。 在以前的版本中,您可以恢复其他类型的资源,但不能恢复分片集群。 要了解更多信息,请参阅恢复因自动化配置损坏而导致的资源。

  • MongoDBMongoDBMultiCluster资源:这些资源现在允许您在外部服务中添加占位符。

    • 您可以定义 注解 用于Kubernetes Operator托管的外部服务,其中包含占位符,这些占位符将自动替换为正确的值。以前, Kubernetes Operator 会为每个 Pod 创建的所有外部服务配置相同的注释。 从此发布开始,您可以添加占位符,以便Kubernetes Operator 可以使用与每个特定 Pod 相关且唯一的值在每个服务中自定义注解。 要学习;了解详情,请参阅:

  • 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

  • 将默认值agent.version更改为107.0.0.8502-1 。 这会更改使用 Helm Chart 安装的 Kubernetes Operator 部署中使用的默认代理。

  • 添加operator.additionalArguments变量(默认值为[] ,以允许您为 Kubernetes Operator 二进制文件传递其他参数。

  • 添加operator.createResourcesServiceAccountsAndRoles变量(默认值为true ,以控制是否为MongoDBOpsManager资源安装角色和服务帐号。 当您使用kubectl mongodb插件为多 Kubernetes 集群部署配置 Kubernetes Operator 时,该插件会安装所有必要的角色和服务帐户。 因此,为避免冲突,在某些情况下,请勿使用 Kubernetes Operator Helm 图表安装这些角色。

  • MongoDBMultiCluster资源:修复了 Kubernetes Operator 报告spec.externalAccess.externalDomainspec.clusterSpecList[*].externalAccess.externalDomains字段为必填字段(即使未使用)的问题。 如果自定义资源包含已定义的spec.externalAccess结构,Kubernetes Operator 会过早触发对这些字段的验证。 从此版本开始,仅当您在spec.externalAccess.externalDomainspec.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 公钥验证签名。 可通过此地址获取已发布的映像。

已发布2023 - 12 - 21

  • 添加了对即将发布的MongoDB Ops Manager 7.0.x 的支持 系列。

  • 修复无法正确终止备份的问题。

发布日期:2023 年 11 月 13 日

  • 修复当成员集群失去连接时,在多 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 中设置的命名空间中的问题。

发布日期:2023 年 9 月 21 日

Kubernetes Operator 不再对所有自定义资源使用 Reconciling 状态。大多数情况下,此状态已替换为 Pending 和相应的消息。如果将监控工具与通过 Kubernetes Operator 部署的自定义 MongoDB 资源结合使用,您可能需要调整仪表盘和警报规则才能使用 Pending 状态名称。

  • 通过将以下新字段添加到 资源,添加对在应用程序数据库的 助手上配置 logRotate MongoDB AgentMongoDBOpsManager的支持:

    • 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 删除这些进程时,它会通过一次删除一个与该集群关联的进程来缩小副本集。

  • 当自定义资源长时间处于 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

发布日期: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.Labelsmetadata.Annotations

  • 修复了使用 LoadBalancer 服务类型向外部公开 Ops Manager 时无法为 spec.externalConnectivity.port 设置任意端口号的问题。

  • 通过允许 Kubernetes Operator 将 appdb-ca(CA 捆绑包)导入 Ops Manager JVM 信任存储中,修复导致 Ops Manager 拒绝证书的问题。

要查看旧版本操作符的发布说明,请单击此处。