3.4. 自動スケーリング

Data Grid Operator は、メモリー使用量に基づいて Pod を作成または削除することにより、キャッシュサービス Pod でデフォルトのキャッシュを監視して、クラスターを自動的にスケールアップまたはスケールダウンできます。

重要

自動スケーリングは、キャッシュサービス Pod のクラスターでのみ利用できます。Data Grid Operator は、Data Grid サービス Pod のクラスターの自動スケーリングを実行しません。

自動スケーリングを有効にすると、Data Grid Operator が Pod を作成または削除する必要があるタイミングを決定できるメモリー使用しきい値を定義します。Data Grid Operator は、デフォルトキャッシュの統計を監視し、メモリー使用量が設定されたしきい値に達すると、クラスターをスケールアップまたはスケールダウンします。

最大しきい値

このしきい値は、スケールアップまたはエビクションを実行する前に、クラスター内の Pod が使用できるメモリー量の上限を設定します。Data Grid Operator は、設定するメモリーの最大容量にノードが達することを検出すると、可能な場合は新規のノードを作成します。Data Grid Operator が新規のノードを作成できない場合、メモリー使用量が 100 パーセントに達すると、エビクションを実行します。

最小しきい値

このしきい値は、Data Grid クラスター全体のメモリー使用量の下限を設定します。Data Grid Operator は、メモリー使用量が最小値を下回ったことを検出すると、Pod をシャットダウンします。

デフォルトのキャッシュのみ

自動スケーリング機能は、デフォルトのキャッシュでのみ動作します。他のキャッシュをクラスターに追加する予定の場合、Infinispan CR に autoscale フィールドを含めないでください。この場合、エビクションを使用して、各ノードのデータコンテナーのサイズを制御する必要があります。

3.4.1. 自動スケーリングの設定

キャッシュサービス Pod でクラスターを作成する場合、Data Grid Operator をクラスターを自動的にスケーリングするように設定できます。

手順

  1. spec.autoscale リソースを Infinispan CR に追加し、自動スケーリングを有効にします。

    注記

    自動スケーリングを無効にするには、autoscale.disabled フィールドに true の値を設定します。

  2. 以下のフィールドを使用して、自動スケーリングのしきい値を設定します。

    フィールド説明

    spec.autoscale.maxMemUsagePercent

    各ノードのメモリー使用量の最大しきい値をパーセンテージで指定します。

    spec.autoscale.maxReplicas

    クラスターのキャッシュサービス Pod の最大数を指定します。

    spec.autoscale.minMemUsagePercent

    クラスターのメモリー使用量の最小しきい値をパーセンテージで指定します。

    spec.autoscale.minReplicas

    クラスターのキャッシュサービス Pod の最小数を指定します。

    たとえば、以下を Infinispan CR に追加します。

    spec:
      service:
        type: Cache
      autoscale:
        disabled: false
        maxMemUsagePercent: 70
        maxReplicas: 5
        minMemUsagePercent: 30
        minReplicas: 2
  3. 変更を適用します。