Cloud Native Experience Kubernetes Ready
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

CNE Kubernetes Ready: OpenShift開発者サンドボックスへのLiferay DXPのデプロイ

Red Hat Developer Sandbox は、 OpenShift 環境を無料で提供し、 liferay-default Helm チャートを使用して Kubernetes Ready デプロイメントを検証できます。

OpenShift Developer Sandbox に Liferay DXP をデプロイし、OpenShift Routeを介してルーティングを設定し、公開サンドボックスホスト名を介してアクセスを確認します。

デプロイメントではルート優先のアプローチを採用しています。Liferay をインストールする前に OpenShift ルート を作成し、Liferay が最初の起動時にデータベースを初期化するまでに最終的なホスト名が存在するようにします。

前提条件

以下のツールをローカルにインストールしてください。

道具目的
ocOpenShiftクラスターとのやり取り
Helm 3.8+liferay-default チャートをインストールします
注

このチャートはOCIアーティファクトとして配布されるため、Helm 3.8以降が必要です。

OpenShift開発者サンドボックスを作成する

  1. Red Hat Developer Sandbox サインアップページ を開きます。

  2. Red Hatアカウントでサインインしてください。

  3. をクリックしてサンドボックスを開始してください。

  4. プロビジョニングが完了したら、OpenShiftのWebコンソールを開いてください。

無料のサンドボックスプランには、以下のリソース制限が含まれています。

リソース制限
メモリプロジェクトあたり7 GiB
CPU専用vCPU 1基
ストレージ5 GiBの永続ボリューム
セッション期間30日間、更新可能

例示されているOpenShiftオーバーレイの値は、これらの制限内に収まります。

CLIからクラスターにログインします

  1. OpenShift コンソールで、ユーザー名をクリックし、 ログインコマンドのコピー を選択します。

  2. をクリックしてトークンを表示 します。

  3. 生成された oc login コマンドをコピーしてローカルで実行します。

    oc login --token=sha256~... \
       --server=https://api.<sandbox>.openshiftapps.com:6443
    
  4. アクティブなプロジェクトを確認してください:

    oc project
    

ターミナルにサンドボックスプロジェクト名が表示されます。

Liferayをインストールする前にルートを作成する

OpenShift ルート は、バックエンド サービスが存在しない場合でも、作成直後にパブリック ホスト名を割り当てます。

システムは初回起動時にホスト名をLiferayデータベースに書き込むため、この手順はLiferayの起動前に実行する必要があります。 その時点で誤ったホスト名を使用すると、システムはそれを保持し、ルートを経由した後のリクエストは NoSuchVirtualHostException エラーで失敗します。

  1. このマニフェストを route.yaml として保存します。

    apiVersion: route.openshift.io/v1
    kind: Route
    metadata:
      name: liferay-default
    spec:
      to:
        kind: Service
        name: liferay-default
      port:
        targetPort: http
      tls:
        termination: edge
        insecureEdgeTerminationPolicy: Redirect
    
  2. ルートを適用する:

    oc apply -f route.yaml
    
  3. 生成されたホスト名を保存します。

    ROUTE_HOST="$(oc get route liferay-default \
       -o jsonpath='{.spec.host}')"
    
    echo "$ROUTE_HOST"
    

端末には、次のようなホスト名が表示されます。

liferay-default-your-user-dev.apps.rm3.7wse.p1.openshiftapps.com
注

ルートは、デプロイメントの後半でLiferayサービスが利用可能になるまで、HTTP 503エラーを返します。

Liferay仮想ホストの設定

Liferayは、最初の起動が完了する前に、最終的なOpenShift Routeホスト名を必要とします。 それ以外の場合、デフォルトの会社は localhost を仮想ホストとして初期化されます。

例 liferay-network ConfigMap は、必要なホスト名を Liferay 環境に挿入します。

  1. このマニフェストを liferay-network-cm.yamlとして保存し、 REPLACE_WITH_ROUTE_HOST を $ROUTE_HOST に格納されている値で置き換えます。

    apiVersion: v1
    kind: ConfigMap
    metadata:
      name: liferay-network
    data:
      LIFERAY_COMPANY_PERIOD_DEFAULT_PERIOD_VIRTUAL_PERIOD_HOST_PERIOD_NAME: REPLACE_WITH_ROUTE_HOST
      LIFERAY_COMPANY_PERIOD_DEFAULT_PERIOD_VIRTUAL_PERIOD_HOST_PERIOD_SYNC_PERIOD_ON_PERIOD_STARTUP: "true"
    
  2. ConfigMapを適用する:

    oc apply -f liferay-network-cm.yaml
    
  3. ConfigMapを確認します。

    oc get configmap liferay-network -o yaml
    

