기존 Red Hat OpenShift Container Platform에 Mobile Foundation 배치

improve this page | report issue

IBM Mobile Foundation Operator를 사용하여 OpenShift 클러스터에서 Mobile Foundation 인스턴스를 설치하는 방법에 대해 알아봅니다.

OpenShift Container Platform(OCP)에 대한 인타이틀먼트를 가져오는 두 가지 방법이 있습니다.

  • IBM Cloud Pak for Applications에 대한 인타이틀먼트를 보유합니다. 여기에 OpenShift Container Platform 인타이틀먼트가 포함되어 있습니다.
  • Red Hat에서 구매한 기존의 OpenShift Container Platform을 보유합니다.

OCP에 Mobile Foundation을 배치하는 단계는 OCP 인타이틀먼트를 확보한 방법과 상관없이 동일합니다.

전제조건

다음은 Mobile Foundation Operator를 사용하여 Mobile Foundation 인스턴스를 설치하는 프로세스를 시작하기 전의 전제조건입니다.

  • OpenShift 클러스터r v3.11 이상.
  • OpenShift 클라이언트 도구 (oc).
  • Docker를 설치하고 설정하십시오.
  • Mobile Foundation에는 데이터베이스가 필요합니다. 지원되는 데이터베이스를 작성하고 추후 사용을 위한 데이터베이스 액세스 세부사항을 가까이 보관하십시오. 여기를 참조하십시오.
  • Mobile Foundation Analytics에는 Analytics 데이터를 지속하기 위해 마운트된 스토리지 볼륨이 필요합니다(NFS가 권장됨).

아키텍처

아래 이미지는 Red Hat OpenShift에서 모바일 서비스의 내부 아키텍처를 보여줍니다.

아키텍처

IBM Mobile Foundation 인스턴스 설치

IBM Mobile Foundation 패키지를 다운로드하십시오.

IBM Passport Advantage(PPA)에서 Openshift용 IBM Mobile Foundation 패키지를 다운로드하십시오. workdir 디렉토리에 아카이브를 압축 해제하십시오.

참고: PPA 패키지의 유효성을 검증하고 서명을 확인하려는 경우 여기를 참조하십시오.

Entitled Registry의 Mobile Foundation 이미지 사용

PPA 이미지를 OpenShift 내부 이미지 레지스트리나 다른 외부 레지스트리로 로드하는 방법 외에 Entitled Registry(ER)의 이미지를 사용할 수 있습니다.

  1. Entitled Registry로 키를 가져옵니다. IBM Cloud Pak for Applications을 주문한 후, Cloud Pak 소프트웨어의 인타이틀먼트 키가 MyIBM 계정에 연결됩니다. 사용자의 ID에 지정된 인타이틀먼트 키를 가져옵니다.
    • 권한이 있는 소프트웨어와 연관된 IBM ID와 비밀번호로 MyIBM Container Software Library에 로그인합니다.
    • 인타이틀먼트 키 섹션에서 코드 키를 선택하여 인타이틀먼트 키를 클립보드에 복사합니다.
  2. Entitled Registry의 설치 프로그램 이미지에서 설치 구성을 추출합니다.
    명령행을 사용하여 다음 명령을 실행합니다.
    • Entitled Registry 정보를 설정합니다. 다음을 설정하는 내보내기 명령을 실행합니다. ENTITLED_REGISTRYcp.icr.io로, ENTITLED_REGISTRY_USERcp로, ENTITLED_REGISTRY_KEY를 이전 단계에서 가져온 인타이틀먼트 키로 설정.
       export ENTITLED_REGISTRY=cp.icr.io
       export ENTITLED_REGISTRY_USER=cp
       export ENTITLED_REGISTRY_KEY=<apikey>
      
    • 다음 docker login 명령으로 Entitled Registry에 로그인할 수 있는지 확인합니다.
       docker login "$ENTITLED_REGISTRY" -u "$ENTITLED_REGISTRY_USER" -p "$ENTITLED_REGISTRY_KEY"
      
  3. Entitled Registry 세부사항을 사용하여 이미지 풀 시크릿을 생성합니다.
    • 다음 명령을 사용합니다.
      oc create secret docker-registry -n <my_project_name> er-image-pullsecret --docker-server=cp.icr.io --docker-username=<my_username> --docker-password=<my_api_key>
      
    • 풀 시크릿을 deploy/operator.yamldeploy/crds/charts_v1_mfoperator_cr.yaml 파일에 추가합니다.

