Product Master 용 MongoDB 설치

Product Master 서비스의 DAM (Digital Asset Management) 또는 ML (Machine Learning) 기능을 사용하려면 Helm 차트를 사용하여 MongoDB 를 설치해야 합니다.

시작하기 전에

다음을 설치해야 합니다.
  • Helm
  • vCPU - 3
  • 메모리-2Gi RAM

프로시저

  1. 인스턴스 관리자로 Red Hat® OpenShift® 클러스터에 로그인하십시오.
    oc login OpenShift_URL:port
  2. 다음 명령을 사용하여 Product Master 가 설치된 프로젝트 (네임스페이스) 로 변경하십시오.
    oc project <namespace>
  3. 다음 명령을 사용하여 이 서비스에 필요한 권한을 지정하십시오.
    oc adm policy add-scc-to-user privileged system:serviceaccount:<namespace>:mongodb-Kubernetes-operator
    oc adm policy add-scc-to-user privileged system:serviceaccount:<namespace>:mongodb-database
  4. 다음 명령을 사용하여 네임스페이스의 모든 릴리스를 나열하십시오.
    helm repo list
    출력
    NAME URL
    mongodb https://mongodb.github.io/helm-charts
  5. 다음 명령을 사용하여 MongoDB helm-charts 저장소를 Helm 에 추가하십시오.
    helm repo add MongoDB https://mongodb.github.io/helm-charts
  6. 다음 명령을 사용하여 MongoDB 를 설치하십시오.
    helm install community-operator MongoDB/community-operator 
  7. 다음 명령을 사용하여 PersistentVolume YAML 파일을 작성하십시오.
    cat <<EOF| oc apply –f -
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        app: productmaster-mongodb-svc
      name: logs-volume-productmaster-mongodb-0
      namespace: <namespace>
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: <storage_class>
      resources:
        requests:
          storage: 2G
      volumeMode: Filesystem
    EOF
    cat <<EOF| oc apply –f -
    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      labels:
        app: productmaster-mongodb-svc
      name: data-volume-productmaster-mongodb-0
      namespace: <namespace>
    spec:
      accessModes:
        - ReadWriteOnce
      storageClassName: <storage_class>
      resources:
        requests:
          storage: 2G
      volumeMode: Filesystem
    EOF
  8. 다음 항목을 사용하여 CR 파일을 생성하고 적용합니다. CR 파일의 사용자 이름 및 비밀번호 필드를 업데이트합니다.
    cat <<EOF| oc apply –f -
    apiVersion: mongodbcommunity.mongodb.com/v1
    kind: MongoDBCommunity
    metadata:
      name: productmaster-mongodb
    spec:
    #To create multiple replicas, update the value of the members property to the number of replicas required
      members: 1
      type: ReplicaSet
      version: "7.0.2"
      security:
        authentication:
          modes: ["SCRAM-SHA-1"]
      users:
        - name: <mongodb_username>
          db: admin
          passwordSecretRef:
            name: my-user-password
          roles:
            - name: clusterAdmin
              db: admin 
            - name: userAdminAnyDatabase
              db: admin 
            - name: readWriteAnyDatabase
              db: admin
            - name: backup
              db: admin
          
          scramCredentialsSecretName: my-scram
      statefulSet:
        spec:
          serviceName: productmaster-mongodb-svc
          selector: {}
    
    # the user credentials will be generated from this secret
    # once the credentials are generated, this secret is no longer required
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: my-user-password
    type: Opaque
    stringData:
      password: <mongodb_password>
    EOF
  9. 보다 MongoDB 인스턴스와 MongoDB 다음 명령을 사용하여 운영자 상태를 확인합니다.
    oc get pods | grep mongodb

    예제 출력

    NAME                                 READY   STATUS   RESTARTS     AGE
    mongodb-kubernetes-operator-857946dd48-wb29f    1/1     Running     0        1m40s
    productmaster-mongodb-0                         2/2     Running     0        13s
  10. 다음 명령을 사용하여 MongoDB 인스턴스로 이동하십시오.
    oc rsh productmaster-mongodb-0
  11. 다음 명령을 사용하여 MongoDB 인스턴스가 시작되어 사용자 이름 및 비밀번호로 실행 중인지 확인하십시오.
    mongosh
    use admin
    db.auth (“username”,”password”)
    use {{ db_name }
    db.createcollection(‘test1’)
  12. mongodb_cr_openshift 파일에 지정된 것과 동일한 서비스 이름이 있는지 확인하십시오. 다음 명령을 사용하여 서비스 세부사항을 참조하십시오.
    oc get svc | grep mongodb

다음에 수행할 작업

IBM® Product Master 설치 중에 app_secrets.yaml 파일에서 다음을 지정하십시오.
특성
mongodb_host < mongodb_services_name>
mongodb_name < mongodb_db_name>
mongodb_pass < mongodb_password>
mongodb_user < mongodb_username>