Docs 菜单

Docs 主页MongoDB Enterprise Kubernetes Operator

MongoDB Enterprise Kubernetes Operator 发布说明

在此页面上

已发布2023 - 12 - 21

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

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

发布日期:2023 年 11 月 13 日

  • 修复在 multi-Kubernetes-cluster 部署中,当节点集群失去连接时扩展副本集的问题。此修复可以解决手动和自动恢复程序。

  • 修复更改自动化代理和 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 状态名称。

  • 当自定义资源长时间处于 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 拒绝证书的问题。

发布日期:2023 年 06 月 07 日

此版本修复了无法在 OpenShift 中将 Kubernetes Operator 升级到 1.20.0 的问题。

  • 删除超过两年前已弃用的 appdb.connectionSpec.Project

  • 修复 MongoDBMultiCluster 资源无法监视 Ops Manager 的连接 ConfigMap 和密钥的问题。

  • 修复对轮换 clusterfile 密钥的支持,该密钥用于 MongoDBMongoDBMultiCluster 资源中的内部 X.509 身份验证。

  • 通过引入 spec.applicationDatabase.memberConfig.votesspec.applicationDatabase.memberConfig.priorityspec.applicationDatabase.memberConfig.tags 设置添加对投票、优先级和标签的支持。

  • 将应用程序数据库映像的容器注册表从 quay.io/mongodb/mongodb-enterprise-appdb-database-ubi 更改为 quay.io/mongodb/mongodb-enterprise-server。升级到此版本时,会导致以下更改:

    • 应用程序数据库映像 values.mongodb.name 的 Helm Charts 设置默认为 mongodb-enterprise-server

    • Kubernetes Operator 更新应用程序数据库副本集 Pod,以使用 values.mongodb.name Helm 设置中引用的新映像。假设 MongoDB 版本相同,新映像在功能上与之前的映像相同。

    • Kubernetes Operator 会自动将引用新容器注册表的所有应用程序数据库映像的标签后缀从 -ent 更新为 -ubi8,或者更新为 MDB_IMAGE_TYPEmongodb.imageType 中设置的后缀。例如,Kubernetes Operator 将 quay.io/mongodb/mongodb-enterprise-server:4.4.5-ent 更改为 quay.io/mongodb/mongodb-enterprise-server:4.4.5-ubi8。您无需更新 MongoDBOpsManager 资源中的 applicationDatabase.version 设置。

    • 可以将 MDB_APPDB_ASSUME_OLD_FORMATmongodb.appdbAssumeOldFormat 设置为 true,阻止 Kubernetes Operator 自动更新标签后缀。例如,如果要从自己的存储库镜像此映像,则可能需要停止自动更改后缀。

  • 添加了对在 spec.applicationDatabase.version 中指定不带后缀的版本的支持。例如,您可以指定版本,例如 6.0.5,而不添加 -ubi8 后缀。Kubernetes Operator 会自动将其转换为 6.0.5-${MDB_IMAGE_TYPE}MDB_IMAGE_TYPE 环境变量的默认值为 -ubi8

  • 将所有镜像更改为默认引用 UBI 变体。新镜像的后缀为 -ubi

    • quay.io/mongodb/mongodb-enterprise-database-ubi

    • quay.io/mongodb/mongodb-enterprise-init-database-ubi

    • quay.io/mongodb/mongodb-enterprise-ops-manager-ubi

    • quay.io/mongodb/mongodb-enterprise-init-ops-manager-ubi

    • quay.io/mongodb/mongodb-enterprise-init-appdb-ubi

    • quay.io/mongodb/mongodb-agent-ubi

    • quay.io/mongodb/mongodb-enterprise-appdb-database-ubi

  • 默认情况下,将 values.mongodb.name 设置为 quay.io/mongodb/mongodb-enterprise-server,即默认应用程序数据库映像存储库使用官方 MongoDB Enterprise 存储库。

  • 引入 values.mongodb.imageType 环境变量来重写 MongoDBOpsManager 资源使用的新的默认 -ubi8 应用程序数据库映像标签后缀。

发布日期:2023 年 06 月 07 日

警告

升级至 1.20.1

此版本 (1.20.0) 与 Openshift Marketplace 上的一个损坏版本相关。不要升级到 1.20.0,而是升级到 1.20.1 版本。

发布日期:2023 年 3 月 30 日

此版本修复了导致 Kubernetes Operator 无法升级到 1.19.0 的问题。升级到此版本。

data.orgId 设为 MongoDB 资源的 ConfigMap 的必填字段。如果您提供空的 orgId,例如:orgId = "",Ops Manager 会使用项目名称创建组织。在将 Kubernetes Operator 升级到 1.19.1 之前,请在 Ops Manager ConfigMap 中设置 orgId:"" 并重新应用。

  • 引入 multi-Kubernetes-cluster 部署。要了解更多信息,请参阅在多个 Kubernetes 集群上部署 MongoDB 资源

    与 Kubernetes Operator 1.18.x 中的 multi-Kubernetes-cluster 部署支持 Beta 版本相比,对 multi-Kubernetes-cluster 部署支持进行以下更改:

    • 将 Beta 版本中的 MongoDBMulti 资源重命名为 MongoDBMultiCluster 资源。

    • MongoDBMultiCluster 资源的快捷方式名称重命名为 mdbmc。在 MongoDBMultiCluster 资源上的所有命令中使用此快捷方式名称。例如,要检查 MongoDBMultiCluster 资源的状态,请运行:

      kubectl get mdbmc <resource-name> -o yaml -w
    • 将“多集群 CLI”工具重命名为“kubectl mongodb 插件”。要了解更多信息,请参阅 MongoDB 插件参考

    • MongoDBMultiCluster 资源规范的 clusterSpecList 中删除不必要的中间对象 clusterSpecs。有关 MongoDBMultiCluster 资源配置文件的有效示例,请参阅“Kubernetes 多集群资源规范”。

  • 添加了对 Kubernetes 1.26 和 OpenShift 4.12 的支持。如需更多信息,请参阅 MongoDB Enterprise Kubernetes Operator 兼容性

  • 允许您通过在每个分片的 spec.shardSpecificPodSpec 设置下指定一个 podSpecs 数组,为 MongoDB 分片集群中的每个分片配置 podSpec

  • data.orgId 设为 MongoDB 资源的 ConfigMap 的必填字段。如果您提供空的 orgId,例如:orgId = " ",Ops Manager 会使用项目名称创建组织。

  • 添加多 Kubernetes 集群资源规范的文档。

  • 将 Kubernetes Operator 的常见问题添加到文档中。

  • 添加在 Kubernetes Operator MongoDB 部署中配置文件系统备份存储的文档。

  • 修复了多 Kubernetes 集群部署的 WATCH_NAMESPACE='*' 环境变量的处理。在以下情况下,节点集群的 API 客户端配置不正确,导致部署错误:

    • 为多 Kubernetes 集群部署指定了 WATCH_NAMESPACE='*' 环境变量。

    • kubeconfig 中为成员集群设置了特定命名空间。

    • kubectl mongodb 插件未用于配置多 Kubernetes 集群部署。

    这会导致以下错误:

    The secret object 'mdb-multi-rs-cert' does not contain all the valid
    certificates needed: secrets "mdb-multi-rs-cert-pem" already exists

    要避免此问题,请将 WATCH_NAMESPACE 环境变量设置为特定命名空间,而不是 '*',并验证节点集群的 kubeconfig 设置是否未指定命名空间。要为 multi-Kubernetes-cluster 部署设置命名空间,请参阅设置部署范围MongoDB 插件参考

  • 修复设置了 CertificatesSecretsPrefix(证书)但未提供相关的 spec.security.tls 设置(例如 tls.additionalCertificateDomainstls.ca)的问题。

  • 修复允许您在不使用 TLS 时为 spec.security.authentication.ldap.transportSecurity 显式指定 none 值的问题。以前,当您省略该值且未指定 tls 值时,Kubernetes Operator 会将此设置视为 none,但 Kubernetes Operator 不允许您显式指定 none 值。

