メイン コンテンツをスキップする 補完的コンテンツへスキップ

データサービスとルートの自動スケーリングを設定

Dynamic Engine 環境のデータサービスとルートに割り当てられたリソースに対して Horizontal Pod Autoscaling (HPA)を設定し、データサービスとルートが大量のトラフィックやメッセージを処理できるようにします。

情報メモ注: この手順は、Dynamic Engine 環境のデプロイメントとアップグレードに適用されます。これらの設定は、後続のアップグレードで変更できます。

始める前に

  • dynamic-engine-crdカスタムリソース定義は、oci://ghcr.io/talend/helm/dynamic-engine-crd Helmチャートを使用してインストールされている必要があります。インストールされていない場合は、次のコマンドを実行してインストールしてください。
    1. 使用するチャートのバージョンを見つけます。
      • 次のHelmコマンドを実行します:
        helm show chart oci://ghcr.io/talend/helm/dynamic-engine-crd --version <engine_version>
      • Talend Management Consoleから直接バージョンを見るか、自分のDynamic Engineバージョンに含まれているチャートバージョンのDynamic Engine変更ログをチェックしてください。
      • Dynamic EngineバージョンエンドポイントへのAPIコールを使用します。
    2. 次のコマンドを実行し、目的のバージョンのHelmチャートをインストールします。
      helm install dynamic-engine-crd oci://ghcr.io/talend/helm/dynamic-engine-crd --version <helm_chart_version>
      <helm_chart_version>を、お使いのDynamic Engineバージョンでサポートされているチャートのバージョンに置換します。

      バージョンを指定しないと、利用可能な最新のdynamic-engine-crdチャートバージョンがインストールされます。

  • Dynamic Engineがデプロイされている必要があります。デプロイされていない場合は、このコマンドを実行してデプロイしてください。
    helm install dynamic-engine -f <engine-id>-helm-values/<engine-id>-values.yaml oci://ghcr.io/talend/helm/dynamic-engine 
    現在のカスタマイズはDynamic Engine環境側でのみ必要であるため、これがデフォルトのデプロイメントです。このため、Dynamic Engineインスタンスにはカスタマイズは設定されません。
  • 自動スケーリングのサポートは メトリクスサーバーに依存します。

    メトリクスサーバーのインストールを確認するには、次のコマンドを実行します。

    kubectl top pod

    エラー: メトリクス API を利用できません」などのエラーが発生した場合は、メトリクスサーバーをインストールする必要があります。

このタスクについて

データサービスとルートのポッド自動スケーリングをアクティブにするためには、dynamic-engine-environmentチャートを設定します。この設定では、HPAがスケールアップできるレプリカ(ポッドインスタンス)の最大数も設定できます。

手順

  1. Kubernetesマシンで、ダウンロードしておいたHelmデプロイメントのzipファイルを解凍します。
  2. データサービスとルート用に、自動スケーリング特定のカスタム値ファイルを作成します。

    cat <<EOF > $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml
    configuration:
      dataServiceRouteDeployment:
        autoscaling:
          enabled: true
          maxReplicas: 5
    EOF

    $DYNAMIC_ENGINE_ENVIRONMENT_IDを、Dynamic Engine 環境のIDに置き換えます。この例では、ポッドの自動スケーリングの上限が5ポッドインスタンスに設定されています。

    自動スケーリングレベルで設定できるパラメーターのリスト:

    データサービスとルートの自動スケーリングパラメーター
    パラメーター 説明 デフォルト
    有効 Horizontal Pod Autoscaler (HPA)が環境に自動的にデプロイされるかどうかを指定します。 false
    minReplicas 自動スケーリングのポッドレプリカの最小数を設定します。 1
    maxReplicas 自動スケーリングのポッドレプリカの最大数を設定します。 10
    cpuAverageUtilization ポッド全体の目標平均CPU使用率(パーセンテージ)を設定します。このパラメーターを無効にするには負の値を使用します。ゼロの場合はデフォルト値(70)が使用されます。 0
    memoryAverageUtilization ポッド全体の目標平均メモリ使用率(パーセンテージ)を設定します。このパラメーターを無効にするには負の値を使用します。ゼロの場合はデフォルト値(-1)が使用されます。 0
    scaleUpStabilizationWindowSeconds スケールアップの安定化ウィンドウ(秒単位)を設定します。このウィンドウの間、以前に計算されたターゲットレプリカ数が考慮されます。ゼロの場合はこの機能は無効になります。 120
    scaleDownStabilizationWindowSeconds スケールダウンの安定化ウィンドウ(秒単位)を設定します。このウィンドウの間、以前に計算されたターゲットレプリカ数が考慮されます。ゼロの場合はこの機能は無効になります。 0
  3. カスタム自動スケーリング特定の値ファイルを使って、Dynamic Engine環境をデプロイします。
    helm install dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml  \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml \
       oci://ghcr.io/talend/helm/dynamic-engine-environment \
       --version $DYNAMIC_ENGINE_VERSION          

    $DYNAMIC_ENGINE_ENVIRONMENT_ID$DYNAMIC_ENGINE_VERSIONを、それぞれの環境IDとエンジンバージョンに置き換えます。

  4. 環境のConfigMapで、自動スケーリング設定を確認します。
    Dynamic Engine環境にはそれぞれ、専用のglobal-configuration ConfigMapがあります。特定のConfigMapへのアップデートは、それが属する環境にのみ影響します。
    kubectl get configmap -n qlik-processing-env-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
      global-configuration -ojsonpath="{.data['global-configuration\.json']}" \
      | jq -r '.dataServiceRouteDeployment'               
    このコマンドによって、ポッドの自動スケーリング設定が取得されます。出力は、enabledステータスと、指定された最大レプリカ数を確定します:
    {
      "autoscaling": {
        "enabled": "true",
        "minReplicas": "1",
        "maxReplicas": "5",
        "cpuAverageUtilization": "0",
        "memoryAverageUtilization": "0"
      }
    }         
    情報メモヒント: 変更が必要であれば、$DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yamlファイルのコンテンツをアップデートし、helm upgradeを実行することでその変更を適用できます。
    helm upgrade dynamic-engine-environment-$DYNAMIC_ENGINE_ENVIRONMENT_ID \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-values.yaml  \
       -f $DYNAMIC_ENGINE_ENVIRONMENT_ID-custom-autoscaling-ds-routes.yaml \
       oci://ghcr.io/talend/helm/dynamic-engine-environment \
       --version $DYNAMIC_ENGINE_VERSION      

タスクの結果

デプロイメントに成功すると、Dynamic Engine環境は、データサービスとルートを実行する際のワークロードの変動に応じて、設定された最大値までポッドインスタンスを自動的に増やすことができるようになります。

Talend Management Consoleではこの環境のステータスが[Ready] (準備完了)になり、タスクまたはプランを実行する準備ができていることが確定されます。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。