对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

通过试运行验证迁移准备情况

kubectl mongodb 插件始终将 mongodb.com/migration-dry-run: true 注解添加到其生成的资源中,以便将部署迁移到Kubernetes。虽然存在该注释,但Kubernetes Operator 不会更改自动化配置。它仅验证连接和凭证,因此您可以在Kubernetes Operator 获得部署的所有权之前根据需要多次修复问题并重新运行。

  • Kubernetes Operator 会为每个 MongoDB资源创建一个名为 <resourceName>-connectivity-check 的作业。该作业会呼叫每个外部成员并对其进行身份验证。它使用 ttlSecondsAfterFinished 删除自身,下一次协调会重新创建它,因此修复后会自动重新验证。您无需手动触发。

  • 试运行会检查 Kubernetes 到虚拟机的可访问性(DNS、TLS、防火墙和节点地址)和凭证,包括 local数据库上的 __system角色,以及启用 TLS 时的 CA。

  • 试运行不会检查虚拟机到 Kubernetes 的入站连接。请自行验证该方向,方法是通过Ops Manager用户界面监控的状态,或者从虚拟机成员运行rs.status() 并确认它可以到达Kubernetes Pod。

  • 无论是否存在试运行注释,插件和Kubernetes Operator 版本检查都会运行。

1

在仍设立试运行注解的情况下应用 MongoDB 自定义资源。 Kubernetes Operator 创建 <resourceName>-connectivity-check 作业,并通过 status.phaseNetworkConnectivityVerified 条件报告进度。

当作业运行时,status.phase 会读取 ConnectivityCheckRunning

2

读取 status.conditions[type=NetworkConnectivityVerified]

验证器作业退出代码
条件状态
原因
含义

作业仍在运行

Unknown

Running

The status.phase is ConnectivityCheckRunning.

0

True

NetworkValidationPassed

所有外部成员均可访问并通过身份验证。

2

False

AuthenticationFailed

Credentials, the authentication mechanism, or a missing __system@local role.

3

False

NetworkFailed

DNS、TLS、超时或无法访问的成员。检查作业 Pod 日志。

1 或其他

False

UnknownError

未分类故障。检查作业 Pod 日志。

Failures that occur before the Job starts use the reasons OperatorImageUnknown, BuildStatefulSetOptions, AgentCertSecretFailed, and AgentCertSubject.

Kubernetes Operator removes the NetworkConnectivityVerified condition from status.conditions entirely once no external members remain.

3

根据需要修复Kubernetes或Ops Manager用户界面中的连接或凭证问题。您无需删除或重新应用任何内容:下一次协调会自动重新创建验证器作业。

如果试运行似乎停滞,删除<resourceName>-connectivity-check 作业。下一次协调会重新创建它。

Kubernetes Operator ServiceAccount 上缺少 batch/jobs RBAC 授权,导致作业无法创建,因此在这种情况下根本不会显示任何条件或作业。在作业开始之前发生的故障显示为 OperatorImageUnknownBuildStatefulSetOptionsAgentCertSecretFailedAgentCertSubject 原因,而不是上表中的退出代码原因。

4

NetworkConnectivityVerified 条件为 True,原因为 NetworkValidationPassed 时,删除注解:

kubectl annotate mdb <resourceName> \
mongodb.com/migration-dry-run-

重要

删除空运行注解后, Kubernetes Operator点获得Ops Manager或Cloud Manager项目的所有权。将此视为刚刚验证的连接和凭证状态的不返回点。