3.6. 데이터베이스 애플리케이션 배포
다음 절차에서는 국립 공원 위치 정보를 보유할 MongoDB 데이터베이스인 mongodb-nationalparks 를 배포합니다.
사전 요구 사항
-
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'출력 예
--> 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.
3.6.1. 보안을 생성하여 데이터베이스에 대한 액세스 제공 링크 복사링크가 클립보드에 복사되었습니다!
MongoDB 데이터베이스에 액세스하려면 nationalparks 애플리케이션에는 데이터베이스 이름, 사용자 이름 및 암호와 같은 정보가 필요합니다. 그러나 이 정보는 민감하므로 Pod에 직접 저장하지 않아야 합니다.
시크릿 을 사용하여 중요한 정보를 저장하고 해당 시크릿을 워크로드와 공유할 수 있습니다.
보안 오브젝트는 암호, OpenShift Container Platform 클라이언트 구성 파일 및 개인 소스 리포지토리 자격 증명과 같은 중요한 정보를 보유하는 메커니즘을 제공합니다. 보안은 Pod에서 중요한 콘텐츠를 분리합니다. 볼륨 플러그인을 사용하거나 에서 시크릿을 환경 변수로 전달하여 컨테이너에 보안을 마운트할 수 있습니다. 그런 다음 시스템에서 보안을 사용하여 Pod에 중요한 정보를 제공할 수 있습니다.
다음 절차에서는 nationalparks-mongodb-parameters 시크릿을 생성하여 nationalparks 워크로드에 마운트합니다.
사전 요구 사항
-
nationalparks백엔드 애플리케이션을 배포했습니다. -
mongodb-nationalparks데이터베이스 애플리케이션을 배포했습니다.
프로세스
다음 명령을 실행하여 필요한 데이터베이스 액세스 정보를 사용하여 시크릿을 생성합니다.
$ 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다음 명령을 실행하여 시크릿에서
nationalparks워크로드로 환경을 가져옵니다.$ oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparksnationalparks배포가 이 환경 정보를 사용하여 새 버전을 롤아웃할 때까지 기다립니다. 다음 명령을 실행하여nationalparks배포 상태를 확인합니다.$ oc rollout status deployment nationalparks출력 예
deployment "nationalparks" successfully rolled out
3.6.2. 데이터베이스에 데이터 로드 링크 복사링크가 클립보드에 복사되었습니다!
mongodb-nationalparks 데이터베이스를 배포한 후 국립 공원 위치 정보를 데이터베이스에 로드할 수 있습니다.
사전 요구 사항
-
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출력 예
"Items inserted in database: 2893"
검증
다음 명령을 실행하여 맵 데이터가 올바르게 로드되었는지 확인합니다.
$ oc exec $(oc get pods -l component=nationalparks | tail -n 1 | awk '{print $1;}') -- curl -s http://localhost:8080/ws/data/all출력 예(잘라냄)
... , {"id": "Great Zimbabwe", "latitude": "-20.2674635", "longitude": "30.9337986", "name": "Great Zimbabwe"}]