Mobile Foundation에 대한 OpenShift 프로젝트 설정

  1. OpenShift 클러스터에 로그인하고 새 프로젝트를 작성하십시오.
    export MFOS_PROJECT=<project-name>
    oc login -u <username> -p <password> <cluster-url>
    oc new-project $MFOS_PROJECT
    
  2. 다음 명령을 사용하여 Openshift에 대한 IBM Mobile Foundation 패키지를 압축 해제하십시오.
      tar xzvf IBM-MobileFoundation-Openshift-Pak-<version>.tar.gz -C <workdir>/
    
  3. 로컬에서 OpenShift 레지스트리에 이미지를 로드하고 푸시하십시오.
     docker login -u <username> -p $(oc whoami -t) $(oc registry info)
     cd <workdir>/images
     ls * | xargs -I{} docker load --input {}
    
     for file in * ; do
       docker tag ${file/.tar.gz/} $(oc registry info)/$MFOS_PROJECT/${file/.tar.gz/}
       docker push $(oc registry info)/$MFOS_PROJECT/${file/.tar.gz/}
     done
    
  4. 데이터베이스 신임 정보로 시크릿을 작성하십시오.

     cat <<EOF | oc apply -f -
     apiVersion: v1
     data:
       MFPF_ADMIN_DB_USERNAME: <base64-encoded-string>
       MFPF_ADMIN_DB_PASSWORD: <base64-encoded-string>
       MFPF_RUNTIME_DB_USERNAME: <base64-encoded-string>
       MFPF_RUNTIME_DB_PASSWORD: <base64-encoded-string>
       MFPF_PUSH_DB_USERNAME: <base64-encoded-string>
       MFPF_PUSH_DB_PASSWORD: <base64-encoded-string>
       MFPF_LIVEUPDATE_DB_USERNAME: <base64-encoded-string>
       MFPF_LIVEUPDATE_DB_PASSWORD: <base64-encoded-string>
       MFPF_APPCNTR_DB_USERNAME: <base64-encoded-string>
       MFPF_APPCNTR_DB_PASSWORD: <base64-encoded-string>
     kind: Secret
     metadata:
       name: mobilefoundation-db-secret
     type: Opaque
     EOF
    

    참고: 인코딩된 문자열은 echo -n <string-to-encode> | base64를 사용하여 확보할 수 있습니다.

  5. Mobile Foundation Analytics의 경우 지속적 볼륨(PV)을 구성하십시오.
     cat <<EOF | kubectl apply -f -
     apiVersion: v1
     kind: PersistentVolume
     metadata:
       labels:
         name: mfanalyticspv  
       name: mfanalyticspv
     spec:
       capacity:
         storage: 20Gi
       accessModes:
         - ReadWriteMany
       persistentVolumeReclaimPolicy: Retain
       nfs:
         path: <nfs-mount-volume-path>
         server: <nfs-server-hostname-or-ip>
     EOF
    
  6. Mobile Foundation Analytics의 경우 지속적 볼륨 청구(PVC)를 구성하십시오.
    cat <<EOF | kubectl apply -f -
     apiVersion: v1
     kind: PersistentVolumeClaim
     metadata:
       name: mfanalyticsvolclaim
       namespace: <projectname-or-namespace>
     spec:
       accessModes:
         - ReadWriteMany
       resources:
         requests:
           storage: 20Gi
       selector:
         matchLabels:
           name: mfanalyticspv
       volumeName: mfanalyticspv
     EOF
    

참고 : Analytics를 배치하기 전에 PV 및 PVC 상태가 바운드 상태인지 확인하십시오.

IBM Mobile Foundation Operator 배치

  1. 태그와 함께 Operator 이미지 이름(mf-operator)이 deploy/operator.yaml에서 Operator에 대해 설정되었는지 확인하십시오(REPO_URL).

     sed -i 's|REPO_URL|<image-repo-url>:<image-tag>|g' deploy/operator.yaml
    
  2. deploy/cluster_role_binding.yaml에서 클러스터 역할 바인딩 정의에 대해 네임스페이스가 설정되었는지 확인하십시오(REPLACE_NAMESPACE).

     sed -i 's|REPLACE_NAMESPACE|$MFOS_PROJECT|g' deploy/cluster_role_binding.yaml
    

    Operator 이미지 태그 1.0.11 이상의 경우 아래 명령을 사용하십시오.

     sed -i 's|REPLACE_NAMESPACE|$MFOS_PROJECT|g' deploy/role_binding.yaml
    
  3. 다음 명령을 실행하여, CRD, Operator를 배치하고 SCC(Security Context Constraints)를 설치하십시오.

     oc create -f deploy/crds/charts_v1_mfoperator_crd.yaml
     oc create -f deploy/
     oc adm policy add-scc-to-group mf-operator system:serviceaccounts:$MFOS_PROJECT
    

    Operator 이미지 태그 1.0.11 이상의 경우 아래 명령을 사용하십시오.

     oc create -f deploy/crds/charts_v1_mfoperator_crd.yaml
     oc create -f deploy/
     oc adm policy add-scc-to-group mf-operator system:serviceaccounts:$MFOS_PROJECT
     oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:$MFOS_PROJECT:mf-operator
    