发布日期:2023 年 3 月 28 日

警告

请勿升级到 1.19.0。相反,升级到 1.19.1

此版本与 Openshift Marketplace 上的一个损坏版本相关。不要升级到此版本 (1.19.0),而是升级到 Kubernetes Operator 1.19.1 版本。

该版本移除了基于 Ubuntu 的映像。在 1.17.0 中,Kubernetes Operator 中基于 Ubuntu 的映像已被弃用,取而代之的是基于 UBI 的映像。将 Kubernetes Operator 从基于 Ubuntu 的映像迁移到基于 UBI 的映像。所有基于 Ubuntu 的现有映像将继续得到支持,直到其版本的生命周期结束(EOL)日期

发布日期:2022 年 12 月 29 日

  • 修复以下问题:配置活性探测器并在终止 MongoDB 助手进程时报告阳性结果。这可能会导致托管 MongoDB 资源的 Pod 在没有 MongoDB 助手的情况下运行。除了此修复之外,请考虑配置就绪情况探测器覆盖

  • 修复数据库 Pod 中的启动脚本,该脚本可能会在 Pod 重启时报告错误。

发布日期:2022 年 10 月 18 日

  • 修复 v1.17.1 发布说明中提到的 OpenShift 安装问题。Kubernetes Operator Lifecycle Manager 升级图表会自动跳过 v1.17.1 版本,并直接从 v1.17.0 升级到此版本。

  • 通过为具有某些默认值的 MongoDB 和 OpsManager 自定义资源添加启动探测器,提高升级的可靠性。使用 spec.podSpec.podTemplate 覆盖探测器配置。

发布日期:2022 年 10 月 10 日

警告

OpenShift 的安装

这个版本在认证包的 CSV 文件中引用了无效的 quay.io 摘要。当您在 quay.io 中从认证包 (OperatorHub) 安装或升级 Kubernetes Operator 时,这只会影响 OpenShift 部署。

如果您将 Kubernetes Operator 与 OpenShift 结合使用,我们建议不要升级到此版本 (v1.17.1),而是升级到 Kubernetes Operator v1.17.2,该版本将于 2022 年 10 月 17 日开始的一周发布。

由于此问题,安装此版本可能会导致托管 Ops Manager 数据库 AppDB 的 Pod 出现 ImagePullBackOff 错误。错误如下所示:

Failed to pull image "quay.io/mongodb/mongodb-agent-ubi@sha256:a4cadf209ab87eb7d121ccd8b1503fa5d88be8866b5c3cb7897d14c36869abf6": rpc error: code = Unknown desc = reading manifest sha256:a4cadf209ab87eb7d121ccd8b1503fa5d88be8866b5c3cb7897d14c36869abf6 in quay.io/mongodb/mongodb-agent-ubi: manifest unknown: manifest unknown

要继续使用 Kubernetes Operator v1.17.1,请使用以下解决方法并使用以下 spec.config.env 更新 Kubernetes Operator 订阅:

spec:
config:
env:
- name: AGENT_IMAGE
value: >-
quay.io/mongodb/mongodb-agent-ubi@sha256:ffa842168cc0865bba022b414d49e66ae314bf2fd87288814903d5a430162620
- name: RELATED_IMAGE_AGENT_IMAGE_11_0_5_6963_1
value: >-
quay.io/mongodb/mongodb-agent-ubi@sha256:e7176c627ef5669be56e007a57a81ef5673e9161033a6966c6e13022d241ec9e
- name: RELATED_IMAGE_AGENT_IMAGE_11_12_0_7388_1
value: >-
quay.io/mongodb/mongodb-agent-ubi@sha256:ffa842168cc0865bba022b414d49e66ae314bf2fd87288814903d5a430162620
- name: RELATED_IMAGE_AGENT_IMAGE_12_0_4_7554_1
value: >-
quay.io/mongodb/mongodb-agent-ubi@sha256:3e07e8164421a6736b86619d9d72f721d4212acb5f178ec20ffec045a7a8f855

安装新的 Kubernetes Operator v1.17.2 后立即删除此解决方法。

此版本具有以下额外重大更改:

  • 从 Kubernetes Operator Helm 图表中删除 operator.deployment_name 参数。在以前的版本中,您可能已使用此参数自定义 Kubernetes Operator 容器的名称。

    从此版本开始,operator.name Helm 图表参数的值决定 Kubernetes Operator 容器的名称。

    仅当您将 operator.deployment_name 设置为与 operator.name 不同的值并且将工具配置为依赖于 operator.deployment_name 的值时,这才是重大更改。

  • 在 OpenShift 上使用了 Quay 作为 Kubernetes Operator 的映像注册表。升级 Kubernetes Operator 部署时,它会自动从 Quay 拉取新映像。您无需采取任何行动。

发布日期:2022 年 9 月 19 日

此版本:

发布日期:2022 年 8 月 3 日

  • Init-Ops-Manager 和 Operator 二进制文件现在使用 Go 1.18.4,解决了安全问题。

发布日期:2022 年 7 月 15 日

  • 修复以下错误:在 Pod 级别定义的 securityContext 不受尊重,因为 Kubernetes Operator 在容器级别使用 securityContext 覆盖它。要了解详情,请参阅 spec.persistent 设置的说明。

  • spec.security.authentication.ldap 对象添加 timeoutMSuserCacheInvalidationInterval 字段。

  • 修复配置 ShardedCluster 资源时忽略 mongosconfigSrvshard 对象的 additionalMongodConfig.net.tls.mode 设置的行为。

发布日期:2022 年 6 月 28 日

警告

重大更改

此版本删除了 WiredTiger 缓存计算,这是 4.0.9 之前的 MongoDB 版本的必要设置。在升级到此版本之前,您必须升级数据库部署,以使用 MongoDB 版本 4.0.9 或更高版本。

要了解如何升级部署,请参阅升级 MongoDB 版本和 FCV

  • 删除 spec.podSpec.podAntiAffinityTopologyKeyspec.podSpec.podAffinityspec.podSpec.nodeAffinity 设置。

    请改用 spec.podSpec.podTemplate 配置这些参数。

  • 删除 spec.applicationDatabase.podSpec.podAntiAffinityTopologyKeyspec.applicationDatabase.podSpec.podAffinityspec.applicationDatabase.podSpec.nodeAffinity 设置。

    请改用 spec.applicationDatabase.podSpec.podTemplate 配置这些参数。

在多 Kubernetes 集群部署中添加了对 LDAP 客户端身份验证以及使用 LDAP 管理数据库用户的支持。

