3.6. 데이터베이스 애플리케이션 배포
다음 절차에서는 국립공원 위치 정보를 보관하는 MongoDB 데이터베이스인 mongodb-nationalparks를 배포합니다.
사전 요구 사항
-
parksmap프런트엔드 애플리케이션을 배포했습니다. -
국립공원백엔드 애플리케이션을 배포했습니다.
프로세스
다음 명령을 실행하여
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 데이터베이스에 액세스하기 위해 데이터베이스 이름, 사용자 이름, 비밀번호와 같은 정보가 필요합니다. 하지만 이 정보는 민감하므로 포드에 직접 저장해서는 안 됩니다.
비밀을 사용하여 민감한 정보를 저장하고, 해당 비밀을 워크로드와 공유할 수 있습니다.
비밀 객체는 비밀번호, OpenShift Container Platform 클라이언트 구성 파일, 개인 소스 저장소 자격 증명과 같은 민감한 정보를 보관하는 메커니즘을 제공합니다. 보안은 Pod에서 중요한 콘텐츠를 분리합니다. 볼륨 플러그인을 사용하거나 비밀을 환경 변수로 전달하여 비밀을 컨테이너에 마운트할 수 있습니다. 그러면 시스템은 비밀을 이용해 포드에 민감한 정보를 제공할 수 있습니다.
다음 절차에서는 nationalparks-mongodb-parameters 비밀번호를 생성하고 이를 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/nationalparks국립공원배포를 기다려 이 환경 정보를 담은 새로운 개정판을 출시하세요. 다음 명령을 실행하여nationalparks배포 상태를 확인하세요.$ oc rollout status deployment nationalparks출력 예
deployment "nationalparks" successfully rolled out
3.6.2. 데이터베이스에 데이터 로드 링크 복사링크가 클립보드에 복사되었습니다!
mongodb-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"}]