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

CNE Kubernetes Ready: k3d のクイックスタート

ローカルの k3d クラスターに Liferay DXP をデプロイし、クラスター内で一時的な PostgreSQL および Elasticsearch インスタンスを実行します。 Kubernetes Readyを独自のインフラストラクチャに構成する前に、この環境を使用してKubernetes Readyのデプロイメントモデルを検証してください。

警告

この設定は評価目的のみに使用されます。 PostgreSQLとElasticsearchは一時的なストレージを使用しており、このデプロイメントではトライアルライセンスが使用されています。 本番環境ではこの設定を使用しないでください。

Kubernetes Readyを独自のインフラストラクチャに構成する前に、ローカル環境でKubernetes Readyデプロイメントモデルを検証してください。

前提条件

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

道具目的
Docker または Podmanコンテナランタイム
k3dローカルKubernetesクラスター
kubectlKubernetes 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の導入・設定に関する記事を参照してください。