此功能是 Beta 版本。仅在开发环境中使用多 Kubernetes 集群部署。

发布日期:2022 年 5 月 24 日

发布日期:2022 年 4 月 29 日

  • 删除 spec.security.tls.secretRef.name 参数。

    • Kubernetes Operator 版本 v1.10.0 已弃用此参数。

    • 要指定包含数据库证书的密钥名称,请使用 spec.security.certsSecretPrefix

    • 相应地创建包含证书的密钥。

  • 删除 spec.podSpec.cpuspec.podSpec.memory 参数。

    要覆盖数据库 Pod 的 CPU/内存资源,请设置 spec.podSpec.podTemplate.spec.containers 下的 statefulset 参数。

  • metadata.labels 下指定的自定义标签传播到数据库 StatefulSet永久卷声明对象。

  • 允许使用 spec.prometheus 配置属性将 Prometheus 抓取端点添加到 MongoDB 资源。

    • GitHub 存储库中查找 Prometheus 配置示例。

  • 删除 spec.applicationDatabase.security.tls.secretRef.name 参数。

  • 删除 spec.applicationDatabase.podSpec.cpuspec.applicationDatabase.podSpec.memory

    要覆盖 AppDB Pod 的 CPU/内存资源,请使用 spec.applicationDatabase.podSpec.podTemplate.spec.containers 下的 statefulset 参数。

  • metadata.labels 下指定的自定义标签传播到 Ops Manager、AppDB 和 BackupDaemon StatefulSets 以及持久卷声明对象。

  • 允许使用 spec.applicationDatabase.prometheus 配置属性将 Prometheus 抓取端点添加到 ApplicationDatabase 资源。

添加可选参数 spec.connectionStringSecretName。此参数为 Kubernetes Operator 生成的用户特定连接字符串密钥提供确定性密钥名称。

发布日期:2022 年 3 月 24 日

发布日期:2022 年 3 月 4 日

  • Init-database、Init-Ops-Manager 和 Operator 二进制文件现在使用 Go 1.17.7 来防止 CVE-2022-23773

  • 修复了管理启用 TLS 的 ApplicationDB(其 TLS 证书存储在 Opaque 类型的 Secret 中)时阻止 Operator 升级的问题。

发布日期:2022 年 2 月 11 日

Kubernetes Operator 版本 1.15.1 修复了在管理启用了 TLS 且 TLS 证书存储在 Opaque 密钥中的应用程序数据库时阻止 Kubernetes Operator 升级的问题。

我们建议您升级到 Kubernetes Operator 1.16.0 或更高版本。

我们强烈建议不要升级到 Kubernetes Operator 版本 1.14.0 或 1.15.0。

  • spec.security.tls.enabledspec.security.tls.secretRef.prefix 字段现已弃用,并将在未来版本中删除。

    要为 MongoDB 数据库资源启用 TLS,请为 spec.security.certsSecretPrefix 字段赋值。

  • 添加 spec.backup.queryableBackupSecretRef 字段。此字段的值引用一个密钥,其中存储可查询备份的证书。

  • 添加两个字段以支持为 S3 oplog 和快照存储配置自定义 TLS 证书以进行备份:spec.security.tls.caspec.security.tls.secretRef

  • 添加备份应用程序数据库的功能。要备份应用程序数据库,必须首先使用 spec.applicationDatabase.automationConfig.processes[n].disabled 字段禁用其进程。

  • spec.security.tls.enabledspec.security.tls.secretRef.prefixspec.applicationDatabase.security.tls.enabledspec.applicationDatabase.security.tls.prefix 字段已弃用,并将在未来版本中删除。

    要为 Ops Manager 资源启用 TLS,请为 spec.security.certsSecretPrefix 字段赋值。

    要为应用程序数据库资源启用 TLS,请为 spec.applicationDatabase.security.certsSecretPrefix 字段赋值。

通过以下网址查找所有新映像:

发布日期:2021 年 12 月 16 日

Kubernetes Operator 版本 1.15.1 修复了在管理启用了 TLS 且 TLS 证书存储在 Opaque 密钥中的应用程序数据库时阻止 Kubernetes Operator 升级的问题。

我们建议您升级到 Kubernetes Operator 1.16.0 或更高版本。

我们强烈建议不要升级到 Kubernetes Operator 版本 1.14.0 或 1.15.0。

  • 修复了禁用身份验证时导致 ShardedCluster 资源失效的问题。

  • 修复阻止 Kubernetes Operator 在轮换应用程序数据库 TLS 证书时触发资源协调的问题。

  • 修复 Kubernetes Operator 未将 MongoDBOpsManager 资源中指定的自定义 CA 装载到备份守护程序 Pod 中的问题。当您将 Ops Manager 配置为在混合模式下运行并使用自定义 CA 时,此问题使备份无法运行。

发布日期:2021 年 10 月 21 日

警告

重大更改

Kubernetes Operator 不再为 MongoDBMongoDBOpsManager 资源生成 TLS 证书。

重要

弃用通知

此版本弃用了 TLS 证书的通用类型密钥

  • Kubernetes Operator 现在支持 kubernetes.io/tls 类型的 TLS 密钥。

    • 当您更新这些密钥时,Kubernetes Operator 会读取这些密钥并自动生成新的 .pem 文件,其中包含串联的 tls.crttls.key 字段。

    • 这样就无需手动连接这些值来创建 .pem 文件,并且使您能够在本地引用 Kubernetes 原生工具(例如 cert-manager)生成的密钥。

  • 对于支持 TLS 的资源,Kubernetes Operator 现在会监视包含 CA 的 ConfigMap 和包含 TLS 证书的密钥。现在,对这些 ConfigMap 和密钥的更改会触发相关资源的协调。

警告

重大更改

此版本从 MongoDB 数据库资源规范中删除了 spec.project 设置。

如果 MongoDB 资源规范使用 spec.project 设置,请在将 Kubernetes Operator 升级到 1.13.0 或更高版本之前更新规范,改为使用 spec.opsManager.configMapRef.namespec.cloudManager.configMapRef.name

  • 修复了无法使用 MongoDB 资源规范正确配置分片集群备份的问题。

  • 修复通过更新 spec.version 更新 Ops Manager 部署后,备份守护程序无法启动的问题。

  • Kubernetes Operator 现在会报告您在 MongoDBOpsManager 资源规范的 spec.backup.fileSystemStores 设置中配置的文件系统快照存储的状态。

    必须手动配置文件系统快照存储。

  • 此版本向 MongoDBOpsManager 资源规范添加了新字段 spec.backup.externalServiceEnabled

    默认情况下,当您启用可查询备份时,Kubernetes Operator 会创建一个 LoadBalancer 服务。

    在启用可查询备份之前,将 spec.backup.externalServiceEnabled 设置为 false,以防止 Kubernetes Operator 创建 LoadBalancer 服务。

  • 现在,当您将 Ops Manager 部署升级到 5.0.0 或更高版本时,Kubernetes Operator 会自动将个人 API 密钥升级为编程 API 密钥。您不再需要手动更改密钥来升级部署。

  • 此版本添加了 spec.security.certsSecretPrefix 字段来确定您必须为包含 MongoDBOpsManager 资源的 TLS 证书的密钥提供的名称。

    要了解更多信息,请参阅部署 Ops Manager 资源教程中的 spec.security.certsSecretPrefixHTTPS 标签页。