IBM Mobile Foundation 컴포넌트 배치

  1. Mobile Foundation 컴포넌트를 배치하려면 요구사항에 따라 사용자 정의 자원 구성 deploy/crds/charts_v1_mfoperator_cr.yaml을 수정하십시오. 사용자 정의 구성에 대한 전체 참조는 여기에서 제공합니다.

    중요한 참고: 배치 후 Mobile Foundation 인스턴스에 액세스하려면 ingress 호스트 이름을 구성해야 합니다. 사용자 정의 자원 구성에 ingress가 구성되었는지 확인하십시오. 동일한 구성 방법은 이 링크를 참조하십시오.

     oc apply -f deploy/crds/charts_v1_mfoperator_cr.yaml
    
  2. 다음 명령을 실행하여 팟(Pod)이 작성되어 실행 중인지 확인하십시오. Mobile Foundation Server 및 푸시를 각 세 개의 복제본(기본값)과 함께 사용할 수 있는 시나리오에서 출력은 아래와 유사합니다.

       $ oc get pods
       NAME                           READY     STATUS    RESTARTS   AGE
       mf-operator-5db7bb7w5d-b29j7   1/1       Running   0          1m
       mfpf-server-2327bbewss-3bw31   1/1       Running   0          1m 20s
       mfpf-server-29kw92mdlw-923ks   1/1       Running   0          1m 21s
       mfpf-server-5woxq30spw-3bw31   1/1       Running   0          1m 19s
       mfpf-push-2womwrjzmw-239ks     1/1       Running   0          59s
       mfpf-push-29kw92mdlw-882pa     1/1       Running   0          52s
       mfpf-push-1b2w2s973c-983lw     1/1       Running   0          52s
    

    참고: 실행 중인 팟(1/1) 상태는 서비스가 액세스에 대해 사용 가능함을 표시합니다.

  3. 다음 명령을 실행하여 Mobile Foundation 엔드포인트에 액세스하기 위한 라우트가 작성되었는지 확인하십시오.

     $ oc get routes
     NAME                                      HOST/PORT               PATH        SERVICES             PORT      TERMINATION   WILDCARD
     ibm-mf-cr-1fdub-mfp-ingress-57khp   myhost.mydomain.com   /imfpush          ibm-mf-cr--mfppush     9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-8skfk   myhost.mydomain.com   /mfpconsole       ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-dqjr7   myhost.mydomain.com   /doc              ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-ncqdg   myhost.mydomain.com   /mfpadminconfig   ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-x8t2p   myhost.mydomain.com   /mfpadmin         ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-xt66r   myhost.mydomain.com   /mfp              ibm-mf-cr--mfpserver   9080                    None
    

IBM Mobile Foundation 컴포넌트의 콘솔에 액세스

Mobile Foundation 컴포넌트의 콘솔에 액세스하기 위한 엔드포인트는 다음과 같습니다.

  • Mobile Foundation Server 관리 콘솔 - http://<ingress_hostname>/mfpconsole
  • Operational Analytics 콘솔 - http://<ingress_hostname>/analytics/console
  • Application Center 콘솔 - http://<ingress_hostname>/appcenterconsole

설치 제거

다음 명령을 사용하여 설치 후 정리를 수행하십시오.

oc delete -f deploy/crds/charts_v1_mfoperator_cr.yaml
oc delete -f deploy/
oc delete -f deploy/crds/charts_v1_mfoperator_crd.yaml
oc patch crd/ibmmf.charts.helm.k8s.io -p '{"metadata":{"finalizers":[]}}' --type=merge

추가 참조

  1. Mobile Foundation 데이터베이스 설정
  2. IBM Mobile Foundation 데이터베이스로 Oracle 또는 MySQL 사용
  3. Mobile Foundation에 대한 사용자 정의 자원 구성 매개변수
  4. Ingress를 사용하는 시나리오
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on June 29, 2020