既存の Red Hat OpenShift Container Platform への Mobile Foundation のデプロイ

improve this page | report issue

IBM Mobile Foundation Operator を使用して OpenShift クラスターに Mobile Foundation インスタンスをインストールする方法について説明します。

OpenShift Container Platform (OCP) の使用権を取得する方法は 2 通りあります。

  • OpenShift Container Platform の使用権を含む IBM Cloud Pak for Applications の使用権を所持している。
  • 既存の OpenShift Container Platform (Red Hat から購入) を所持している。

OCP に Mobile Foundation をデプロイする手順は、OCP の使用権を取得した方法にかかわらず同じです。

前提条件

以下は、Mobile Foundation Operator を使用して Mobile Foundation インスタンスをインストールするプロセスを開始する前に満たす必要がある前提条件です。

  • OpenShift クラスター v3.11 以上。
  • OpenShiftクライアント・ツール (oc)。
  • Docker をインストールし、セットアップされていること。
  • Mobile Foundation にはデータベースが必要です。 サポートされているデータベースを作成し、データベース・アクセスの詳細を以後使用できるように用意します。 ここを参照してください。
  • Mobile Foundation Analytics には、Analytics データを保持するためのマウント済みストレージ・ボリュームが必要です (NFS 推奨)。

アーキテクチャー

以下の図は、Red Hat OpenShift でのモバイル・サービスの内部アーキテクチャーを示しています。

アーキテクチャー

IBM Mobile Foundation インスタンスのインストール

IBM Mobile Foundation パッケージのダウンロード

IBM パスポート・アドバンテージ (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 に割り当てられているライセンス・キーを取得します。
    • ライセンスが付与されているソフトウェアに関連付けられた IBMid とパスワードを使用して、MyIBM Container Software Library にログインします。
    • 「ライセンス・キー (Entitlement keys)」セクションで「キーのコピー (Copy key)」を選択して、ライセンス・キーをクリップボードにコピーします。
  2. Entitled Registry のインストーラー・イメージからインストール構成を抽出します。
    コマンド・ラインを使用して、以下のコマンドを実行します。
    • Entitled Registry 情報を設定します。 ENTITLED_REGISTRYcp.icr.io に、ENTITLED_REGISTRY_USERcp に、ENTITLED_REGISTRY_KEY を上のステップで取得したライセンス・キーに設定する export コマンドを実行します。
       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.yaml ファイルと deploy/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. deploy/operator.yaml (REPO_URL) で、タグ付きの Operator イメージ名 (mf-operator) がオペレーターに対して設定されていることを確認します。

     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、オペレーターをデプロイし、セキュリティー・コンテキスト制約 (SCC) をインストールします。

     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 インスタンスにアクセスするには、入口ホスト名を構成する必要があります。 カスタム・リソース構成で入口が構成されていることを確認してください。 この構成については、このリンクを参照してください。

     oc apply -f deploy/crds/charts_v1_mfoperator_cr.yaml
    
  2. 以下のコマンドを実行し、ポッドが正常に作成され、実行されていることを確認します。 Mobile Foundation サーバーおよび Push が 3 つの各レプリカ (デフォルト) で有効になっているデプロイメント・シナリオでは、出力は以下のようになります。

       $ 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
    

    注: Running (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 サーバーの管理コンソール - 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. Oracle (または) MySQL を IBM Mobile Foundation データベースとして使用する
  3. Mobile Foundation のカスタム・リソース構成パラメーター
  4. 入口の有効化のシナリオ
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 19, 2020