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

Kubernetes への移行における TLS の構成

仮想マシンから Kubernetes へ TLS が有効なレプリカセットを移行する際に、1 つのレプリカセットは 1 つのトラスト ドメインです。Kubernetes ノードの証明書を、仮想マシンの証明書に署名した同じ証明書発行者 (CA) から発行してください。これが唯一の移行固有の TLS 要件です。Kubernetes 演算子用の一般的な TLS ドキュメントには、TLS の構成に関するその他のすべてが記述されています。CA の不一致は、設計上ドライランを失敗させます。ドライ実行するでその失敗がどのように検出されるかを学ぶには、ドライ実行するを使用した移行準備状況の検証を参照してください。

重要

このページのフィールドは移行専用です。フィールドの説明に別段の指示がない限り、グリーンフィールドの Kubernetes 演算子配置でそれらを設定しないでください。

証明書の発行方法、SecretsとConfigMapsの構成方法、およびMongoDBカスタムリソースでの一般的なTLS設定の構成方法を学ぶには、以下を参照してください。

移行に関するドキュメントに従う場合、Kubernetesのノード証明書は、仮想マシンの証明書に署名したのと同じCAから発行してください。新しいCAから発行しないでください。<resourceName>-caという名前のCA ConfigMapには、その同じCAから生成されたca-pemキーが含まれている必要があります。

以下のものが必要です。

  • バーチャル マシン配置の既存の CA 証明書およびキーマテリアル。

  • cert-manager または、同じ CA から Kubernetes ノード証明書を発行するための同等のツール。

  • 生成された MongoDB カスタム リソースから レプリカセットを Kubernetes に移行する

1

「cert-マネージャー 統合の設定」または「X.509 クライアント証明書の生成」の手順に従って、<certsSecretPrefix>-<resourceName>-cert という名前の kubernetes.io/tls Secret を作成することで、バーチャル マシン証明書に署名した CA と同じ CA から証明書を発行します。

CA ConfigMap を作成し、<resourceName>-ca という名前を付け、その同じ CA から入力された ca-pem キーを使用します。

X.509 エージェント認証を使用する場合は、<certsSecretPrefix>-<resourceName>-agent-certs Secret も作成し、spec.security.authentication.agents.clientCertificateSecretRef を設定して参照させます。この要件はエージェント認証にのみ適用されます。内部クラスター認証(spec.security.authentication.internalCluster)には適用されません。

2

これらのフィールドは、Kubernetes 演算子 のファイル パスの表示を、仮想マシンの配置が既に証明書とキーファイルを配置する方法と一致させるためにのみ存在します。ソース配置に適用されるもののみを設定します。

  • spec.security.tls.caFilePathPod 内に CA が投影される絶対パス。デフォルトは /mongodb-automation/tls/ca/ca-pem です。パスには少なくとも 2 つのパスセグメントが含まれている必要があります。このフィールドは、アプリケーションデータベースではサポートされていません。podTemplate がこのパスに別のボリュームをマウントしている場合、そのマウントが投影された CA をシャドウし、MongoDB Ops Manager エージェントはそれを読み取ることができません。

  • spec.security.authentication.agents.autoPEMKeyFilePath:データベースPod内のエージェントの結合PEMファイルの絶対パス。このフィールドはエージェントの認証のみを構成します。このフィールドを設定すると、MongoDB Ops Manager tls.autoPEMKeyFilePath 値が設定され、clientCertificateSecretRef によって参照される Secret がそのパスにマウントされます。デフォルトはハッシュされたエージェント証明書のマウントパスであり、これを設定するには spec.security.authentication.agents.clientCertificateSecretRef が既に設定されている必要があります。このフィールドは、仮想マシンの配置でデフォルト以外のエージェントPEMパスを使用する場合にのみ設定してください。

  • spec.downloadBaseOps Manager エージェントバイナリがダウンロードされるディレクトリ。デフォルトの値は /var/lib/mongodb-mms-automation です。Kubernetes 演算子は、この値からキーファイルのパスを <downloadBase>/keyfile として導出します。

3

仮想マシンの配置でTLSが構成されていない場合は、移行する前に、既存の仮想マシンの配置でOps ManagerまたはCloud Managerのnet.tls.modeをdisabledに設定します。MongoDBカスタムリソースでこのフィールドを設定しないでください。

ソース配置の TLS モードを未設定のままにしておくと、Kubernetes 演算子は、ソース オートメーション構成と一致しない配置変更を試みます。これは、TLS のデフォルトビューが、TLS をまったく構成していない配置と異なるためです。ソース配置でフィールドを disabled に設定すると、Kubernetes 演算子 のビューがバーチャル マシン配置と一致するようになり、偽の変更を回避できます。

4

dry-runアノテーションが付いたままリソースを適用し、NetworkConnectivityVerified条件を確認します。結果の読み方や失敗時の対処法を学ぶには、「ドライランによる移行準備状況の検証」を参照してください。

クラスターには、コンフィギュレーションサーバー用に<resourceName>-config-*、各シャード用に<resourceName>-<shardIndex>-*、mongosルーター用に<resourceName>-mongos-*というパスワードなしに従って、コンポーネントごとに1つの証明書が必要です。

注意

再調和する前に、生成されたリソースと照らし合わせて、コンポーネントごとの Secret 名が正確であることを確認してください。シャーディングされたクラスターの移行がレプリカセットの移行とどのように異なるかについては、シャーディングされたクラスターを Kubernetes に移行する を参照してください。