3.6.2. ジョブへのカスタムメトリクスオートスケーラーの追加


任意の Job オブジェクトに対してカスタムメトリクスオートスケーラーを作成できます。

重要

スケーリングされたジョブを使用したスケーリングはテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビュー機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行い、フィードバックを提供していただくことを目的としています。

Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。

前提条件

  • Custom Metrics Autoscaler Operator をインストールしている。

手順

  1. 以下のような YAML ファイルを作成します。

    kind: ScaledJob
    apiVersion: keda.sh/v1alpha1
    metadata:
      name: scaledjob
      namespace: my-namespace
    spec:
      failedJobsHistoryLimit: 5
      jobTargetRef:
        activeDeadlineSeconds: 600 
    1
    
        backoffLimit: 6 
    2
    
        parallelism: 1 
    3
    
        completions: 1 
    4
    
        template:  
    5
    
          metadata:
            name: pi
          spec:
            containers:
            - name: pi
              image: perl
              command: ["perl",  "-Mbignum=bpi", "-wle", "print bpi(2000)"]
      maxReplicaCount: 100 
    6
    
      pollingInterval: 30 
    7
    
      successfulJobsHistoryLimit: 5 
    8
    
      failedJobsHistoryLimit: 5 
    9
    
      envSourceContainerName: 
    10
    
      rolloutStrategy: gradual 
    11
    
      scalingStrategy: 
    12
    
        strategy: "custom"
        customScalingQueueLengthDeduction: 1
        customScalingRunningJobPercentage: "0.5"
        pendingPodConditions:
          - "Ready"
          - "PodScheduled"
          - "AnyOtherCustomPodCondition"
        multipleScalersCalculation : "max"
      triggers:
      - type: prometheus 
    13
    
        metadata:
          serverAddress: https://thanos-querier.openshift-monitoring.svc.cluster.local:9092
          namespace: kedatest
          metricName: http_requests_total
          threshold: '5'
          query: sum(rate(http_requests_total{job="test-app"}[1m]))
          authModes: "bearer"
        authenticationRef: 
    14
    
          name: prom-cluster-triggerauthentication
    1
    ジョブを実行できる最大期間を指定します。
    2
    ジョブの再試行回数を指定します。デフォルト値は 6 です。
    3
    オプション: ジョブを並行して実行する Pod レプリカの数を指定します。デフォルトは 1 です。
    • 非並列ジョブの場合は、未設定のままにします。設定されていない場合、デフォルトは 1 になります。
    4
    オプション: ジョブを完了したとマークするために必要な、正常に完了した Pod 数を指定します。
    • 非並列ジョブの場合は、未設定のままにします。設定されていない場合、デフォルトは 1 になります。
    • 固定の完了数を持つ並列ジョブの場合、完了の数を指定します。
    • ワークキューのある並列ジョブでは、未設定のままにします。設定されていない場合、デフォルトは parallelism パラメーターの値になります。
    5
    コントローラーが作成する Pod のテンプレートを指定します。
    6
    オプション: スケールアップ時のレプリカの最大数を指定します。デフォルトは 100 です。
    7
    オプション: 各トリガーをチェックする間隔を秒単位で指定します。デフォルトは 30 です。
    8
    オプション: 保持する必要がある正常に終了したジョブの数を指定します。デフォルトは 100 です。
    9
    オプション: 保持する必要がある失敗したジョブの数を指定します。デフォルトは 100 です。
    10
    オプション: カスタムオートスケーラーがシークレットなどを保持する環境変数を取得するターゲットリソース内のコンテナーの名前を指定します。デフォルトは .spec.template.spec.containers[0] です。
    11
    オプション: スケーリングされたジョブが更新されるたびに、既存のジョブを終了するかどうかを指定します。
    • default: 関連する scaled job が更新された場合、オートスケーラーは既存のジョブを終了します。オートスケーラーは、最新の仕様でジョブを再作成します。
    • gradual: 関連する scaled job が更新された場合、オートスケーラーは既存のジョブを終了しません。オートスケーラーは、最新の仕様で新しいジョブを作成します。
    12
    オプション: スケーリングストラテジーを指定します: defaultcustom、または accurate。デフォルトは default です。詳細は、以下の「関連情報」セクションのリンクを参照してください。
    13
    「カスタムメトリクスオートスケーラートリガーについて」セクションで説明されているように、スケーリングの基準として使用するトリガーを指定します。
    14
    オプション: トリガー認証またはクラスタートリガー認証を指定します。詳細は、関連情報 セクションの カスタムメトリクスオートスケーラー認証について を参照してください。
    • トリガー認証を使用するには、TriggerAuthentication と入力します。これがデフォルトです。
    • クラスタートリガー認証を使用するには、ClusterTriggerAuthentication と入力します。
  2. 次のコマンドを実行して、カスタムメトリクスオートスケーラーを作成します。

    $ oc create -f <filename>.yaml

検証

  • コマンド出力を表示して、カスタムメトリクスオートスケーラーが作成されたことを確認します。

    $ oc get scaledjob <scaled_job_name>

    出力例

    NAME        MAX   TRIGGERS     AUTHENTICATION              READY   ACTIVE    AGE
    scaledjob   100   prometheus   prom-triggerauthentication  True    True      8s

    出力の次のフィールドに注意してください。

    • TRIGGERS: 使用されているトリガーまたはスケーラーを示します。
    • AUTHENTICATION: 使用されているトリガー認証の名前を示します。
    • READY: スケーリングされたオブジェクトがスケーリングを開始する準備ができているかどうかを示します。

      • True の場合、スケーリングされたオブジェクトの準備は完了しています。
      • False の場合、作成したオブジェクトの 1 つ以上に問題があるため、スケーリングされたオブジェクトの準備は完了していません。
    • ACTIVE: スケーリングが行われているかどうかを示します。

      • True の場合、スケーリングが行われています。
      • False の場合、メトリクスがないか、作成したオブジェクトの 1 つ以上に問題があるため、スケーリングは行われていません。
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る