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 --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 dc18f52 (8 months old) from quay.io for "quay.io/centos7/mongodb-36-centos7"
    
        MongoDB 3.6
        -----------
        MongoDB (from humongous) is a free and open-source cross-platform document-oriented database program. Classified as a NoSQL database program, MongoDB uses JSON-like documents with schemas. This container image contains programs to run mongod server.
    
        Tags: database, mongodb, rh-mongodb36
    
        * 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

추가 리소스

4.7.1. 시크릿 생성

Secret 오브젝트는 암호, OpenShift Container Platform 클라이언트 구성 파일, 개인 소스 리포지토리 자격 증명 등과 같은 중요한 정보를 보유하는 메커니즘을 제공합니다. 보안은 Pod에서 중요한 콘텐츠를 분리합니다. 볼륨 플러그인을 사용하여 컨테이너에 보안을 마운트하거나 시스템에서 시크릿을 사용하여 Pod 대신 작업을 수행할 수 있습니다. 다음 절차에서는 시크릿 nationalparks-mongodb-parameters를 추가하고 이를 nationalparks 워크로드에 마운트합니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 대한 액세스 권한이 있어야 합니다.
  • OpenShift CLI(oc)가 설치되어 있어야 합니다.
  • 배포된 이미지가 있습니다.

절차

  1. 시크릿을 생성하려면 다음 명령을 입력합니다.

    $ 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

    출력 예

    secret/nationalparks-mongodb-parameters created

  2. mongodb 시크릿을 nationalpartks 워크로드에 연결하기 위해 환경 변수를 업데이트하려면 다음 명령을 입력합니다.

    $ oc set env --from=secret/nationalparks-mongodb-parameters deploy/nationalparks

    출력 예

    deployment.apps/nationalparks updated

  3. nationalparks 배포 상태를 표시하려면 다음 명령을 입력합니다.

    $ oc rollout status deployment nationalparks

    출력 예

    deployment "nationalparks" successfully rolled out

  4. mongodb-nationalparks 배포 상태를 표시하려면 다음 명령을 입력합니다.

    $ oc rollout status deployment mongodb-nationalparks

    출력 예

    deployment "nationalparks" successfully rolled out
    deployment "mongodb-nationalparks" successfully rolled out

4.7.2. 데이터 로드 및 국립 공원 지도 표시

parksmapnationalparks 애플리케이션을 배포한 다음 mongodb-nationalparks 데이터베이스를 배포했습니다. 그러나 데이터베이스에 데이터가 로드되지 않았습니다.

사전 요구 사항

  • OpenShift Container Platform 클러스터에 대한 액세스 권한이 있어야 합니다.
  • OpenShift CLI(oc)가 설치되어 있어야 합니다.
  • 배포된 이미지가 있습니다.

절차

  1. 국립 공원 데이터를 로드하려면 다음 명령을 입력합니다.

    $ 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"

  2. 데이터가 올바르게 로드되었는지 확인하려면 다음 명령을 입력합니다.

    $ 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"}]

  3. 경로에 레이블을 추가하려면 다음 명령을 입력합니다.

    $ oc label route nationalparks type=parksmap-backend

    출력 예

    route.route.openshift.io/nationalparks labeled

  4. 경로를 검색하여 지도를 보려면 다음 명령을 입력합니다.

    $ oc get routes

    출력 예

    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

  5. 위에서 검색한 HOST/PORT 경로를 복사하여 웹 브라우저에 붙여넣습니다. 사용 중인 브라우저에는 전 세계의 국립 공원 지도가 표시되어야 합니다.

    그림 4.1. 전 세계의 국립공원

    전 세계의 국립 공원 지도가 위치 추적 기능과 함께 표시됩니다.

추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.