3.4.4. Kafka トリガーについて
Apache Kafka トピックまたは Kafka プロトコルをサポートするその他のサービスに基づいて Pod をスケーリングできます。カスタムメトリクスオートスケーラーは、スケーリングされるオブジェクトまたはスケーリングされるジョブで allowIdleConsumers パラメーターを true に設定しない限り、Kafka パーティションの数を超えてスケーリングしません。
注記
コンシューマーグループの数がトピック内のパーティションの数を超えると、余分なコンシューマーグループはそのままアイドル状態になります。これを回避するために、デフォルトではレプリカの数は次の値を超えません。
- トピックのパーティションの数 (トピックが指定されている場合)。
- コンシューマーグループ内の全トピックのパーティション数 (トピックが指定されていない場合)。
-
スケーリングされるオブジェクトまたはスケーリングされるジョブの CR で指定された
maxReplicaCount。
これらのデフォルトの動作は、allowIdleConsumers パラメーターを使用して無効にすることができます。
Kafka ターゲットを使用した scaled object の例
apiVersion: keda.sh/v1alpha1
kind: ScaledObject
metadata:
name: kafka-scaledobject
namespace: my-namespace
spec:
# ...
triggers:
- type: kafka
metadata:
topic: my-topic
bootstrapServers: my-cluster-kafka-bootstrap.openshift-operators.svc:9092
consumerGroup: my-group
lagThreshold: '10'
activationLagThreshold: '5'
offsetResetPolicy: latest
allowIdleConsumers: true
scaleToZeroOnInvalidOffset: false
excludePersistentLag: false
version: '1.0.0'
partitionLimitation: '1,2,10-20,31'
tls: enable
- 1
- トリガータイプとして Kafka を指定します。
- 2
- Kafka がオフセットラグを処理している Kafka トピックの名前を指定します。
- 3
- 接続する Kafka ブローカーのコンマ区切りリストを指定します。
- 4
- トピックのオフセットの確認と、関連するラグの処理に使用される Kafka コンシューマーグループの名前を指定します。
- 5
- オプション: スケーリングをトリガーする平均ターゲット値を指定します。引用符で囲まれた文字列値として指定する必要があります。デフォルトは
5です。 - 6
- オプション: アクティベーションフェーズのターゲット値を指定します。引用符で囲まれた文字列値として指定する必要があります。
- 7
- オプション: Kafka コンシューマーの Kafka オフセットリセットポリシーを指定します。使用可能な値は
latestおよびearliestです。デフォルトはlatestです。 - 8
- オプション: Kafka レプリカの数がトピックのパーティションの数を超えることを許可するかどうかを指定します。
-
trueの場合、Kafka レプリカの数はトピックのパーティションの数を超えることができます。これにより、Kafka コンシューマーがアイドル状態になることが許容されます。 -
falseの場合、Kafka レプリカの数はトピックのパーティションの数を超えることはできません。これがデフォルトです。
-
- 9
- Kafka パーティションに有効なオフセットがない場合のトリガーの動作を指定します。
-
trueの場合、そのパーティションのコンシューマーはゼロにスケーリングされます。 -
falseの場合、スケーラーはそのパーティションのために 1 つのコンシューマーを保持します。これがデフォルトです。
-
- 10
- オプション: 現在のオフセットが前のポーリングサイクルの現在のオフセットと同じであるパーティションのパーティションラグをトリガーに含めるか除外するかを指定します。
-
trueの場合、スケーラーはこれらのパーティションのパーティションラグを除外します。 -
falseの場合、すべてのパーティションのコンシューマーラグがすべてトリガーに含まれます。これがデフォルトです。
-
- 11
- オプション: Kafka ブローカーのバージョンを指定します。引用符で囲まれた文字列値として指定する必要があります。デフォルトは
1.0.0です。 - 12
- オプション: スケーリングのスコープを適用するパーティション ID のコンマ区切りリストを指定します。指定されている場合、ラグの計算時にリスト内の ID のみが考慮されます。引用符で囲まれた文字列値として指定する必要があります。デフォルトでは、すべてのパーティションが考慮されます。
- 13
- オプション: Kafka に TSL クライアント認証を使用するかどうかを指定します。デフォルトは
disableです。TLS の設定の詳細は、「カスタムメトリクスオートスケーラートリガー認証について」を参照してください。