3.6. 部署数据库应用程序


以下流程部署 mongodb-nationalparks,它是一个 MongoDB 数据库,它将保存国家 park 位置信息。

先决条件

  • 您已部署了 parksmap 前端应用程序。
  • 您已部署了 nationalparks 后端应用程序。

流程

  • 运行以下命令部署 mongodb-nationalparks 数据库应用程序:

    $ oc new-app registry.redhat.io/rhmap47/mongodb --name mongodb-nationalparks -e MONGODB_USER=mongodb -e MONGODB_PASSWORD=mongodb -e MONGODB_DATABASE=mongodb -e MONGODB_ADMIN_PASSWORD=mongodb -l 'app.kubernetes.io/part-of=national-parks-app,app.kubernetes.io/name=mongodb'
    Copy to Clipboard Toggle word wrap

    输出示例

    --> Found container image 7a61087 (12 days old) from quay.io for "quay.io/mongodb/mongodb-enterprise-server"
    
        * An image stream tag will be created as "mongodb-nationalparks:latest" that will track this image
    
    --> Creating resources with label app.kubernetes.io/name=mongodb,app.kubernetes.io/part-of=national-parks-app ...
        imagestream.image.openshift.io "mongodb-nationalparks" created
        deployment.apps "mongodb-nationalparks" created
        service "mongodb-nationalparks" created
    --> Success
        Application is not exposed. You can expose services to the outside world by executing one or more of the commands below:
         'oc expose service/mongodb-nationalparks'
        Run 'oc status' to view your app.
    Copy to Clipboard Toggle word wrap

3.6.1. 通过创建 secret 提供对数据库的访问

nationalparks 应用程序需要信息,如数据库名称、用户名和密码来访问 MongoDB 数据库。但是,由于此信息敏感,因此不应将这些信息直接存储在 pod 中。

您可以使用 secret 存储敏感信息,并与工作负载共享该 secret。

Secret 对象提供了一种机制来保存敏感信息,如密码、OpenShift Container Platform 客户端配置文件和私有源存储库凭证。secret 将敏感内容与 Pod 分离。您可以使用卷插件或作为环境变量传递 secret 来将 secret 挂载到容器中。然后,系统可以使用 secret 为 pod 提供敏感信息。

以下流程创建 nationalparks-mongodb-parameters secret,并将其挂载到 nationalparks 工作负载。

先决条件

  • 您已部署了 nationalparks 后端应用程序。
  • 您已部署了 mongodb-nationalparks 数据库应用程序。

流程

  1. 运行以下命令,使用所需的数据库访问信息创建 secret:

    $ oc create secret generic nationalparks-mongodb-parameters --from-literal=DATABASE_SERVICE_NAME=mongodb-nationalparks --from-literal=MONGODB_USER=mongodb --from-literal=MONGODB_PASSWORD=mongodb --from-literal=MONGODB_DATABASE=mongodb --from-literal=MONGODB_ADMIN_PASSWORD=mongodb
    Copy to Clipboard Toggle word wrap
  2. 运行以下命令,将环境从 secret 导入到 nationalparks 工作负载:

    $ oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparks
    Copy to Clipboard Toggle word wrap
  3. 等待 nationalparks 部署推出带有此环境信息的新修订版本。运行以下命令,检查 nationalparks 部署的状态:

    $ oc rollout status deployment nationalparks
    Copy to Clipboard Toggle word wrap

    输出示例

    deployment "nationalparks" successfully rolled out
    Copy to Clipboard Toggle word wrap

3.6.2. 将数据加载到数据库中

部署 mongodb-nationalparks 数据库后,您可以将国家 park 位置信息加载到数据库中。

先决条件

  • 您已部署了 nationalparks 后端应用程序。
  • 您已部署了 mongodb-nationalparks 数据库应用程序。

流程

  • 运行以下命令载入国家公园数据:

    $ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/load
    Copy to Clipboard Toggle word wrap

    输出示例

    "Items inserted in database: 2893"
    Copy to Clipboard Toggle word wrap

验证

  • 运行以下命令验证映射数据是否已正确载入:

    $ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/all
    Copy to Clipboard Toggle word wrap

    输出示例(修剪)

    ...
    , {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]
    Copy to Clipboard Toggle word wrap

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat