Kubernetesクラスタ上でLiferayを実行する
これらの手順は意図的に一般的なものです。 あらゆる Kubernetes 実装で動作するクラスターをインストールしますが、そのクラスターを本番環境で使用できるようにするためには追加の作業が必要です。 実稼働環境の展開の詳細については、クラウド プロバイダーのドキュメントを確認してください。
始める前に、いくつかの前提条件がインストールされている必要があります。
- Git CLI バージョン >=
2.40.1 - kubectl CLI バージョン >=
1.25.2 - Helm CLI バージョン >=
3.18.6 - Dockerエンジン バージョン >=
v20.10.21 - K3D バージョン >=
5.8.3
この例では K3D を使用していますが、任意の Kubernetes クラスター実装 (kind、Docker Desktop など) を使用できます。
Kubernetesクラスターを作成する
まず、マシンのポート 80 を内部 k3d ロード バランサーのポート 80 にマッピングし、必要に応じて他のコンテナー イメージをビルドおよびデプロイするためのローカル イメージ レジストリを作成する、 プレイグラウンド という Kubernetes クラスターを作成します。
-
次のコマンドを実行します。
k3d cluster create playground \ --port 80:80@loadbalancer \ --registry-create registry:5000
ルートレス docker を実行している場合は、ポート 80 の代わりに、使用可能な非特権ポート (> 1024) を使用するように行 --port 80:80@loadbalancer を変更します。 例えば、
--port 8182:80@loadbalancer
この変更では、選択したポート (上記の例では 8182) を使用するように、以下の Liferay ポータル プロパティを変更する必要があります。
web.server.http.port=8182
-
以下の 2 つのコマンドを実行して、クラスターが存在することを確認します。
kubectl config current-context kubectl cluster-info
Helm Chartの値を構成する
-
以下の構成で
values-custom.yamlファイルを作成します。customInitContainers: x-liferay-prewipe-hypersonic: containerTemplate: | command: - bash - -c - | FLAGFILE=/opt/liferay/data/.hypersonic.prewiped if [ ! -e "${FLAGFILE}" ] then rm -rf /opt/liferay/data/hypersonic fi touch "${FLAGFILE}" image: {{ printf "%s:%s" .image.repository (.image.tag | toString) }} imagePullPolicy: {{ .image.pullPolicy }} name: liferay-prewipe-hypersonic volumeMounts: - mountPath: /opt name: liferay-persistent-volume image: tag: [Your Liferay Version Tag Here] ingress: enabled: true rules: - host: "*.dxp.localtest.me" http: paths: - backend: service: name: liferay-default port: name: http path: / pathType: ImplementationSpecific portalProperties: | company.default.virtual.host.name=main.dxp.localtest.me company.default.web.id=main.dxp.localtest.me include-and-override=portal-developer.properties web.server.protocol=http -
上記の
[Your Liferay Version Tag Here]を、 Docker Hubからの適切な Liferay タグに置き換えます。 -
特権のないポートを構成した場合は、以下のプロパティを
portalPropertiesに追加します。web.server.http.port=[port]例えば、
web.server.http.port=8182
これらの値の詳細については、 Liferay Helm 値リファレンスを参照してください。 Helm 値ファイルの詳細については、 Helm ドキュメントを参照してください。
上記の設定では、
- 特定のLiferayイメージバージョン
- Liferayサービスをローカルに公開するためのイングレスロードバランサ
- カスタムLiferayポータルプロパティ
- カスタムの
company.default.web.idポータルプロパティを使用するために、含まれている HSQL データベースを事前に消去する 初期化コンテナ
HSQL は構成されたデータベースであるため、このインスタンスは最初に構成されたとおりにテスト目的で使用されることに注意してください。
Liferayを起動する
-
チャートの URL を保持する環境変数を作成します。
export CHART_URL=oci://us-central1-docker.pkg.dev/liferay-artifact-registry/liferay-helm-chart/liferay-default -
Liferay Helm チャートをクラスターにインストールします。
helm upgrade liferay "${CHART_URL}" \ --install \ --values values-custom.yaml
Liferayにアクセス
-
Liferay ワークロードの準備ができているかどうかを確認します。
kubectl rollout status statefulset liferay-default -
Liferay にアクセスするには、ローカル マシンの Web ブラウザーで http://main.dxp.localtest.me に移動します。 Web サーバーのポートを変更した場合は、ポート番号を追加します: http://main.dxp.localtest.me:8182。
-
Liferay の管理者パスワードを取得します。
kubectl get secret liferay-default \ --output jsonpath='{.data.LIFERAY_DEFAULT_PERIOD_ADMIN_PERIOD_PASSWORD}' \ | base64 --decode -
Liferayにログインします。
- メールアドレス: test@main.dxp.localtest.me
- パスワード: [前の手順で取得したパスワード]
これで、「プレイグラウンド」Liferay Kubernetes クラスターがデプロイされました。 さらに堅牢にする方法については、以下をお読みください。