MongoDB Ops ManagerまたはCloud Managerが仮想マシン上でマネージドする配置を、Kubernetes 演算子の下でKubernetesに移行するには、仮想マシンをホストするものとKubernetes Pod間の双方向のネットワーク接続が必要です。この接続は、Kubernetes 演算子ではなく、ユーザーがプロビジョニングします。
この接続は、ネットワークトポロジー、ファイアウォールルール、DNS 設定、およびクラウドプロバイダーなどを含む、お客様ご自身のネットワーク設定に完全に依存します。こうした理由から、具体的なユニバーサルガイダンスを提供することはできません。このページの残りの部分では、Kubernetes 演算子 が自動的にチェックする内容、チェックしない内容、お使いのバーチャル マシンに Kubernetes Pods を公開するために使用する構成について説明します。
ドライランで検証される内容
ドライ実行する接続バリデータージョブは、Kubernetes 環境からバーチャル マシン ノードにアクセス可能かどうかをチェックします。仮想マシンから Kubernetes への逆方向はチェックされません。その方向は、このページの後で設定に応じたチェックリストを使用して、お客様ご自身で確認する必要があります。
外部アクセスの設定
バーチャル マシン ノードが Kubernetes Pod にアクセスできるようにするには、spec.externalAccess を使用します。これは移行以外で Kubernetes 演算子が使用するのと同じ外部アクセスメカニズムです。各 Pod に LoadBalancer または NodePort を作成し、Kubernetes クラスターの外に Pod を公開します。
オプションで、spec.externalAccess.externalDomainを仮想マシンのノードが解決できるホスト名に設定します。このホスト名のDNS設定はユーザー自身で行う必要があります。Kubernetes 演算子はDNSレコードを作成またはマネージドしません。
重要
MongoDB Search またはベクトル検索をこの配置で使用する場合は、externalDomain を設定しないでください。MongoDBSearch は、externalDomain を設定する MongoDB リソースをサポートしません。spec.externalAccess の代わりに単独で使用してください。詳細については、MongoDB Search 移行との連携を参照してください。
警告
クラスターを作成した後、externalDomain を除くことはできません。このフィールドを設定する前に、ホスト名と DNS 戦略を確認してください。
Kubernetesノードのホスト名は<metadata.name>-0.<spec.externalAccess.externalDomain>というパスワードなしに従い、数値インデックスはノードが追加されるたびに1ずつ増加します。
検証チェックリスト
双方向の接続が正しく構成されていることを保証できる単一のコマンドはありません。このチェックリストを使用して設定を検討し、各項目を独自のネットワークに適応させてください。
バーチャル マシン ノードから Kubernetes ノードのホスト名が解決可能であることを確認してください。
バーチャル マシンから Kubernetes ノードまたは LoadBalancer の IP アドレスにアクセスできることを確認してください。
シャーディングされたクラスター
シャーディングされたクラスターでは、コンポーネントごとに外部アクセスを構成します。
spec.externalAccessはmongosのみを構成します。spec.mongos.externalAccessmongosのルートレベルのフィールドを上書きします。spec.shard.externalAccessおよびspec.configSrv.externalAccessはそれぞれ、シャードとコンフィギュレーションサーバーのレプリカセットのすべてのPodを公開するように設定する必要があります。
接続文字列シークレット
Kubernetes 演算子は、<metadata.name>-cluster-connection-stringという名前の接続文字列Secretを自動的に生成します。このSecretには認証情報は含まれておらず、移行中にメンバーシップが変更されると、Kubernetes 演算子はアクティブなノードと同期し続けます。
アプリケーションをハードコードされた接続文字列ではなく、この Secret に接続するように設定します。そうすることにより、移行中のメンバーシップの変更によるアプリケーションの強制的な切り替えは必要がありません。
順序
Kubernetes に配置を拡張する前に、外部アクセスおよび externalDomain を構成します。Kubernetes 演算子は、移行がすでに開始されている場合、これらの設定を追加することをサポートしていません。