次の手順では、Kubernetes クラスターの内部から Kubernetes によって配置された MongoDB リソースに接続する方法について説明します。
Considerations
Kubernetes リソースを配置したホストとポートに接続できる必要があります。 配置への接続の詳細については、「 MongoDB プロセスへの接続 」を参照してください。
手順
配置用の接続コマンドを取得して実行します。接続コマンドは、クラスターがホストされている場所に応じて、Ops Manager またはCloud Managerアプリケーションから取得できます。 SCRAM認証または X を使用してMongoDBユーザーを追加するときに、 Kubernetes Operator が自動的に作成するKubernetesシークレットから接続コマンドを取得することもできます。509
MongoDB Database リソースに接続する手順は、 接続stringの取得方法によって異なります。
クラスターがホストされている場所に応じて、 MongoDB Ops ManagerまたはCloud Managerアプリケーションで次の手順を実行します。
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.connectionStringSecretName
MongoDB ユーザー リソース仕様 で任意の フィールドを指定して、string KubernetesOperator が作成する接続 シークレットの名前を指定することもできます。
次の手順を実行して認証情報を表示し、接続stringを使用してMongoDBに接続します。
Kubernetes シークレット ファイルを表示するには、 コマンドを実行します。
シークレット を表示するには、ターミナルで次のコマンドを実行し、変数を表内の値に置き換えます。
プレースホルダー | 説明 |
---|---|
{MongoDB リソース名} | MongoDB リソースを識別する、人間が判読できるラベル。 |
{ユーザー名} | MongoDB ユーザーを識別する、人間が判読可能なラベル。 |
kubectl get secret {MongoDB-Resource-Name}-{User-Name}-admin -o jsonpath='{.data}'
このコマンドがエラーを返す場合は、次のコマンドを実行中正しい名前を取得することで、シークレットの名前を確認できます。
kubectl get secrets
接続コマンドを実行します。
配置に接続するには、接続string内の connectionString.standard
値を使用します。
mongosh {connectionString.standard}