CNE Kubernetes Ready: k3d のクイックスタート
ローカルの k3d クラスターに Liferay DXP をデプロイし、クラスター内で一時的な PostgreSQL および Elasticsearch インスタンスを実行します。 Kubernetes Readyを独自のインフラストラクチャに構成する前に、この環境を使用してKubernetes Readyのデプロイメントモデルを検証してください。
この設定は評価目的のみに使用されます。 PostgreSQLとElasticsearchは一時的なストレージを使用しており、このデプロイメントではトライアルライセンスが使用されています。 本番環境ではこの設定を使用しないでください。
Kubernetes Readyを独自のインフラストラクチャに構成する前に、ローカル環境でKubernetes Readyデプロイメントモデルを検証してください。
-
の前提条件を確認してください。
-
必要な Kubernetes Secrets を作成します。
-
Liferay DXP をローカルにインストールして検証します。
前提条件
以下のツールをインストールしてください。
| 道具 | 目的 |
|---|---|
| Docker または Podman | コンテナランタイム |
| k3d | ローカルKubernetesクラスター |
| kubectl | Kubernetes CLI |
| 舵 | Helmチャートをインストールします |
コンテナランタイムには、少なくとも8GBのメモリと4つのCPUコアを割り当ててください。
Elasticsearch 用にコンテナランタイム環境を構成して、 vm.max_map_count=262144 をサポートします。 現在の値を確認してください。
sysctl vm.max_map_count
必要に応じて更新してください。
sudo sysctl -w vm.max_map_count=262144
k3dクラスターを作成する
クラスターとネームスペースを作成します。
k3d cluster create liferay-quickstart \
--servers 1 \
--agents 0 \
--port "8080:8080@loadbalancer"
kubectl create namespace liferay-quickstart
クラスターを検証する:
kubectl cluster-info --context k3d-liferay-quickstart
k3d にはデフォルトで ローカルパス StorageClass が含まれているため、Liferay の永続ボリューム要求は追加の設定なしで機能します。
PostgreSQLとElasticsearchをデプロイする
クラスター内にPostgreSQLとElasticsearchをデプロイするために、 quickstart-deps.yaml ファイルを作成します。
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres
namespace: liferay-quickstart
spec:
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:16
env:
- name: POSTGRES_USER
value: liferay
- name: POSTGRES_PASSWORD
value: liferaypass
- name: POSTGRES_DB
value: lportal
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
ports:
- containerPort: 5432
name: tcp
volumeMounts:
- name: data
mountPath: /var/lib/postgresql/data
volumes:
- name: data
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: postgres
namespace: liferay-quickstart
spec:
selector:
app: postgres
ports:
- name: tcp
port: 5432
targetPort: 5432
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: elasticsearch
namespace: liferay-quickstart
spec:
replicas: 1
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:8.13.4
env:
- name: discovery.type
value: single-node
- name: xpack.security.enabled
value: "false"
- name: ES_JAVA_OPTS
value: "-Xms1g -Xmx1g"
ports:
- containerPort: 9200
name: http
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
volumes:
- name: data
emptyDir: {}
---
apiVersion: v1
kind: Service
metadata:
name: elasticsearch
namespace: liferay-quickstart
spec:
selector:
app: elasticsearch
ports:
- name: http
port: 9200
targetPort: 9200
設定を適用する:
kubectl apply -f quickstart-deps.yaml
両方のデプロイメントが利用可能になるまでお待ちください。
kubectl --namespace liferay-quickstart \
wait --for=condition=Available deployment/postgres deployment/elasticsearch \
--timeout=5m
Kubernetes Secretsを作成する
データベースシークレットを作成します。
kubectl --namespace liferay-quickstart create secret generic liferay-database \
--from-literal=DATABASE_HOST=postgres \
--from-literal=DATABASE_PORT=5432 \
--from-literal=DATABASE_NAME=lportal \
--from-literal=LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_USERNAME=liferay \
--from-literal=LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_PASSWORD=liferaypass
検索シークレットを作成します:
kubectl --namespace liferay-quickstart create secret generic liferay-search \
--from-literal=ELASTICSEARCH_URL=http://elasticsearch:9200
Liferay DXPのインストール
この Liferay DXP 設定を含む quickstart-values.yaml ファイルを作成します。
image:
repository: liferay/dxp
tag: "[dxp-image-tag]" # use any current tag, e.g. 2024.q4.10
pullPolicy: IfNotPresent
replicaCount: 1
resources:
requests:
cpu: 1000m
memory: 4Gi
limits:
cpu: 4000m
memory: 8Gi
volumeClaimTemplates:
- metadata:
name: liferay-persistent-volume
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 5Gi
customEnvFrom:
x-liferay-database:
- secretRef:
name: liferay-database
x-liferay-search:
- secretRef:
name: liferay-search
customEnv:
x-liferay-database:
- name: LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_DRIVER_UPPERCASEC_LASS_UPPERCASEN_AME
value: org.postgresql.Driver
- name: LIFERAY_JDBC_PERIOD_DEFAULT_PERIOD_URL
value: jdbc:postgresql://${env.DATABASE_HOST}:${env.DATABASE_PORT}/${env.DATABASE_NAME}?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
configmap:
data:
com.liferay.portal.search.elasticsearch8.configuration.ElasticsearchConfiguration.config: |
authenticationEnabled=B"false"
httpSSLEnabled=B"false"
networkHostAddresses=["$[env:ELASTICSEARCH_URL]"]
operationMode="REMOTE"
productionModeEnabled=B"true"
customVolumeMounts:
x-liferay-search:
- mountPath: /opt/liferay/osgi/configs/com.liferay.portal.search.elasticsearch8.configuration.ElasticsearchConfiguration.config
name: liferay-configmap
subPath: com.liferay.portal.search.elasticsearch8.configuration.ElasticsearchConfiguration.config
Helmチャートをインストールします。
helm upgrade --install liferay \
oci://us-central1-docker.pkg.dev/liferay-artifact-registry/liferay-helm-chart/liferay-default \
--namespace liferay-quickstart \
--values quickstart-values.yaml
デプロイメントを確認する
StatefulSet のロールアウトが完了するまでお待ちください。
kubectl --namespace liferay-quickstart \
rollout status statefulset/liferay-default --timeout=20m
ログを表示する:
kubectl --namespace liferay-quickstart \
logs -f statefulset/liferay-default
このメッセージが表示されるまでお待ちください。
Server startup in [n] milliseconds
Liferay DXPにアクセスする
サービスのポートフォワーディングを行う:
kubectl --namespace liferay-quickstart \
port-forward svc/liferay-default 8080:8080
ブラウザで http://localhost:8080 を開きます。
生成された管理者パスワードを取得します。
kubectl --namespace liferay-quickstart \
get secret liferay-default \
-o jsonpath='{.data.LIFERAY_DEFAULT_PERIOD_ADMIN_PERIOD_PASSWORD}' | base64 -d
echo
この管理者ユーザーを使用してください。
test@liferay.com
デプロイメントを検証する
追加のKubernetes Readyプロパティを設定する前に、デプロイメントが正しく動作することを確認してください。
-
ウェルカムページが正常に読み込まれました。
-
生成された管理者パスワードを使用してログインできます。
-
Elasticsearchはアクティブな接続を報告しています。
-
文書およびメディアのアップロード機能は正常に動作します。
-
試用版ライセンスはライセンスマネージャーに表示されます。
環境を取り除く
クイックスタートデプロイメントを削除し、ローカルのk3dクラスタを削除するには、以下のコマンドを実行してください。
helm --namespace liferay-quickstart uninstall liferay
kubectl delete -f quickstart-deps.yaml
kubectl delete namespace liferay-quickstart
k3d cluster delete liferay-quickstart
今後の流れ
クイックスタートデプロイメントの検証が完了したら、Kubernetes Readyを本番環境向けに構成する手順を続行します。
-
ご自身のKubernetes環境にKubernetes Readyを設定してください。
-
クラスタ内のPostgreSQLおよびElasticsearchのデプロイメントを、マネージドサービスに置き換える。
-
イングレス、TLS、オブジェクトストレージ、およびオブザーバビリティを設定します。
-
本番環境における導入・設定に関するガイダンスについては、Kubernetes Readyの導入・設定に関する記事を参照してください。