既存の Red Hat OpenShift Container Platform への Mobile Foundation のデプロイ
improve this page | report issueIBM 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) からのイメージを使用できます。
- Entitled Registry のキーを取得します。 IBM Cloud Pak for Applications を注文した後、Cloud Pak ソフトウェアのライセンス・キーが MyIBM アカウントに関連付けられます。 ご自身の ID に割り当てられているライセンス・キーを取得します。
- ライセンスが付与されているソフトウェアに関連付けられた IBMid とパスワードを使用して、MyIBM Container Software Library にログインします。
- 「ライセンス・キー (Entitlement keys)」セクションで「キーのコピー (Copy key)」を選択して、ライセンス・キーをクリップボードにコピーします。
- Entitled Registry のインストーラー・イメージからインストール構成を抽出します。
コマンド・ラインを使用して、以下のコマンドを実行します。- Entitled Registry 情報を設定します。 ENTITLED_REGISTRY を cp.icr.io に、ENTITLED_REGISTRY_USER を cp に、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"
- Entitled Registry 情報を設定します。 ENTITLED_REGISTRY を cp.icr.io に、ENTITLED_REGISTRY_USER を cp に、ENTITLED_REGISTRY_KEY を上のステップで取得したライセンス・キーに設定する export コマンドを実行します。
- 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 プロジェクトのセットアップ
- OpenShift クラスターにログインし、新規プロジェクトを作成します。
export MFOS_PROJECT=<project-name> oc login -u <username> -p <password> <cluster-url> oc new-project $MFOS_PROJECT
- 以下のコマンドを使用して、Openshift 用の IBM Mobile Foundation パッケージを解凍します。
tar xzvf IBM-MobileFoundation-Openshift-Pak-<version>.tar.gz -C <workdir>/
- ローカルからイメージをロードし、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
-
データベース資格情報を使用して秘密を作成します。
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
を使用して、エンコードされたストリングを取得できます。 - 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
- 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 のデプロイ
-
deploy/operator.yaml
(REPO_URL) で、タグ付きの Operator イメージ名 (mf-operator) がオペレーターに対して設定されていることを確認します。sed -i 's|REPO_URL|<image-repo-url>:<image-tag>|g' deploy/operator.yaml
-
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
-
以下のコマンドを実行して 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 コンポーネントのデプロイ
-
いずれかの Mobile Foundation コンポーネントをデプロイするには、要件に従いカスタム・リソース構成
deploy/crds/charts_v1_mfoperator_cr.yaml
を変更します。 ここに、カスタム構成の全リファレンスがあります。重要事項: デプロイメント後に Mobile Foundation インスタンスにアクセスするには、入口ホスト名を構成する必要があります。 カスタム・リソース構成で入口が構成されていることを確認してください。 この構成については、このリンクを参照してください。
oc apply -f deploy/crds/charts_v1_mfoperator_cr.yaml
-
以下のコマンドを実行し、ポッドが正常に作成され、実行されていることを確認します。 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) 状況のポッドは、サービスにアクセスできることを示します。
-
以下のコマンドを実行して、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
その他の参照情報
- Mobile Foundation データベースのセットアップ
- Oracle (または) MySQL を IBM Mobile Foundation データベースとして使用する
- Mobile Foundation のカスタム・リソース構成パラメーター
- 入口の有効化のシナリオ
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.