警告

重大更改

此版本从 MongoDBUser CustomResourceDefinition 中删除了 spec.project 设置。

如果您的 MongoDBUser 资源规范使用 spec.project 设置,请在将 Kubernetes Operator 升级到 1.13.0 或更高版本之前更新您的规范,以使用 spec.MongoDBResourceRef.name

  • Ops Manager 4.4.7、4.4.9、4.4.10、4.4.11、4.4.12 和 4.4.13基础镜像已更新至 Ubuntu 20.04。

  • 现已支持 Ops Manager 版本 4.4.16 和 5.0.1。

发布日期:2021 年 7 月 15 日

  • 如果在设置为 true 后将 spec.externalConnectivity 设置为 false,Kubernetes Operator 会删除相应的服务。

  • 您可以使用 spec.backup.members 指定备份守护程序 Pod 的数量。如果未设置,默认值为 1

  • Kubernetes Operator 现在支持以下 Ops Manager 版本:

    • 4.4.13、4.4.14、4.4.15、4.2.25 和 5.0.0。

  • 在将 Ops Manager 升级到版本 5.0.0 之前,请检查 Kubernetes Operator 是否使用编程 API 密钥

  • 基于 Ubuntu 的 Kubernetes Operator 映像现在基于 Ubuntu 20.04,而不是 Ubuntu 16.04。

  • 从 2.0.1 开始,基于 Ubuntu 的 MongoDB 映像基于 Ubuntu 18.04,而不是 Ubuntu 16.04。

    警告

    MongoDB 4.0。不支持 Ubuntu 18.04

    MongoDB 4.0 不支持 Ubuntu 18.04。如果要结合使用 MongoDB 4.0 和 Kubernetes Operator,请使用之前发布的映像。

  • 4.4.13 之后,基于 Ubuntu 的 Ops Manager 映像基于 Ubuntu 20.04,而不是 Ubuntu 16.04。

  • Kubernetes Operator、Ops Manager 和 MongoDB 的新发布 UBI 映像基于 ubi-minimal,而不是 ubi

发布日期:2021 年 6 月 3 日

从当前文档中删除主题“迁移到一个资源/项目(版本 1.3.0 必需)”,因为 v.1.3.0 生命周期结束 (EOL)。此主题已存档

  • 修复了 Liveness Probe 中的一个问题,该问题可能导致数据库 Pod 在备份恢复操作过程中重新启动。

警告

重大更改

  • 从此版本开始,您可以将任何版本的 MongoDB 用于应用程序数据库。部署 MongoDBOpsManager 资源时必须明确指定此版本。

  • 要升级 Kubernetes Operator,您必须指定应用程序数据库的版本。检查以确保 spec.applicationDatabase.versionMongoDBOpsManager 自定义资源部署的配置文件中有一个值。

  • 每个应用程序数据库 Pod 都包含以下容器(不像上个版本那样包含一个捆绑 MongoDB 版本的容器):

    • mongodb

    • mongodb-agent

    • mongodb-agent-monitoring

  • spec.applicationDatabase.persistent 设置已删除。Kubernetes Operator 始终将持久卷用于由 MongoDBOpsManager 自定义资源部署的应用程序数据库。

发布日期:2020 年 3 月 25 日

  • 修复多个 Ops Manager 资源在不同命名空间中无法具有相同名称的问题。

  • 修复导致使用 spec.backup.mode=disabled 创建的新 MongoDB 资源失败的问题。

  • 修复在 S3 Store(S3 存储)页面上保存更改的问题。

  • 修复将副本集状态更改为 Fail(失败)、增加副本集节点和禁用 TLS 的问题。

  • 当您使用远程或混合模式并设置 automation.versions.download.baseUrl 时,必须将 automation.versions.download.baseUrl.allowOnlyAvailableBuilds 属性设置为 false。Ops Manager 4.4.11 修复了此问题。

发布日期:2020 年 2 月 5 日

修复了逗号分隔值 (CSV) 中的错误(这只影响 Red Hat 市场)

  • 您不能将 MongoDB 4.4 用作 Ops Manager 资源的应用程序数据库。

  • mongodb-enterprise-operator:1.9.2

您可以在以下注册表中找到所有映像:

发布日期:2020 年 1 月 15 日

  • 修复无法在 StatefulSet podSpec 覆盖中指定 service-account-name 的问题。

  • 从操作员角色中删除不必要的 delete service 权限。

警告

重大更改

此版本引入了:

  • 新的应用程序数据库映像 mongodb-enterprise-appdb:10.2.15.5958-1_4.2.11-ent。该映像包含 MongoDB 4.2.11-ent,而不是 4.2.2-ent。您必须将新映像推送到 Kubernetes Operator 安装使用的任何私有存储库。否则,MongoDBOpsManager 资源将无法启动。

  • 新的必填环境变量 APPDB_AGENT_VERSION。 如果您不设置 APPDB_AGENT_VERSION,则 MongoDBOpsManager 资源无法获取应用程序数据库的 MongoDB 助手版本。

  • 您不能将 MongoDB 4.4 用作 Ops Manager 资源的应用程序数据库。

  • mongodb-enterprise-operator:1.9.1

  • mongodb-enterprise-appdb:10.2.15.5958-1_4.2.11-ent

  • mongodb-enterprise-init-appdb:1.0.2

  • mongodb-enterprise-init-database:1.0.6

您可以在以下注册表中找到所有映像:

发布日期:2020 年 12 月 8 日

  • 修复了 Kubernetes Operator 未关闭与 Ops Manager 的连接,导致打开的文件描述符过多的问题。

  • 您现在可以在 CustomResourceDefinition 中为 MongoDB 数据库资源配置连续备份。

    注意

  • 您不能将 MongoDB 4.4 用作 Ops Manager 资源的应用程序数据库。

  • 当您将 Kubernetes Operator 升级到此版本时,Kubernetes Operator 会删除并重新创建备份守护程序 Statefulset。

    这是一项安全的操作。

    支持可查询备份的 Kubernetes 新服务需要更改 matchLabels 备份守护程序 StatefulSet 属性。

  • Kubernetes Operator 更改了应用程序数据库 Pod 中收集 MongoDB 助手的状态的方式。

  • mongodb-enterprise-operator:1.9.0

您可以在以下注册表中找到所有映像:

发布日期:2020 年 11 月 16 日

  • 您不能将 MongoDB 4.4 用作 Ops Manager 资源的应用程序数据库。

修复了启用 spec.externalConnectivityspec.backup.enabled 时 Ops Manager 资源将达到 Failing 状态的问题。

发布日期:2020 年 11 月 13 日

  • 修复了创建 MongoDB 资源后无法修改 spec.security.authentication.ignoreUnknownUsers 的错误。

  • 修复失败的可查询备份。Kubernetes Operator 现在创建一个 Kubernetes 服务,Ops Manager 使用该服务来访问备份。

  • 修复无法从非 TLS 迁移到支持 TLS 的应用程序数据库的问题。

  • Init 容器不以根身份运行。

  • Ops Manager 备份守护程序在非特权模式下运行。

  • 要管理数据库 Pod 资源,请使用 spec.podSpec.podTemplate MongoDB 自定义资源属性。有关每种支持类型的资源定义示例,请参阅 samples/mongodb/podspec 目录。以下属性已弃用:

    • spec.podSpec.cpu

    • spec.podSpec.cpuRequests

    • spec.podSpec.memory

    • spec.podSpec.memoryRequests

