AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

実行するによる移行準備状況の検証

kubectl mongodb プラグインは、配置を Kubernetes に移行するために生成するリソースに、常に mongodb.com/migration-dry-run: true アノテーションを追加します。そのアノテーションが存在する間、Kubernetes 演算子はオートメーション構成の変更を行いません。接続と認証情報の検証のみを行うため、Kubernetes 演算子が配置の所有権を取得する前に、必要に応じて何度でも問題を修正して再実行できます。

  • Kubernetes 演算子は、MongoDB リソースごとに、<resourceName>-connectivity-check と名付けられたジョブを 1 つ作成します。ジョブはすべての外部ノードにダイヤルし、それに対して認証を行います。ttlSecondsAfterFinished によって自動的に削除するされます。次の調整で再作成されるため、修正後の再検証は自動的に行われます。手動でそれを trigger する必要はありません。

  • ドライランでは、Kubernetes からバーチャル マシンへの接続可能性 (DNS、TLS、ファイアウォール、およびノードのアドレス)、および local データベース上の __system ロール、TLS が有効になっている場合の CA を含む認証情報を確認します。

  • ドライランでは、仮想マシンからKubernetesへのインバウンド接続はチェックされません。その方向性は、MongoDB Ops Manager UIの配置のモニタリングステータスを確認するか、仮想マシンのノードからrs.status()を実行してKubernetes Podに到達できることを確認することで、ご自身で検証してください。

  • プラグインと Kubernetes 演算子のバージョンチェックは、dry-run アノテーションの有無にかかわらず実行されます。

  • mongodb.com/migration-dry-run: true アノテーションが残っている生成済みの MongoDB カスタムリソース。このリソースの生成方法については、「レプリカセットをKubernetesに移行する」を参照してください。

  • 配置でTLSを使用している場合は、Kubernetesへの移行のためのTLSの構成で説明されているノード証明書とCAマテリアルが必要です。

  • Kubernetes 演算子 ServiceAccount は、batch/jobs つの許可 (create、get、list、watch、およびdelete) を持っています。この権限がないと、Kubernetes 演算子は接続バリデーター ジョブを全く作成できません。

1

dry-runアノテーションが設定されたままの状態で、MongoDBカスタムリソースを適用します。Kubernetes 演算子は<resourceName>-connectivity-checkジョブを作成し、status.phaseおよびNetworkConnectivityVerified条件を通じて進捗を報告します。

ジョブの実行中に、status.phase は ConnectivityCheckRunning を読み取ります。

2

status.conditions[type=NetworkConnectivityVerified] を読み取る:

バリデーター ジョブ 終了コード
条件ステータス
理由
意味

ジョブが実行中です

Unknown

Running

status.phase は ConnectivityCheckRunning です。

0

True

NetworkValidationPassed

すべての外部ノードは到達可能であり認証済みです。

2

False

AuthenticationFailed

認証情報、認証メカニズム、または不足している__system@localロール。

3

False

NetworkFailed

DNS、TLS、タイムアウト、または到達不能なノード。ジョブPodのログを確認します。

1 またはその他

False

UnknownError

未分類の障害。ジョブ Pod ログを確認する。

ジョブの開始前に発生する失敗は、OperatorImageUnknown、BuildStatefulSetOptions、AgentCertSecretFailed、AgentCertSubject の理由を使用します。

Kubernetes 演算子は、外部ノードがなくなると、status.conditions から NetworkConnectivityVerified 状態を完全に除きます。

3

必要に応じて、KubernetesまたはMongoDB Ops Manager UIで接続や認証情報の問題を修正します。削除するや適用するを行う必要はありません。次の調整でバリデータージョブが自動的に再作成されます。

ドライランが停止しているように見える場合は、<resourceName>-connectivity-check ジョブを削除する。次の調整では、それを再作成します。

Kubernetes 演算子 ServiceAccount に対する batch/jobs RBAC の許可がない場合、ジョブが本来作成されることを防止します。そのため、その場合はコンディションやジョブがまったく表示されません。ジョブが開始する前に発生する失敗は、上記の表の終了コードの理由ではなく、OperatorImageUnknown、BuildStatefulSetOptions、AgentCertSecretFailed、またはAgentCertSubjectの理由となります。

4

NetworkConnectivityVerified 条件が理由 NetworkValidationPassed で True になった場合、アノテーションを除きます。

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

重要

dry-runアノテーションを除くと、その点でKubernetes演算子がOps ManagerまたはCloud Managerプロジェクトの所有権を取得します。これは、検証した接続と認証情報の状態に対する後戻りできない点として扱ってください。