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'
$ 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 Copied! Toggle word wrap Toggle overflow 输出示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
数据库应用程序。
流程
运行以下命令,使用所需的数据库访问信息创建 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
$ 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 Copied! Toggle word wrap Toggle overflow 运行以下命令,将环境从 secret 导入到
nationalparks
工作负载:oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparks
$ oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 等待
nationalparks
部署推出带有此环境信息的新修订版本。运行以下命令,检查nationalparks
部署的状态:oc rollout status deployment nationalparks
$ oc rollout status deployment nationalparks
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 输出示例
deployment "nationalparks" successfully rolled out
deployment "nationalparks" successfully rolled out
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
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
$ 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 Copied! Toggle word wrap Toggle overflow 输出示例
"Items inserted in database: 2893"
"Items inserted in database: 2893"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
运行以下命令验证映射数据是否已正确载入:
oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/all
$ 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 Copied! Toggle word wrap Toggle overflow 输出示例(修剪)
... , {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]
... , {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow