4.7. 데이터베이스에 연결
				national-parks-app 애플리케이션에서 위치 정보를 저장하는 MongoDB 데이터베이스를 배포 및 연결합니다. 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 오브젝트는 암호, OpenShift Container Platform 클라이언트 구성 파일, 개인 소스 리포지토리 자격 증명 등과 같은 중요한 정보를 보유하는 메커니즘을 제공합니다. 보안은 Pod에서 중요한 콘텐츠를 분리합니다. 볼륨 플러그인을 사용하여 컨테이너에 보안을 마운트하거나 시스템에서 시크릿을 사용하여 Pod 대신 작업을 수행할 수 있습니다. 다음 절차에서는 시크릿 nationalparks-mongodb-parameters를 추가하고 이를 nationalparks 워크로드에 마운트합니다.
				
사전 요구 사항
- OpenShift Container Platform 클러스터에 대한 액세스 권한이 있어야 합니다.
- 
							OpenShift CLI(oc)가 설치되어 있어야 합니다.
- 배포된 이미지가 있습니다.
프로세스
- 시크릿을 생성하려면 다음 명령을 입력합니다. - 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 시크릿을 - 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 
- 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 
- 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. 전 세계의 국립공원 
