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

Liferay PaaS体験:オートスケーリング

GitOpsリポジトリ内のHelm値を編集して、オートスケーリングを設定します。 これは通常、一般的なPaaSユーザーの仕事ではなく、開発者またはプラットフォーム管理者の仕事です。

Liferay PaaS Experienceは、Liferay StatefulSetに対して、相互に排他的な2つの自動スケーリングオプションをサポートしています。

  • CPUやメモリなどのポッドレベルのメトリクスに基づいてスケーリングを行う、基本的な水平ポッドオートスケーラー(HPA)。
  • KEDA(Kubernetes Event-Driven Autoscaling)は、Prometheusに対するカスタムメトリッククエリに基づいてスケーリングを行います。

KEDAは、ほとんどの運用環境への導入において推奨される選択肢です。 Pod レベルのメトリクスは、Liferay ワークロードにとって必ずしも最適な指標とは限らず、KEDA のデフォルトトリガーは Liferay のアーキテクチャをより正確に反映しています。

自動スケーリングの設定は、環境の liferay.yaml の autoscaling 値の下にあります。 それらを liferay-defaultの下にネストします。これは、Liferay ランタイムを設定する Helm サブチャートです。 そのキーの外側に指定された値は、エラーなく無視されます。

liferay-default:
   autoscaling:
      enabled: false
      hpa:
...
      keda:
...
      タイプ: ケダ

自動スケーリングはデフォルトでは無効になっています。 有効にするには、 enabled: true を設定します。 有効化されると、 タイプ はデフォルトで keda となり、変更しない限り KEDA はデフォルトのトリガーで実行されます。 代わりに基本的な水平ポッドオートスケーラーを使用するには、 タイプ を hpa に設定します。

基本的な水平ポッドオートスケーラー

基本的なHPAは、CPUやメモリなどのポッドレベルのメトリクスに基づいてLiferay StatefulSetをスケーリングします。 有効にすると、デフォルトのHPAはCPU使用率が80%に達したときにLiferay StatefulSetをスケーリングします。

KEDAの代わりにHPAを検討するべき場合:

  • 小規模な環境や非本番環境で運用しており、CPUまたはメモリベースの単純なスケーリングで十分な場合。
  • あなたは、オートスケーリングのスタックを最小限に抑え、KEDAへの追加的な依存関係を避けたいと考えている。

KEDA(Kubernetesイベント駆動型オートスケーリング)

KEDAは、Prometheusに対するメトリッククエリとして定義されたカスタムトリガーに基づいてワークロードをスケーリングします。 LiferayはPaaSエクスペリエンス環境向けにPrometheusエンドポイントと認証設定を提供するため、ユーザー自身で設定する必要はありません。

autoscaling.keda セクションの liferay.yaml で KEDA を設定します。

価値種類必須?デフォルト説明
トリガー地図いいえ( デフォルトトリガー を参照)Liferayが提供するデフォルトのトリガー(トリガー名でキー付け)
maxReplicaCount整数はい100スケールアップ時のレプリカの最大数
minReplicaCount整数はい1スケールダウン時の最小レプリカ数
ポーリング間隔整数はい30各トリガーが評価される間隔(秒単位)
prometheusServerAddress弦いいえ""Prometheusバックエンドのエンドポイント。 Liferayは、PaaSエクスペリエンス環境向けにこの機能を提供しています。
トリガー認証物体いいえ{}トリガーの認証設定。 Liferayは、PaaSエクスペリエンス環境向けにこの機能を提供しています。
カスタムトリガー地図いいえ{}デフォルトのトリガーと同じ形式の追加トリガー

デフォルトトリガー

Liferayは、プラットフォームの負荷が低すぎるか高すぎるかをより正確に示すために、Liferayのアーキテクチャに基づいて設計された一連のデフォルトトリガーを提供します。

各デフォルトトリガーは、 autoscaling.keda.triggers の下のマッピングされたキー値エントリです。

トリガーキー説明PromQLクエリしきい値
CPU使用率(%)CPU使用率、PromQLクエリではなくKEDAのネイティブ CPU リソーススケーラーを使用—80
ヒカリアクティブコネクションHikariCP JDBC接続プール内のアクティブな接続max(hikaricp_ActiveConnections{namespace="<environment-namespace>"})50
jvmメモリヒープ使用率JVMヒープメモリの使用率(パーセント)max(jvm_memory_used_bytes{area="heap",namespace="<environment-namespace>"} / jvm_memory_max_bytes{area="heap",namespace="<environment-namespace>"} * 100)80
jvm-threads-current現在のJVMスレッド数max(jvm_threads_current{namespace="<environment-namespace>"})500

この表は、 <environment-namespace> を自動的に埋めます。 これらのしきい値は、デプロイメントに合わせて調整された値ではなく、あくまでも出発点として扱ってください。JVMスレッドプールやHikariプールのサイズを変更した場合は、ご自身の構成に合わせて再調整してください。

カスタムトリガー

トリガーを追加したり、デフォルトのトリガーを上書きして無効にするには、 autoscaling.keda.customTriggers を使用します。

トリガーを追加するには、 autoscaling.keda.customTriggers の下にエントリを追加します。

liferay-default:
   autoscaling:
      keda:
         customTriggers:
            my-new-trigger:
               metadata:
                  metricName: <unique_trigger_name>
                  query: <promQL_query>
                  threshold: <query_threshold>

デフォルトのトリガーを上書きするには、そのキーを参照して変更内容を指定します。 以下の例では、デフォルトの hikari-active-connections トリガーのしきい値を 50 から 60 に引き上げています。

liferay-default:
   autoscaling:
      keda:
         customTriggers:
            hikari-active-connections:
               metadata:
                  threshold: "60"

デフォルトトリガーを無効にするには、そのキーを参照し、 enabled: false : を設定します。

liferay-default:
   autoscaling:
      keda:
         customTriggers:
            jvm-threads-current:
               enabled: false