Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/
适用于Kubernetes Operator 的MongoDB控制器
/ /

从 Kubernetes 内部连接到 MongoDB 数据库资源

以下过程描述如何从 Kubernetes 集群内部连接到 Kubernetes 部署的 MongoDB 资源。

您必须能够连接到部署 Kubernetes 资源的主机和端口。 要了解有关连接到部署的更多信息,请参阅连接到 MongoDB 进程。

为您的部署检索并运行连接命令。您可以从 Ops Manager Cloud Manager 应用程序检索连接命令,具体取决于集群的托管位置。您还可以从 Kubernetes 密钥中检索连接命令,该命令在您添加具有 SCRAM 身份验证的 MongoDB 用户或 X509 时由 Kubernetes Operator 自动创建。

连接 MongoDB 数据库资源的过程视您想要检索连接字符串的方式而有所不同:

Ops ManagerCloud Manager 应用程序中执行以下步骤,具体取决于托管集群的位置:

1

单击左侧导航栏中的 Deployment

2
3
4
5

例子

要连接到名为 shardedcluster 的分片集群资源,可以使用以下连接字符串:

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密钥。 Kubernetes密钥包含有关新数据库用户的以下信息:

  • username:数据库用户的用户名

  • password:数据库用户的密码

  • connectionString.standard标准连接string ,可以让您以此数据库用户的身份连接到数据库。

  • connectionString.standardSrvDNS 种子列表连接string ,可以让您以此数据库用户的身份连接到数据库。

注意

或者,您可以在MongoDB 用户资源规范中指定可选的spec.connectionStringSecretName字段,以指定 Kubernetes Operator 创建的连接字符串密钥的名称。

执行以下步骤以查看档案并使用连接string连接到MongoDB :

1

在终端中运行以下命令以查看密钥,并将变量替换为表中的值:

占位符
说明

{MongoDB-Resource-Name}

用于标识 MongoDB 资源的人类可读标签。

{User-Name}

用于标识 MongoDB 用户的人类可读标签。

kubectl get secret {MongoDB-Resource-Name}-{User-Name}-admin -o jsonpath='{.data}'

如果此命令返回错误,您可以通过运行以下命令并检索正确名称来验证密钥名称:

kubectl get secrets
2
3

使用连接string中的 connectionString.standard 值连接到部署。

mongosh {connectionString.standard}
4

您可以在 Pod 中挂载密钥,确保应用程序可以访问权限凭证。

后退

连接