次の手順では、Kubernetes クラスターの内部から Kubernetes によって配置された MongoDB リソースに接続する方法について説明します。
Considerations
Kubernetes リソースを配置したホストとポートに接続できる必要があります。 配置への接続の詳細については、「 MongoDB プロセスへの接続 」を参照してください。
手順
配置用の接続コマンドを取得して実行します。 接続コマンドは、クラスターがホストされている場所に応じて、 MongoDB Ops ManagerまたはCloud Managerアプリケーションから取得できます。 Kubernetes シークレット から接続コマンドを取得することもできます は、 SCRAM 認証 または X を持つ MongoDB ユーザーを追加するときに Kubernetes Operator509 によって自動的に作成されます。
MongoDB Database リソースに接続する手順は、 接続stringの取得方法によって異なります。
クラスターがホストされている場所に応じて、 MongoDB Ops ManagerまたはCloud Managerアプリケーションで次の手順を実行します。
Kubernetes 内からリソースに接続する場合、接続先のホスト名の形式は次のとおりになります。
<k8s-pod-name>.<k8s-internal-service-name>.<k8s-namespace>.<cluster-name>
新しい MongoDB データベースユーザーを作成すると、Kubernetes Operator は新しい Kubernetes シークレット を自動的に作成します。 。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}
(任意) ポッドに Kubernetes シークレット をマウントします。
ポッドにシークレットをマウントできます アプリケーションが認証情報にアクセスできることを確認します。