使用IBM Cloud Operator将IBM Cloud的服务(Database for MongoDB)的连接信息导入到OpenShift的Secrets中,并尝试从Node.js应用程序进行连接

首先

在IBM Cloud上使用Node.js和MongoDB开发应用程序时,我们搭建了一个OpenShift集群作为应用程序容器基础架构,并准备了一个使用IBM Cloud Database for MongoDB作为托管数据库服务的环境。在OpenShift上的Node.js应用程序中连接数据库时,需要使用MongoDB(IBM Cloud Database for MongoDB服务)的连接信息。IBM提供了一个名为IBM Cloud Operator的工具(机制),作为将IBM托管数据库服务连接信息导入(绑定)到OpenShift Secrets的一种方法,并通过简单的步骤介绍如何使用该工具。

顺便提一下,如果作为应用程序容器基础架构使用IBM提供的托管Kubernetes服务,如”OpenShift on IBM Cloud”或”IBM Kubernetes Service”,您可以在CLI上使用”ibmcloud ks cluster service bind”命令来完成服务的绑定(将连接信息导入K8s的Secrets)。

所有的步骤

    1. 在 OpenShift 上安装 IBM Cloud Operator

 

    1. 使用 IBM Cloud Operator 将已运行的 IBM Cloud Database for MongoDB 注册为服务

 

    1. 通过 IBM Cloud Operator 添加绑定注册

 

    1. 在 OpenShift 上查看已注册的 Secrets

 

    使用 Node.js 示例应用程序访问 MongoDB 数据库,尝试使用已注册的 Secrets 信息进行实际连接

步骤1:安装IBM Cloud Operator。

image.png
image.png
image.png
image.png

步骤2: 使用IBM Cloud Operator,将已运行的IBM Cloud Database for MongoDB注册为服务。

IBM Cloud Operator 的使用方法等详细说明已在以下的GitHub网址中进行了描述。
https://github.com/IBM/cloud-operators/blob/master/README.md

image.png

点击Service的”Create Instance”,在YAML View中参考以下代码,并写入适合自己环境的代码进行替换。

apiVersion: ibmcloud.ibm.com/v1
kind: Service
metadata:
  name: db4mongodb
  namespace: mongodb-sample
spec:
  plan: Alias
  serviceClass: databases-for-mongodb

名称:稼働中的数据库服务名称
命名空间:存放应用程序的项目(命名空间)名称
计划:别名(对于稼働中的服务,固定值)
服务类别:databases-for-mongodb(针对IBM Cloud数据库- MongoDB的值)


#補充:倘若您想确认自己环境中已运行的数据库服务名称或serviceClass名称,可通过CLI途径进行。

% ibmcloud resource service-instances --long

当你执行它时,可以确认。


image.png
image.png

步骤3:使用IBM Cloud操作员,在绑定中添加并注册。

与第二步相同,在IBM Cloud Operator的详细页面中,点击“Create Instance”以生成绑定,然后在YAML View中参考以下代码,在此基础上编写(替换)适用于自己环境的代码。

apiVersion: ibmcloud.ibm.com/v1
kind: Binding
metadata:
  name: binding-mongodb
  namespace: mongodb-sample
spec:
  secretName: binding-db4mongodb
  serviceName: db4mongodb

名称:任意的绑定名称
命名空间:部署应用程序的项目(命名空间)名称
秘钥名称:在OpenShift上使用的任意秘钥名称
服务名称:之前步骤中定义的服务名称

image.png
image.png

步骤4:查看在OpenShift上注册的Secrets。

image.png
image.png

image.png

步骤5:在访问MongoDB数据库的Node.js示例应用程序中,使用注册的Secrets信息,尝试实际连接。

这次我们参考了MongoDB数据库的Docs上的以下教程来进行操作:
https://cloud.ibm.com/docs/databases-for-mongodb?topic=cloud-databases-tutorial-k8s-app
并且使用了以下提供的源代码来验证应用程序的运行:
https://github.com/IBM-Cloud/clouddatabases-helloworld-kubernetes-examples/blob/node/mongodb/server.js


为了您的参考,我将简要说明验证示例应用程序运行的步骤。

A-1. 访问位于GitHub上的源代码存储库。

image.png
image.png
image.png

修改样本源代码的一部分
在上述源代码中,主要的 server.js 文件中,我们稍微提到了在“开始”章节中,使用命令“ibmcloud ks cluster service bind”在CLI上生成的,Secrets 名称为“binding”的json格式数据的提取。
这次绑定的(导入到 Secrets 中的)“connection”包含在“binding”的下一层中的json结构中,因此我们需要稍微修改一下代码。

image.png
image.png
image.png
image.png
image.png
image.png
image.png

在IBM Cloud上创建一个应用程序,该应用程序从OpenShift上的Node.js连接到IBM Cloud Database for MongoDB。在使用IBM Cloud Operator时,我们介绍了一系列的步骤,将Database for MongoDB的连接信息导入到OpenShift上的Secrets中。

IBM Cloud Operator仍处于发展阶段,将MongoDB数据库的连接信息导入到OpenShift上有多种方法,但对于不熟悉IBM Cloud和OpenShift等技术的人来说,希望这对您能有些参考价值。

广告
将在 10 秒后关闭
bannerAds