次の手順では、Kubernetes クラスターの内部から Kubernetes によって配置された MongoDB リソースに接続する方法について説明します。
配置用の接続コマンドを取得して実行します。接続コマンドは、クラスターがホストされている場所に応じて、 MongoDB Ops ManagerまたはCloud Managerアプリケーションから取得できます。また、SCRAM認証または X を使用してMongoDBユーザーを追加するときに、 Kubernetes Operator が自動的に作成するKubernetes secret509 から接続コマンドを取得することもできます。
MongoDB Database リソースに接続する手順は、 接続stringの取得方法によって異なります。
クラスターがホストされている場所に応じて、 MongoDB Ops ManagerまたはCloud Managerアプリケーションで次の手順を実行します。
左側のナビゲーションで [ Deployment ] をクリックします。
例
{0 という名前のシャーディングされたクラスターshardedcluster リソースに接続するには、次の接続string を使用します。
| mongosh --host shardedcluster-mongos-0.shardedcluster-svc.mongodb.svc.cluster.local \ |
| --port 27017 |
Kubernetes 内からリソースに接続する場合、接続先のホスト名の形式は次のとおりになります。
| <k8s-pod-name>.<k8s-internal-service-name>.<k8s-namespace>.<cluster-name> |
新しいMongoDBデータベースユーザーを作成すると、 Kubernetes Operator は自動的に新しいKubernetes secret を作成します。Kubernetesシークレットには、新しいデータベースユーザーに関する次の情報が含まれています。
username: データベースユーザーのユーザー名
password: データベースユーザーのパスワード
connectionString.standard: このデータベース ユーザーとしてデータベースに接続できる標準接続string 。
connectionString.standardSrv: このデータベースユーザーとしてデータベースに接続できるDNS シード リスト接続string 。
注意
あるいは、spec.connectionStringSecretNameMongoDB ユーザー リソース仕様 で任意の フィールドを指定して、string KubernetesOperator が作成する接続 シークレットの名前を指定することもできます。
次の手順を実行して認証情報を表示し、接続stringを使用してMongoDBに接続します。
シークレット を表示するには、ターミナルで次のコマンドを実行し、変数を表内の値に置き換えます。
| |
|---|
| MongoDB リソースを識別する、人間が判読できるラベル。 |
| MongoDB ユーザーを識別する、人間が判読可能なラベル。 |
| kubectl get secret {MongoDB-Resource-Name}-{User-Name}-admin -o jsonpath='{.data}' |
このコマンドがエラーを返す場合は、次のコマンドを実行中正しい名前を取得することで、シークレットの名前を確認できます。
配置に接続するには、接続string内の connectionString.standard 値を使用します。
| mongosh {connectionString.standard} |