Kubernetes 内から MongoDB Database リソースへの接続
次の手順では、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 シークレット をマウントします。
ポッドにシークレットをマウントできます アプリケーションが認証情報にアクセスできることを確認します。