インデクサーとコンパクターのオートスケーリング

This product is not supported for your selected Datadog site. ().

概要

datadog/cloudprem Helm チャートを有効にすると、BYOC (Bring Your Own Cloud) Logs インデクサーおよびスタンドアロンコンパクター向けの Horizontal Pod Autoscaler (HPA) が作成されます。HPA はデフォルトで無効になっており、各コンポーネントは個別に構成されます。

はじめに

オートスケーリングを有効にする前に、以下が必要です。

  • datadog/cloudprem Helm チャートでインストールされた BYOC Logs デプロイメント。
  • スタンドアロンコンパクターのオートスケーリングには、チャートバージョン 0.4.6 以降が必要です。
  • Kubernetes Metrics Server、またはその他のメトリクス API 実装がクラスターにインストールされていること。
  • インデクサーおよびコンパクター Pod の最大数に対応できる十分なノード容量があること。
  • オートスケーリング対象のワークロードに対して CPU リクエストが構成されていること。

CPU ベースの HPA 計算では、Pod の CPU リクエストが使用されます。インデクサーは indexer.podSize または indexer.resources.requests.cpu から CPU リクエストを取得します。スタンドアロンコンパクターの場合は、compactor.resources.requests.cpu を構成してください。

インデクサーのオートスケーリングを有効にする

インデクサーの HPA を有効にするには、indexer.autoscaling.enabled を true に設定します。

indexer:
  autoscaling:
    enabled: true

インデクサーのオートスケーリングを有効にすると、HPA がインデクサーの Pod の数を制御し、indexer.replicaCount は無視します。

デフォルトのインデクサー HPA 設定:

設定デフォルト説明
indexer.autoscaling.minReplicas2インデクサーの Pod の最小数
indexer.autoscaling.maxReplicas10インデクサーの Pod の最大数
CPU ターゲット70%インデクサーの Pod における平均 CPU 使用率ターゲット

コンパクターのオートスケーリングを有効にする

コンパクター HPA を有効にするには、スタンドアロンコンパクターを有効にし、compactor.autoscaling.enabled を true に設定してください。

enableStandaloneCompactors: true

compactor:
  autoscaling:
    enabled: true

チャートは、enableStandaloneCompactors および compactor.autoscaling.enabled の両方を true に設定した場合にのみ、コンパクター HPA を作成します。コンパクターのオートスケーリングを有効にすると、HPA がコンパクターの Pod の数を制御し、compactor.replicaCount は無視します。

デフォルトのコンパクター HPA 設定:

設定デフォルト説明
compactor.autoscaling.minReplicas1コンパクターの Pod の最小数
compactor.autoscaling.maxReplicas10コンパクターの Pod の最大数
CPU ターゲット80%コンパクターの Pod における平均 CPU 使用率ターゲット

デフォルトを上書きする

ワークロードのスケーリング範囲を設定するには、enabled とともに minReplicas および maxReplicas を設定します。ノード容量がサポートする最大値を選択するには、クラスターサイジング ガイドを使用してください。

indexer:
  autoscaling:
    enabled: true
    minReplicas: 4
    maxReplicas: 20

構成を適用する

BYOC Logs の値ファイルにオートスケーリング値を追加し、リリースをアップグレードします。

helm upgrade <RELEASE_NAME> datadog/cloudprem \
  --namespace <NAMESPACE_NAME> \
  --values datadog-values.yaml

HPA を確認する

BYOC Logs ネームスペースの HPA を一覧表示します。

kubectl get hpa -n <NAMESPACE_NAME>

HPA について説明し、メトリクスと最近のスケーリングイベントをチェックします。

kubectl describe hpa <RELEASE_NAME>-indexer -n <NAMESPACE_NAME>
kubectl describe hpa <RELEASE_NAME>-compactor -n <NAMESPACE_NAME>

<RELEASE_NAME>-indexer と <RELEASE_NAME>-compactor は、チャートによって作成されるデフォルトの HPA 名です。nameOverride または fullnameOverride を設定した場合は、代わりに結果として得られる名前を使用してください。

kubectl get hpa の TARGETS 列に <unknown> と表示されている場合、HPA は CPU メトリクスを読み取ることができません。メトリクス API が実行されていること、およびターゲットの Pod に CPU リクエストがあることをチェックしてください。

参考資料