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 版本检查都会运行。
开始之前
生成的
MongoDB自定义资源,其中mongodb.com/migration-dry-run: true注解仍然存在。要学习;了解如何生成此资源,请参阅将副本集迁移到Kubernetes。如果部署使用 TLS,则使用为迁移到Kubernetes配置 TLS 中所述的成员证书和 CA 材料。
Kubernetes Operator
ServiceAccount具有batch/jobs权限(create、get、list、watch和delete)。如果没有此授权, Kubernetes Operator 根本无法创建连接验证器作业。
步骤
读取结果。
读取 status.conditions[type=NetworkConnectivityVerified]:
验证器作业退出代码 | 条件状态 | 原因 | 含义 |
|---|---|---|---|
作业仍在运行 |
|
| The |
|
|
| 所有外部成员均可访问并通过身份验证。 |
|
|
| Credentials, the authentication mechanism, or a missing |
|
|
| DNS、TLS、超时或无法访问的成员。检查作业 Pod 日志。 |
|
|
| 未分类故障。检查作业 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.
修复问题并根据需要重新运行。
根据需要修复Kubernetes或Ops Manager用户界面中的连接或凭证问题。您无需删除或重新应用任何内容:下一次协调会自动重新创建验证器作业。
如果试运行似乎停滞,删除<resourceName>-connectivity-check 作业。下一次协调会重新创建它。
Kubernetes Operator ServiceAccount 上缺少 batch/jobs RBAC 授权,导致作业无法创建,因此在这种情况下根本不会显示任何条件或作业。在作业开始之前发生的故障显示为 OperatorImageUnknown、BuildStatefulSetOptions、AgentCertSecretFailed 或 AgentCertSubject 原因,而不是上表中的退出代码原因。
删除试运行注释以继续。
当 NetworkConnectivityVerified 条件为 True,原因为 NetworkValidationPassed 时,删除注解:
kubectl annotate mdb <resourceName> \ mongodb.com/migration-dry-run-
重要
删除空运行注解后, Kubernetes Operator点获得Ops Manager或Cloud Manager项目的所有权。将此视为刚刚验证的连接和凭证状态的不返回点。