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'
$ 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. 보안을 생성하여 데이터베이스에 대한 액세스 제공 링크 복사링크가 클립보드에 복사되었습니다!
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
$ 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 다음 명령을 실행하여 시크릿에서
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
데이터베이스를 배포한 후 국립 공원 위치 정보를 데이터베이스에 로드할 수 있습니다.
사전 요구 사항
-
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