MongoDB Enterprise Kubernetes Operator 发布说明
在此页面上
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资源:这些资源现在允许您在外部服务中添加占位符。
You can define annotations for external services managed by the Kubernetes Operator that contain placeholders which will be automatically replaced by the proper values. Previously, the Kubernetes Operator configured the same annotations for all external services created for each Pod. Starting with this release, you can add placeholders so that the Kubernetes Operator can customize annotations in each service with values that are relevant and unique for each particular Pod. To learn more, see:
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
的支持:现在,您可以使用
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 快照存储中的备份添加自定义证书列表。