Init-database 1.0.1
Init-ops-manager 1.0.3
Init-appdb 1.0.5
版本 4.4.5
版本 4.2.21
版本 4.2.20

有关已安装软件包的列表和构建进程中检测到的任何安全漏洞,请参阅 MongoDB Enterprise OperatorMongoDB Enterprise Database

发布日期:2020 年 9 月 30 日

警告

重大更改

MongoDB Enterprise Database 映像现在需要一个 init 容器。如果您使用的是私有存储库,则必须在 Operator 部署中设置 INIT_DATABASE_IMAGE_REPOSITORY 环境变量,并且新的 container 容器必须存在于该存储库中。

  • 引入新的配置字段:

    • spec.security.authentication.requireClientTLSAuthentication 用于将 MongoDB 助手客户端证书身份验证与任何其他身份验证机制结合使用。

    • spec.security.authentication.agents.clientCertificateSecretRef 用于配置启用 ClientTLSAuthentication 时 MongoDB 助手使用的客户端 TLS 证书。

  • 将根据密钥创建的卷的默认权限从 0644 更改为 0640

  • 使用 Ops Manager 4.4 或更高版本时,允许使用 SCRAM-SHA-256 身份验证配置应用程序数据库。

  • 更改 Ops Manager spec.version 字段的验证,允许使用不符合 semver 要求的标签。spec.version 字段必须以表示 Ops Manager 版本的 Major.Minor.Patch 字符串开头。要了解有关此字段的更多信息,请参阅 Ops Manager 资源规范

  • 修复导致 Operator 在创建 MongoDB 用户时选择不正确的项目名称的问题。

  • 修复导致 MongoDB Ops Manager CRD 的 CA 路径位于错误位置的问题。

  • 修复 MongoDB 助手无法正确识别通过 spec.agent.startupOptions 传递的参数的错误。

  • 修复并行修改某些配置选项时可能导致死锁的问题。

  • 您不能将 MongoDB 4.4 用作 Ops Manager 资源的应用程序数据库。

  • 启用可查询备份时,必须手动为以下项创建两项附加服务:

    • 公开 Ops Manager Pod 的可查询备份端口(默认值:25999)。

    • 备份守护程序 Pod,确保它可以从 Ops Manager Pod 解析。

  • 如果在本地模式下部署 Ops Manager 并从 4.4.1 版本升级,您必须升级位于 automation.versions.directory 中的 MongoDB 工具,默认为 /mongodb-ops-manager/mongodb-releases/

    提示

发布日期:2020 年 9 月 2 日

  • Ops Manager 资源:

    • 修复了以下错误:无法在 Ops Manager 4.4 中为使用某些 MongoDB 版本的应用程序数据库资源启用 SCRAM-SHA 身份验证。

    • 修复了以下错误:在您为应用程序数据库启用 TLS 时,未在 Ops Manager 中正确配置应用程序数据库监控。

    • 修复了将 Ops Manager CA 配置从 spec.applicationDatabase.security.tls.ca 移至 spec.security.tls.ca 的错误。

  • MongoDB 资源:

    • 修复了一个错误,该错误导致您无法在 MongoDB 4.4 部署中将副本集或分片集群中的节点数一次增加或减少多个节点。

    • 修复了以下问题:如果您为 MongoDB 资源启用了 LDAP 身份验证,Kubernetes Operator 无法启用代理身份验证。

    • 修复了以下问题:无法按任意顺序为 MongoDB 资源创建 SCRAM 用户并启用 SCRAM 身份验证。

    • 修复了以下问题:在 MongoDB 资源 Pod 上启动代理之前,Kubernetes Operator 未删除备份自动化配置。

  • 如果在应用程序数据库上启用 TLS,您不能在 Ops Manager 资源定义中提供 spec.applicationDatabase.version 字段。

  • 您不能将 MongoDB 4.4 用作 Ops Manager 资源的应用程序数据库。

  • 在升级到 Kubernetes Operator 1.7.1 时,由于部署配置更改,您可能必须删除 mongodb-enterprise-operator 部署。

    这是一项安全的操作。 删除mongodb-enterprise-operator Pod 不会影响 MongoDB 自定义资源

  • 如果使用由自定义 CA 签名的 TLS 证书,您必须:

    • 省略 Ops Manager 资源定义中的spec.version.applicationDatabase设置,并且

    • 本地模式部署 Ops Manager。您必须手动将待使用的所有 MongoDB 版本的安装存档复制到 Ops Manager StatefulSet 的持久化卷中。

发布日期:2020 年 8 月 14 日

重要

支持 OpenShift 3.11 的最终版本

Kubernetes Operator 1.7.x 是支持 OpenShift 3.11 的最终次要版本系列。如果要继续使用 OpenShift 3.11 部署 Kubernetes Operator,请不要升级到任何将来的主要或次要版本。

Kubernetes Operator 1.7.x 版本系列的计划终止日期为 2021 年 7 月。

  • 所有 Kubernetes Operator Red Hat Docker 映像现在基于 UBI 8。在以前的版本中,Kubernetes Operator Red Hat Docker 映像基于 UBI 7。

  • 支持将 LDAP 作为使用 Kubernetes Operator 部署的 MongoDB 数据库资源的授权机制。有关更多信息,请参阅 GitHub 上的样本 LDAP 配置。

  • 修复了一个错误,该错误导致无法将副本集从三个节点缩减为一个节点。

  • Ops Manager 无法监控使用 TLS 保护的应用程序数据库。

  • 对于 MongoDB 4.4 部署,您只能将副本集或分片集群中的节点数一次增加或减少一个节点。

发布日期:2020 年 7 月 30 日

  • 版本 4.4.0 的 Ops Manager 映像已发布。

  • Red Hat databaseoperator Docker 映像现在基于最新的 UBI 7 版本。两个高度严重的问题已得到解决。

  • 已发布以下 Docker 映像:

    映像类型
    Ubuntu 16.04
    Red Hat UBI 7

    Kubernetes Operator

    quay.io/mongodb/mongodb-enterprise-operator:1.6.1
    quay.io/mongodb/mongodb-enterprise-operator-ubi:1.6.1
    MongoDB 数据库
    quay.io/mongodb/mongodb-enterprise-database:1.6.1
    quay.io/mongodb/mongodb-enterprise-database-ubi:1.6.1

    Ops Manager

    quay.io/mongodb/mongodb-enterprise-ops-manager:4.4.0
    quay.io/mongodb/mongodb-enterprise-ops-manager-ubi:4.4.0
  • 修复了以下错误:Kubernetes Operator 未将部署资源的配置存储在密钥中。

  • 修复了以下错误:Kubernetes Operator 不允许 Ops Manager 资源中定义的应用程序数据库、oplog 存储和块存储数据库资源使用任何长度或复杂性的密码。

  • 修复了以下错误:在删除 MongoDB 数据库资源时,未从 Ops Manager 或 Cloud Manager 项目中删除身份验证配置。

发布日期:2020 年 7 月 16 日

  • 支持将 LDAP 作为使用 Kubernetes Operator 部署的 MongoDB 数据库资源的身份验证机制。有关更多信息,请参阅 Github 上的样本 LDAP 配置。

    注意

    还不支持 LDAP 授权。

  • 在启用备份时,保留 Ops Manager 集群记录以保留备份历史记录。

  • 修复了一个错误,该错误导致在 projectName 包含空格时 Kubernetes Operator 无法引发错误。

  • 修复了导致 Ops Manager 无法监控使用 Kubernetes Operator 部署的所有 MongoDB 数据库资源的错误。

发布日期:2020 年 7 月 2 日

  • 修复了 1.5.4 中引入的以下错误:在使用早于 4.2.2 的 Ops Manager 版本时,MongoDB Enterprise Kubernetes Operator 无法正确标记项目。在 4.2.2 版本中,MongoDB Enterprise Kubernetes Operator 可以正确标记项目。

发布日期:2020 年 6 月 22 日

  • 如果 MongoDB 资源对象定义中未提供 spec.security.authentication 设置,则允许使用 Cloud Manager 或 Ops Manager 用户界面修改身份验证设置。

  • 除了 helm template | kubectl apply 以外,还支持使用 helm install 进行 Helm 安装helm install 现在是使用 Helm 进行安装的建议方法。

  • 支持独立于集群身份验证机制配置 MongoDB 助手身份验证机制。

  • 支持为应用程序数据库配置监控以将指标发送到 Ops Manager。要了解有关 MongoDB 助手的监控功能的更多信息,请参阅 MongoDB 助手

  • 修复了一个错误,该错误影响将身份验证机制从 X.509 转变为 SCRAM。

  • 修复了一个错误,该错误导致在 Ops Manager 用户界面中更改 SCRAM 配置时 MongoDB 助手无法达到目标状态。

发布日期:2020 年 5 月 29 日

将 Ops Manager 和 MongoDB 部署配置属性作为密钥环境变量进行传递。

  • 正确配置 Ops Manager 和备份守护程序的关闭超时。

  • 修复了以下问题:Kubernetes Operator 监视的密钥和 ConfigMap 触发不必要的协调。

  • 修复了以下问题:无法在 OpenShift 3.11 中更新自定义资源的状态。

发布日期:2020 年 5 月 8 日

  • 在专用服务帐户中运行 Ops Manager 和备份守护程序 Pod。

  • 可以配置 Kubernetes Operator,监视提供的 CustomResourceDefinitions 的子集。有关更多信息,请参阅文档。

  • 可以生成 CustomResourceDefinition 而不使用子资源。某些版本的 Openshift 3.11 需要使用该功能。要避免使用子资源,请在使用 helm 安装 Kubernetes Operator 时使用 --set subresourceEnabled=false

  • 修复了在MongoDBOpsManager资源上设置spec.statefulSetspec.backup.statefulSet字段的问题。

  • 修复了一个问题,该问题要求在设置 Webhook 期间重新启动 Kubernetes Operator。

  • 修复了如果提供的管理员密码强度不足,可能导致 Ops Manager 资源进入不可恢复状态的问题。

发布日期:2020 年 4 月 30 日

弃用 Kubernetes Operator 生成 TLS 证书。 如果您使用 Kubernetes Operator 生成的证书,警告消息现在会显示在 Kubernetes Operator 日志中。 要配置安全部署,请参阅安全客户端连接。

修复了以下问题:在 Kubernetes Operator 未配置身份验证时,Kubernetes Operator 在 Cloud Manager 或 Ops Manager 中禁用身份验证。除非您明确将 spec.security.authentication.enabled 设置为 false,否则,Kubernetes Operator 不再禁用身份验证。

配置 MongoDBOpsManager 资源的 spec.statefulSet.specspec.backup.statefulSet.spec 设置时,您只能配置 spec.statefulSet.spec.templatespec.backup.statefulSet.spec.template 字段。任何其他spec.statefulSet.specspec.backup.statefulSet.spec字段都不起作用。

发布日期:2020 年 4 月 24 日

增添一项能力,可以在安装部分(并非全部)MongoDB CustomResourceDefinitions 的情况下启动 Kubernetes Operator 。通过指定容器参数 watch-resource,管理员可以限制Kubernetes Operator 是否部署 MongoDB 实例、Ops Manager 或两者兼备。

警告

重大更改

添加以下新的 Kubernetes Operator 配置属性:

  • INIT_OPS_MANAGER_IMAGE_REPOSITORY

  • INIT_APPDB_IMAGE_REPOSITORY

  • APPDB_IMAGE_REPOSITORY

在使用私有 Docker 注册表时,从 MongoDB 分发通道复制映像后,这些属性必须指向相关的注册表。

  • 使用 spec.security.tls.secretRefspec.security.tls.ca 配置设置添加对自定义 TLS 证书的支持。

  • 弃用由 Kubernetes Operator 生成 TLS 证书的功能。建议迁移到自定义 TLS 证书。

  • MongoDBOpsManager 资源发布为一般可用 (GA)。MongoDB 现在支持使用 Kubernetes Operator 在生产环境中将 Ops Manager 资源部署到 Kubernetes。

  • 支持备份块存储快照存储。

  • 默认将应用程序数据库作为备份 S3 快照存储的元数据数据库。

  • 支持使用 spec.jvmParametersspec.backup.jvmParameters 在 Ops Manager 和备份守护程序进程中添加或覆盖 JVM 参数。

  • 根据 Pod 内存可用性自动配置 Ops Manager 和备份守护程序 Java 虚拟机内存参数。

  • 支持 Ops Manager 和应用程序数据库的 TLS

  • status 字段中添加更详细的信息。

  • 允许用户在 spec.statefulSet.spec 中指定 PersistentVolumeClaimTemplates,从而支持具有多个副本集的 MongoDBOpsManager 资源的 Ops Manager 本地模式。

  • 实现新的映像版本控制方案。

警告

重大更改

请参阅样本 YAML 文件以了解新功能用法示例。

修复了 CVE-2020-7922:Kubernetes Operator 生成可能不安全的证书。

MongoDB Enterprise Kubernetes Operator 生成的 X.509 证书可能允许具有 Kubernetes 集群访问权限的攻击者对 MongoDB 实例进行不适当的访问。不使用 X.509 身份验证的客户以及不使用 Kubernetes Operator 生成 X.509 证书的客户不受影响。

CWE-295:不正确的证书验证 CVSS 分数:6.4 CVSS:3.1/AV:A/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N

  • 1.0、1.1

  • 1.2.0 — 1.2.4

  • 1.3.0 — 1.3.1

  • 1.4.0 — 1.4.4

  • 1.2.5

  • 1.4.5 和更高版本

支持 Cloud Manager API 中的更改。

  • 使用终止挂钩正确终止资源。

  • 实施更严格的验证。

  • MongoDB 资源:

    • 修复了使用具有自定义 HTTPS 证书的 Ops Manager 时出现的问题。

发布日期:2020 年 2 月 24 日

添加了 Webhook 以验证 Kubernetes Operator 配置。

  • 使用 spec.podSpec.podTemplate 设置为 MongoDB 资源 Pod 添加对 sidecar 的支持。

  • 允许用户更改 PodSecurityContext 以允许特权 sidecar 容器。

  • 为 Ops Manager、备份守护程序和应用程序数据库添加 spec.podSpec 配置设置。请参阅 Ops Manager 资源规范

  • 4.2.8 版的 Ops Manager 镜像现已推出。

  • MongoDB 资源:

    • 修复了删除 MongoDB 资源时可能出现的争用情况。

  • Ops Manager 资源:

    • 支持 Ops Manager 和应用程序数据库资源的 spec.clusterDomain 设置。

    • 不再为应用程序数据库启动监控和备份进程。

请参阅样本 YAML 文件以了解新功能用法示例。

发布日期:2020 年 1 月 24 日

  • 为应用程序数据库添加了离线模式支持。将 MongoDB Enterprise 4.2.2 版与应用程序数据库映像捆绑在一起。如果将 spec.applicationDatabase.version 设置为 "4.2.2-ent" 或省略,则无需访问互联网即可安装应用程序数据库。

  • spec.clusterName设置重命名为spec.clusterDomain

  • 发布了 4.2.6 和 4.2.7 版本的 Ops Manager 映像。

  • MongoDB 资源:

    • 修复分片集群组件的创建顺序。

    • 允许在 Amazon EKS 上启用 TLS

  • Ops Manager 资源:

    • 允许 Kubernetes Operator 使用 spec.clusterDomain 设置。

请参阅样本 YAML 文件以了解新功能用法示例。

发布日期:2019 年 12 月 13 日

发布日期:2019 年 12 月 09 日

  • 添加对 MongoDB 副本集的水平分割 DNS 支持,允许客户端从 Kubernetes 集群外部连接到该副本集。

  • 支持其他证书域请求 Kubernetes Operator 生成的证书,这使得 Kubernetes Operator 生成的证书对指定的子域有效。

  • MongoDBOpsManager 资源提升为 Beta 版本。发布了 Ops Manager 4.2.4 版本。

  • 为 Kubernetes Operator 部署的 Ops Manager 实例中的备份和恢复提供支持。这是一个半自动化的进程,可用于部署 Ops Manager 中启用备份所需的所有配置。您可以通过在 Ops Manager 自定义资源中设置 spec.backup.enabled 来启用备份。您可以利用 MongoDBOpsManager 资源规范来配置头部数据库、Oplog 存储和 S3 快照存储。

  • 支持通过 spec.externalConnectivity 设置在 Kubernetes 集群外部访问 Ops Manager。

  • 默认情况下,在 Ops Manager 的应用程序数据库上启用 SCRAM-SHA-1 身份验证

  • 添加了对 OpenShift(Red Hat UBI 映像)的支持。

关于如何启用新功能的更多信息,请参阅样本目录中的示例 YAML 文件。

  • 提高了 X.509 用户管理的整体稳定性。

发布日期:2019 年 11 月 8 日

重要

该版本引入了可能与以前部署或资源配置不兼容的重大更改。在升级 Kubernetes Operator 之前,迁移到每个项目具有一种资源的配置

  • 每个 Ops Manager 项目需要使用一种 MongoDB 资源。如果在项目中具有多种 MongoDB 资源,所有资源将变为 Pending 状态,并且 Kubernetes Operator 不会对它们执行任何更改。仍然可以访问现有的 MongoDB 数据库。您必须迁移到每个项目具有一种资源的配置

  • 支持 SCRAM-SHA 身份验证模式。有关示例请参阅 MongoDB Enterprise Kubernetes Operator GitHub 存储库

  • 要求从 MongoDB 资源中引用的项目 (ConfigMap) 和凭证(密钥)位于同一命名空间中。

  • 添加 OpenShift 安装文件(YAML 文件和 Helm Chart 配置)。

发布日期:2019 年 10 月 25 日

重要

该版本引入了可能与以前部署或资源配置不兼容的重大更改。在安装或升级 Kubernetes Operator 之前,迁移到每个项目具有一种资源的配置

该版本对 Ops Manager 资源的架构进行了重大更改。Ops Manager 应用程序数据库现在由 Kubernetes Operator 管理,而不是由 Ops Manager 管理。

  • 停止不必要的 NodePort 重新创建。

  • 修复了日志记录,以使其始终采用 JSON 格式。

  • 在 Kubernetes Operator Docker 映像中设置 USER

修复了 CVE-2020-7922:Kubernetes Operator 生成可能不安全的证书。

MongoDB Enterprise Kubernetes Operator 生成的 X.509 证书可能允许具有 Kubernetes 集群访问权限的攻击者对 MongoDB 实例进行不适当的访问。不使用 X.509 身份验证的客户以及不使用 Kubernetes Operator 生成 X.509 证书的客户不受影响。

CWE-295:不正确的证书验证 CVSS 分数:6.4 CVSS:3.1/AV:A/AC:H/PR:L/UI:N/S:U/C:H/I:H/A:N

  • 1.0、1.1

  • 1.2.0 — 1.2.4

  • 1.3.0 — 1.3.1

  • 1.4.0 — 1.4.4

  • 1.2.5

  • 1.4.5 和更高版本

发布日期:2019 年 10 月 2 日

  • 提高分片集群部署的稳定性。

  • 改进内部测试基础设施。

发布日期:2019 年 9 月 13 日

  • 更新: 未来版本的 MongoDB Enterprise Kubernetes Operator 将不再支持每个项目连接多个集群。如果一个项目包含多个集群,MongoDB 资源状态将添加一条警告。另外,向非空项目中添加新集群将会导致 Failed 状态,并且不会被处理。

  • 修复:提高了 Operator 的整体稳定性。现在,Operator 在 Kubernetes 和 Cloud Manager 或 Ops Manager 上的资源更新方面更加保守。

发布日期:2019 年 8 月 30 日

  • 安全修复:Kubernetes Operator 版本 1.0 到 1.2.1 配置的集群使用强度不够高的密钥文件,在 mongod 进程之间进行内部集群身份验证。这仅影响使用 X.509 进行用户身份验证的集群,而不影响使用 X.509 进行内部集群身份验证的集群。建议用户升级到 1.2.2 版本,这会替换所有管理的密钥文件。

  • 安全修复:Kubernetes Operator 版本 1.0 到 1.2.1 配置的集群使用强度不够高的密码,对 MongoDB 助手进行身份验证。这仅影响已手动配置为启用 SCRAM-SHA-1 的集群,这是不支持的配置。建议用户升级到 1.2.2 版本,这会重置这些密码。

发布日期:2019 年 8 月 23 日

  • 修复:启用 X.509 身份验证且经批准的 CSR 已删除时,Kubernetes Operator 不再重新创建 CSR 。

  • 修复:OPERATOR_ENV 环境变量如果被设置为 Kubernetes Operator 无法识别的内容,则将不再生成 pod 的 CrashLoopBackOff。使用默认值 prod

  • 现在,Kubernetes Operator 在给定项目中支持超过 100 个代理。

发布日期:2019 年 8 月 13 日

该功能是 Alpha 版本。它尚未准备好用于生产环境。

发布日期:2019 年 7 月 19 日

  • 修复:添加样本 yaml 文件,特别是与 featureCompatibilityVersion 相关的属性。

  • 修复: 可以在部署中禁用 TLS

  • 改进:支持目录中添加脚本,能够在 Kubernetes 中收集您的 MongoDB 资源。

  • 改进:TLS 环境中,Kubernetes Operator 可以使用自定义 CA。必须将所有证书作为密钥对象进行传递。

