Kubernetes 内から MongoDB Database リソースへの接続
次の手順では、Kubernetes クラスターの内部から Kubernetes によって配置された MongoDB リソースに接続する方法について説明します。
Considerations
You must be able to connect to the host and port where you deployed your Kubernetes resource. 配置への接続の詳細については、「 MongoDB プロセスへの接続 」を参照してください。
手順
配置用の接続コマンドを取得して実行します。接続コマンドは、クラスターがホストされている場所に応じて、 Ops Manager または Cloud Manager アプリケーションから取得できます。 Kubernetes secret から接続コマンドを取得することもできます これは、 認証MongoDB または X を持つ MongoDB ユーザーを 追加するときに、 Kubernetes Operator が自動的に作成するものです。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 シークレット を自動的に作成します。 。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 シークレット をマウントします。
ポッドにシークレットをマウントできます アプリケーションが認証情報にアクセスできることを確認します。