4.7. 连接到数据库
				部署并连接一个 MongoDB 数据库,其中的 National -parks-app 应用存储位置信息。将 national-parks-app 应用程序标记为地图可视化工具的后端后,parksmap 部署会使用 OpenShift Container Platform 发现机制来自动显示地图。
			
先决条件
- 有访问 OpenShift Container Platform 集群的权限。
- 
						已安装 OpenShift CLI(oc)。
- 您已部署了一个镜像。
流程
- 要连接到数据库,请输入以下命令: - oc new-app quay.io/centos7/mongodb-36-centos7:master --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 quay.io/centos7/mongodb-36-centos7:master --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 
4.7.1. 创建 secret
					Secret 对象提供了一种机制来保存敏感信息,如密码、OpenShift Container Platform 客户端配置文件和私有源存储库凭证等。secret 将敏感内容与 Pod 分离。您可以使用卷插件将 secret 信息挂载到容器中,系统也可以使用 secret 代表 Pod 执行操作。以下流程添加了 secret nationalparks-mongodb-parameters,并将它挂载到 nationalparks 工作负载中。
				
先决条件
- 有访问 OpenShift Container Platform 集群的权限。
- 
							已安装 OpenShift CLI(oc)。
- 您已部署了一个镜像。
流程
- 运行以下命令来创建 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-mongodb-parameters created - secret/nationalparks-mongodb-parameters created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要更新环境变量以将 mongodb secret 附加到 - nationalpartks工作负载,请输入以下命令:- 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 - 输出示例 - deployment.apps/nationalparks updated - deployment.apps/nationalparks updated- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要显示 - nationalpartks部署的状态,请输入以下命令:- 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 
- 要显示 - mongodb-nationalparks部署的状态,请输入以下命令:- oc rollout status deployment mongodb-nationalparks - $ oc rollout status deployment mongodb-nationalparks- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - deployment "mongodb-nationalparks" successfully rolled out - deployment "mongodb-nationalparks" successfully rolled out- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
4.7.2. 载入数据并显示国家公园地图
					您已部署了 parksmap 和 Nationalparks 应用程序,然后部署 mongodb-nationalparks 数据库。但是,没有将数据 加载到 数据库中。
				
先决条件
- 有访问 OpenShift Container Platform 集群的权限。
- 
							已安装 OpenShift CLI(oc)。
- 您已部署了一个镜像。
流程
- 要加载国家公园数据,请输入以下命令: - 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 
- 要为路由添加标签,请输入以下命令: - oc label route nationalparks type=parksmap-backend - $ oc label route nationalparks type=parksmap-backend- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - route.route.openshift.io/nationalparks labeled - route.route.openshift.io/nationalparks labeled- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 要检索您的路由来查看您的地图,请输入以下命令: - oc get routes - $ oc get routes- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD nationalparks nationalparks-user-getting-started.apps.cluster.example.com nationalparks 8080-tcp edge None parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge None - NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD nationalparks nationalparks-user-getting-started.apps.cluster.example.com nationalparks 8080-tcp edge None parksmap parksmap-user-getting-started.apps.cluster.example.com parksmap 8080-tcp edge None- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 将上面检索到的 - HOST/PORT路径复制并粘贴到您的网页浏览器中。您的浏览器应当显示全球的国家公园地图。- 图 4.1. 跨世界的国家公园 