发布日期:2019 年 6 月 18 日

  • 支持 Kubernetes 1.11 或更高版本。

  • 在组织的 Kubernetes 集群中预配任何类型的 MongoDB 部署:

  • 在 MongoDB 部署上配置 TLS 并加密所有流量。主机和客户端可以验证彼此的身份。

  • 管理 MongoDB 用户。

  • 支持对 MongoDB 数据库进行 X.509 身份验证。

提示

另请参阅:

要了解如何安装和配置 Operator,请参阅安装和配置 Kubernetes Operator。

注意

有关 Kubernetes Operator GA 版本的问题

如果您对该版本有任何疑问,请使用 #enterprise-kubernetes Slack 渠道。

发布日期:2019 年 06 月 07 日

  • MongoDB 资源的滚动升级确保为主节点调用 rs.stepDown()。需要使用 MongoDB 补丁版本 4.0.8 和更高版本或 MongoDB 补丁版本 4.1.10 和更高版本。

  • 在 MongoDB 主要版本升级期间,可以设置 featureCompatibilityVersion 字段。

  • 修复了以下错误:无法创建具有超过 7 个节点的副本集。

  • 可以在项目级别启用 X.509 身份验证。需要使用 Cloud Manager、Ops Manager 补丁版本 4.0.11 和更高版本或 Ops Manager 补丁版本 4.1.7 和更高版本。

  • 可以在部署级别启用基于 X.509 的内部集群身份验证。

  • 可以使用新的 MongoDBUser 自定义资源创建采用 X.509 身份验证的 MongoDB 用户。

发布日期:2019 年 04 月 29 日

  • NodePort 可以禁用服务创建。

  • 可以启用 TLS,在副本集和分片集群中的 MongoDB 之间进行内部身份验证。TLS 证书由 Kubernetes Operator 自动创建。有关示例,请参阅 GitHub 存储库 中的样本 .yaml 文件。

  • 已将 roles.yaml 中的广泛或通配符角色替换为严格的动词列表。

  • 使用 kubectl 打印 mdb 对象将提供有关该 MongoDB 对象的更多信息:类型、状态和 MongoDB 服务器版本。

发布日期:2019 年 4 月 2 日

  • Kubernetes Operator 和数据库映像现在基于 ubuntu:16.04。

  • Kubernetes Operator 现在使用一个名为 MongoDBCustomResourceDefinition,而不是使用 MongoDbReplicaSetMongoDbShardedClusterMongoDbStandalone CRD。

    重要

    按照升级步骤将现有的 MongoDbReplicaSetMongoDbShardedClusterMongoDbStandalone 资源转换为新格式。

  • 关于已安装软件包的列表以及在构建进程中检测到的任何安全漏洞,请参阅:

发布日期:2019 年 03 月 19 日

  • Operator 和数据库映像现在基于 debian:stretch-slim,它是 Debian 9 的最新 Docker 映像。

发布日期:2019 年 02 月 26 日

  • 在删除 MongoDB 资源时执行 Ops Manager 清理,而不使用终结器。

  • 错误修复:与 Ops Manager 通信时出现争用情况。

  • 缺陷修复: ImagePullSecrets 在 OpenShift 中未正确初始化。

  • 错误修复:意外提取关闭的项目。

  • 错误修复:创建重复的组织。

  • 错误修复:如果 Ops Manager 中的某些其他资源处于错误状态,MongoDB 资源协调可能会失败。

发布日期:2019 年 02 月 01 日

  • 改进了 MongoDB 资源的详细状态字段。

  • Kubernetes Operator 监视项目 configMap 和凭证密钥中的配置参数更改,然后对相关 Kubernetes 资源执行滚动升级。

  • 为 MongoDB 助手 Pod 添加了 JSON 结构化日志记录。

  • 支持使用 DNS SRV 记录进行 MongoDB 访问。

  • 错误修复:避免不必要的协调。

  • 错误修复:改进了 Ops Manager/Cloud Manager 对删除的资源的状态管理。

发布日期:2018 年 12 月 17 日

  • 重构了代码,以使用 controller-runtime 库修复 Operator 可能使资源处于不一致状态的问题。这还会引入正确的协调过程。

  • 为所有 MongoDB Kubernetes 资源添加了新的status字段。

  • 可以配置 Operator 以监视集群中的任何单个命名空间或所有命名空间(需要具有集群角色)。

  • 添加新的配置属性 logLevel 以改进数据库日志记录。该属性默认设置为 INFO。MongoDB 助手和 MongoDB 日志合并到单个日志流中。

  • 添加了新的配置 Operator 超时。它定义更新 MongoDB 资源时启动数据库 Pod 的等待时间。

  • 修复:修复了 mongos 的故障检测。

发布日期:2018 年 11 月 14 日

  • 数据库映像不再包含自动化代理的二进制文件。在启动时,容器从 Ops Manager 中下载自动化代理二进制文件。

  • 修复:如果在不同的组织中存在具有相同名称的项目,则与 Ops Manager 的通信将会失败。

发布日期:2018 年 10 月 4 日

  • 如果在 Ops Manager 中为 Kubernetes Operator 创建的副本集或分片集群启用了备份,则 Kubernetes Operator 会在删除资源之前禁用该备份。

  • 改进的持久性支持:

    • 数据、日志和日志目录将挂载到一个或三个卷中的三个挂载点,具体取决于 podSpec.persistence 设置。

      设置
      目录挂载位置
      podSpec.persistence.single
      一卷
      podSpec.persistence.multiple
      三卷

      在该版本之前,仅将数据目录挂载到持久存储。

    • 通过使用新参数 labelSelector,您可以指定 Kubernetes Operator 应考虑挂载的卷的选择器。

    • 如果未在 persistence 配置中指定 StorageClass,则使用集群的默认 StorageClass。在大多数公有云提供商中,这会导致动态预配卷。

发布日期:2018 年 8 月 7 日

  • Operator 不再创建 CustomResourceDefinition 对象。用户需要手动创建这些对象。下载并应用该新 yaml 文件 (crd.yaml ) 以创建/配置这些对象。

  • 不再需要使用 ClusterRole。Operator 监视资源的方式发生了变化。在上一版本之前,Operator 监视任何命名空间上的任何资源。在 0.3 版本中,Operator 监视创建它的同一命名空间中的资源。要支持多个命名空间,可以安装多个 Operator。这允许隔离 MongoDB 部署。

  • 对 PersistentVolume 的挂载方式进行了权限更改。

  • 在 Operator 中添加了配置,而不为 Pod 创建 SecurityContext。这解决了一个 OpenShift 问题,在使用 SecurityContextContraints 时,该问题不允许使用该设置。

    如果您使用 Helm,请将 managedSecurityContext 设置为 true。这样将告诉 Operator 不要为 Pod 创建 SecurityContext,从而满足 OpenShift 的要求。

  • projectNameorgId 的组合替代了单独的 projectId,以配置到 Ops Manager 的连接。如果不存在,则会创建项目。

发布日期:2018 年 8 月 3 日

  • 计算 WiredTiger 内存缓存。

发布日期:2018 年 6 月 27 日

初始版本

  • 可以使用 Kubernetes 配置文件部署独立实例、副本集和分片集群。

←  常见问题解答对 Kubernetes Operator 进行故障排除 →