ConfigMapは以下のプロパティを提供します。

プロパティ目的
company.default.virtual.host.nameOpenShiftルートのホスト名を設定します
company.default.virtual.host.sync.on.startup=true起動時にホスト名を再適用します
重要

Liferayを初めて起動する前に、ConfigMapを作成してください。 Liferayは初期化時に、デフォルトの企業仮想ホストをデータベースに書き込みます。 その時点でホスト名がまだ localhost の場合、会社構成を手動で修正するまで、ルート経由のリクエストは NoSuchVirtualHostException エラーで失敗します。

Liferay Helm Chartをインストールします

このチャートはOCIアーティファクトとして公開されています。

oci://us-central1-docker.pkg.dev/liferay-artifact-registry/liferay-helm-chart/liferay-default

このオーバーレイを values-openshift.yaml として保存します。

podSecurityContext: {}
securityContext: {}

volumeClaimTemplates:
  - metadata:
      name: liferay-persistent-volume
    spec:
      accessModes:
        - ReadWriteOnce
      resources:
        requests:
          storage: 5Gi

resources:
  requests:
    cpu: 500m
    memory: 4Gi
  limits:
    cpu: 1000m
    memory: 6Gi

startupProbe:
  failureThreshold: 180
  initialDelaySeconds: 120

readinessProbe:
  failureThreshold: 6
  initialDelaySeconds: 60

livenessProbe:
  failureThreshold: 6
  initialDelaySeconds: 120

customEnvFrom:
  x-liferay-network:
    - configMapRef:
        name: liferay-network

OpenShiftオーバーレイ値を使用してチャートをインストールします。

helm upgrade -i liferay \
   oci://us-central1-docker.pkg.dev/liferay-artifact-registry/liferay-helm-chart/liferay-default \
   -f values-openshift.yaml

OpenShiftオーバーレイ構成

values-openshift.yaml オーバーレイは、OpenShift Developer Sandbox 環境の Helm チャート構成を調整します。

この表は、オーバーレイ設定項目について説明しています。

設定目的
をリーフします。 securityContext は空です。OpenShift restricted-v2 SCC はランタイム UID を動的に割り当てます
リクエストを減らし、リソースを制限するサンドボックスのメモリとCPUの制限(7 GiB / 1 vCPU)内に収まります。
健康調査を緩和する限られたリソースでの低速なコールドスタートに対応
liferay-network ConfigMap を参照しますルートホスト名をLiferay環境に挿入します。

展開の様子をご覧ください

  1. ポッドの起動状況を確認してください:

    oc get pod -w
    

ポッドは、準備が整うまでにいくつかの初期化フェーズを経る。

  1. Liferayのログをストリーミングする:

    oc logs -f liferay-default-0
    

起動メッセージが表示されることを確認してください。

Server startup in [...] milliseconds

サンドボックス環境ではCPUとメモリのリソースが限られているため、初回起動には5分から15分かかります。

デプロイメントを確認する

  1. ブラウザでルートホスト名を開きます。

    https://$ROUTE_HOST/
    
  2. をクリックしてサインイン をクリックしてください。

  3. デフォルトの管理者アカウント認証情報を使用します。

    項目値
    メールtest@liferay.com
    パスワードKubernetes Secretからの抜粋
  4. 生成されたパスワードを取得します。

    oc extract secret/liferay-default \
       --keys=LIFERAY_DEFAULT_PERIOD_ADMIN_PERIOD_PASSWORD \
       --to=-
    
  5. 初期パスワードリセット手順を完了してください。

ログイン後、Liferayコントロールパネルが正常に起動します。

展開を一時停止する

ポッドが停止しても、サンドボックス環境はアクティブなままです。

環境がアイドル状態のときは、StatefulSet のレプリカ数をゼロにスケールします。

oc scale statefulset liferay-default --replicas=0

後で規模を元に戻してください。

oc scale statefulset liferay-default --replicas=1

コールドスタートには数分かかります。

デプロイメントをクリーンアップする

Helmリリースを削除します。

helm uninstall liferay

永続的なボリューム要求を個別に削除します。

oc delete pvc liferay-persistent-volume-liferay-default-0
注

Helmは、偶発的なデータ損失を防ぐために、設計上、永続ボリュームを保持します。 環境を完全にリセットするには、PVCを手動で取り外す必要があります。