从远程连接到openshift 3 mongodb?

fab*_*ian 5 mongodb openshift openshift-3

如何从本地Mac 通过https://mongobooster.com/连接到Openshift 3 MongoDB ?吊舱中的凭据不起作用。

Pod: nodejs-mongo-persistent-1-rt6ch

Connected to MongoDB at: mongodb://userLorem:ABC123SomePassword@172.123.123.123:27017/sampledb
Run Code Online (Sandbox Code Playgroud)

use*_*287 6

只是充实Graham的答案,以防可能有所帮助(尽管我并不是一个权威)。

这对我来说在Robo 3T(以前称为RoboMongo)中有效-这是MongoDB管理的GUI。

结果是我可以使用GUI在OpenShift上与MongoDB实例进行远程交互。

健全性/数据检查和环境熟悉

假设您在OpenShift上运行了MongoDB,要获取相关数据,请转到:

Your Project> Resources> Secrets> mongodb>[ click reveal secret ]

如果尚未将这些值复制到安全的地方,请执行以下操作:

数据库管理员密码:*****

数据库名称:sampledb

数据库密码:*****

数据库用户:*****

假设您已安装OpenShift CLI工具,则可以执行以下操作来熟悉项目环境:

oc get pods
Run Code Online (Sandbox Code Playgroud)

将返回类似:

NAME                     READY     STATUS       RESTARTS   AGE
mongodb-1-XXXX5          1/1       Running      0          12h
my-node-app-10-build     0/1       Completed    0          10h
my-node-app-2-build      0/1       Init:Error   0          11h
my-node-app-8-cg2v2      1/1       Running      0          10h
my-node-app-9-build      0/1       Completed    0          10h
Run Code Online (Sandbox Code Playgroud)

然后,您可以rsh使用以下命令进入mongo pod(替换为实际的mongodb pod名称):

oc rsh mongodb-1-XXXX5
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令运行mongo shell(使用您之前从控制台获得的值):

// don't do this...
// normal user name, normal user password (won't allow you to run 'show dbs')
// mongo -u "database-user" -p "database-password" sampledb

// do this...
// admin user, admin user password (this lets you run 'show dbs' etc)
mongo -u "admin" -p "database-admin-password" admin
Run Code Online (Sandbox Code Playgroud)

设置端口转发

上面的步骤使我对所使用的内容更加熟悉,然后可以研究端口转发:

https://learn.openshift.com/introduction/port-forwarding

有关在OpenShift上远程访问MongoDB的相关部分在第四步中:

要在本地计算机和OpenShift上运行的数据库之间设置端口转发,请使用oc port-forward命令。您需要传递容器的名称和数据库服务正在使用的端口的详细信息,以及要使用的本地端口。

该命令的格式为:

oc port-forward <pod-name> <local-port>:<remote-port>

就我而言,我这样做:

oc port-forward mongodb-1-XXXX5 34000:27017
Run Code Online (Sandbox Code Playgroud)

因此,这意味着:

客户端在本地侦听端口34000,并转发到Pod中的27017。

请参阅:https//docs.openshift.com/online/dev_guide/port_forwarding.html

远程GUI设置

然后定义的设置Robo 3T是:

类型:直接连接

名称:OpenShift MongoDB实例

地址:本地主机:34000

然后在“身份验证”标签上...

执行身份验证:已选中

数据库:admin

用户名:admin

密码:[您的数据库管理员密码]

验证机制:

SCRAM-SHA-1


Gra*_*ton 1

您需要使用端口转发。请参阅端口转发教程:

该示例针对 PostgreSQL,但原理相同。