Streams for Apache Kafka API リファレンス


Red Hat Streams for Apache Kafka 2.7

OpenShift Container Platform 上の Streams for Apache Kafka 2.7 のデプロイメントを設定する

概要

Streams for Apache Kafka API の設定プロパティーを使用して、デプロイメントを微調整します。

はじめに

Red Hat ドキュメントへのフィードバック (英語のみ)

Red Hat ドキュメントに関するご意見やご感想をお寄せください。

改善を提案するには、Jira 課題を作成し、変更案を説明してください。ご要望に迅速に対応できるよう、できるだけ詳細にご記入ください。

前提条件

  • Red Hat カスタマーポータルのアカウントがある。このアカウントを使用すると、Red Hat Jira Software インスタンスにログインできます。
    アカウントをお持ちでない場合は、アカウントを作成するように求められます。

手順

  1. 以下の Create issue をクリックします。
  2. Summary テキストボックスに、問題の簡単な説明を入力します。
  3. Description テキストボックスに、次の情報を入力します。

    • 問題が見つかったページの URL
    • 問題の詳細情報
      他のフィールドの情報はデフォルト値のままにすることができます。
  4. レポーター名を追加します。
  5. Create をクリックして、Jira 課題をドキュメントチームに送信します。

フィードバックをご提供いただきありがとうございました。

第1章 スキーマプロパティーを使用したカスタムリソースの設定

カスタムリソースは、設定プロパティーを使用して、Streams for Apache Kafka コンポーネントの操作を柔軟に管理および微調整する方法を提供します。このリファレンスガイドでは、複数のカスタムリソースに適用される共通の設定プロパティーと、Streams for Apache Kafka で使用できる各カスタムリソーススキーマで使用できる設定プロパティーを説明します。必要に応じて、プロパティーの詳しい説明とその設定方法の例を提示します。

各スキーマに定義されたプロパティーは、構造化かつ体系化して、カスタムリソースの設定を指定する方法を提供します。リソース割り当てを調整する場合でも、アクセス制御を指定する場合でも、スキーマのプロパティーを使用すると、詳細なレベルの設定が可能になります。たとえば、KafkaClusterSpec スキーマのプロパティーを使用して、Kafka クラスターのストレージのタイプを指定したり、Kafka ブローカーへの安全なアクセスを提供するリスナーを追加したりできます。

プロパティーの説明にあるように、スキーマ内のプロパティーオプションによっては制約がある場合があります。このような制約で、対象のプロパティーに割り当てることができる値に対して特定のオプションまたは制限を定義します。制約を使用して、カスタムリソースを有効かつ適切な値に設定します。

第2章 共通の設定プロパティー

共通の設定プロパティーを使用して、Streams for Apache Kafka のカスタムリソースを設定します。カスタムリソースに対して、そのリソースでサポートされている他の設定と同様に、共通の設定プロパティーを追加します。

2.1. replicas

replicas プロパティーを使用してレプリカを設定します。

レプリケーションのタイプはリソースによって異なります。

  • KafkaTopic はレプリケーション係数を使用して、Kafka クラスター内で各パーティションのレプリカ数を設定します。
  • Kafka コンポーネントはレプリカを使用してデプロイメントの Pod 数を設定し、可用性とスケーラビリティーを向上します。
注記

OpenShift で Kafka コンポーネントを実行している場合、高可用性のために複数のレプリカを実行する必要がない場合があります。コンポーネントがデプロイされたノードがクラッシュすると、OpenShift によって自動的に Kafka コンポーネント Pod が別のノードに再スケジュールされます。ただし、複数のレプリカで Kafka コンポーネントを実行すると、他のノードが稼働しているため、フェイルオーバー時間が短縮されます。

2.2. bootstrapServers

bootstrapServers プロパティーを使用してブートストラップサーバーのリストを設定します。

ブートストラップサーバーリストは、同じ OpenShift クラスターにデプロイされていない Kafka クラスターを参照できます。また、Streams for Apache Kafka によってデプロイされていない Kafka クラスターを参照することもできます。

同じ OpenShift クラスターである場合、各リストに CLUSTER-NAME-kafka-bootstrap という名前の Kafka クラスターブートストラップサービスとポート番号が含まれる必要があります。Streams for Apache Kafka によって異なる OpenShift クラスターにデプロイされた場合、リストの内容は、クラスターを公開するために使用された方法 (route、ingress、nodeport、または loadbalancer) によって異なります。

Streams for Apache Kafka によって管理されていない Kafka クラスターで Kafka を使用する場合は、特定のクラスターの設定に応じてブートストラップサーバーリストを指定できます。

2.3. ssl (サポートされている TLS バージョンと暗号スイート)

SSL 設定と暗号スイートの仕様を組み込んで、クライアントアプリケーションと Kafka クラスター間の TLS ベースの通信をさらに保護できます。標準の TLS 設定に加えて、サポートされている TLS バージョンを指定し、Kafka ブローカーの設定で暗号スイートを有効にすることができます。クライアントが使用する TLS バージョンと暗号スイートを制限する場合は、クライアントに設定を追加することもできます。クライアントの設定では、ブローカーで有効になっているプロトコルと暗号スイートのみを使用する必要があります。

暗号スイートは、セキュアな接続とデータ転送のための一連のセキュリティーメカニズムです。たとえば、暗号スイート TLS_AES_256_GCM_SHA384 は、TLS プロトコルと組み合わせて使用される次のメカニズムで構成されています。

  • AES (Advanced Encryption Standard) 暗号化 (256 ビットキー)
  • GCM (Galois/Counter Mode) 認証暗号化
  • SHA384 (Secure Hash Algorithm) データ整合性保護

この組み合わせは、TLS_AES_256_GCM_SHA384 暗号スイート仕様にカプセル化されています。

ssl.enabled.protocols プロパティーは、クラスターとそのクライアントの間のセキュアな通信に使用できる TLS バージョンを指定します。ssl.protocol プロパティーは、全接続のデフォルトの TLS バージョンを設定します。有効なプロトコルから選択する必要があります。ssl.endpoint.identification.algorithm プロパティーを使用して、ホスト名検証を有効または無効にします (Kafka クライアントに基づくコンポーネント (Kafka Connect、MirrorMaker 1/2、および Kafka Bridge) でのみ設定可能)。

SSL の設定例

# ...
config:
  ssl.cipher.suites: TLS_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 1
  ssl.enabled.protocols: TLSv1.3, TLSv1.2 2
  ssl.protocol: TLSv1.3 3
  ssl.endpoint.identification.algorithm: HTTPS 4
# ...

1
有効な暗号スイート仕様。
2
サポート対象の TLS バージョン。
3
デフォルトの TLS バージョンは TLSv1.3 です。クライアントが TLSv1.2 のみをサポートしている場合でも、サポートされているバージョンを使用してブローカーに接続して通信できます。また、クライアント上に設定があり、ブローカーが TLSv1.2 のみをサポートしている場合はその逆です。
4
ホスト名の検証は、HTTPS に設定して有効化されます。空の文字列を指定すると検証が無効になります。

2.4. trustedCertificates

tls を設定して TLS 暗号化を設定する場合は、trustedCertificates プロパティーを使用して、証明書が X.509 形式で保存されるキー名にシークレットのリストを提供します。

Kafka クラスターの Cluster Operator によって作成されるシークレットを使用するか、独自の TLS 証明書ファイルを作成してから、ファイルから Secret を作成できます。

oc create secret generic MY-SECRET \
--from-file=MY-TLS-CERTIFICATE-FILE.crt

TLS による暗号化の設定例

tls:
  trustedCertificates:
    - secretName: my-cluster-cluster-cert
      certificate: ca.crt
    - secretName: my-cluster-cluster-cert
      certificate: ca2.crt

複数の証明書が同じシークレットに保存されている場合は、複数回リストできます。

TLS 暗号化を有効にし、Java に同梱されるデフォルトの公開認証局のセットを使用する場合は、trustedCertificates を空の配列として指定できます。

デフォルトの Java 証明書で TLS を有効にする例

tls:
  trustedCertificates: []

mTLS 認証の設定に関する詳細は、KafkaClientAuthenticationTls schema reference を参照してください。

2.5. resources

Streams for Apache Kafka のリソースを制御するために、リソース 要求制限 を設定します。メモリーおよび cpu リソースの要求および制限を指定できます。要求には、Kafka の安定したパフォーマンスを確保できる十分な値が必要です。

実稼働環境でリソースを設定する方法は、さまざまな要因によって異なります。たとえば、アプリケーションは OpenShift クラスターでリソースを共有する可能性があります。

Kafka では、デプロイメントの以下の要素が、必要なリソースに影響を与える可能性があります。

  • メッセージのスループットとサイズ
  • メッセージを処理するネットワークスレッドの数
  • プロデューサーおよびコンシューマーの数
  • トピックおよびパーティションの数

リソース要求に指定の値は予約され、常にコンテナーで利用可能になります。リソース制限によって、指定のコンテナーが消費可能な最大リソースが指定されます。要求数から制限数の間は予約されず、常に利用できるとは限りません。コンテナーは、リソースが利用できる場合のみ、制限以下のリソースを使用できます。リソースの制限は一時的で、再割り当てが可能です。

リソース要求および制限

Boundaries of a resource requests and limits

要求なしに制限を設定する場合や、その逆の場合、OpenShift は両方に同じ値を使用します。OpenShift は制限を超えない限りコンテナーを強制終了しないので、リソースに対して、要求と制限を同じ数に設定すると、QoS (Quality of Service) が保証されます。

サポート対象のリソース 1 つまたは複数に対して、リソース要求および制限を設定できます。

リソース設定の例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    #...
    resources:
      requests:
        memory: 64Gi
        cpu: "8"
      limits:
        memory: 64Gi
        cpu: "12"
  entityOperator:
    #...
    topicOperator:
      #...
      resources:
        requests:
          memory: 512Mi
          cpu: "1"
        limits:
          memory: 512Mi
          cpu: "1"

Topic Operator および User Operator のリソース要求および制限は Kafka リソースに設定されます。

リソース要求が OpenShift クラスターで利用可能な空きリソースを超える場合、Pod はスケジュールされません。

注記

Streams for Apache Kafka では、OpenShift 構文を使用して memory および cpu リソースを指定します。OpenShift におけるコンピュートリソースの管理に関する詳細は、Managing Compute Resources for Containers を参照してください。

メモリーリソース

メモリーリソースを設定する場合は、コンポーネントの合計要件を考慮してください。

Kafka は JVM 内で実行され、オペレーティングシステムページキャッシュを使用してディスクに書き込む前にメッセージデータを保存します。Kafka のメモリー要求は、JVM ヒープおよびページキャッシュに適合する必要があります。jvmOptions プロパティーを設定 すると、最小および最大ヒープサイズを制御できます。

他のコンポーネントはページキャッシュに依存しません。メモリーリソースは、ヒープサイズを制御する jvmOptions を指定せずに、設定できます。

メモリー要求および制限は、メガバイト、ギガバイト、メビバイト、およびギビバイトで指定されます。仕様では、以下の接尾辞を使用します。

  • M (メガバイト)
  • G (ギガバイト)
  • Mi (メビバイト)
  • Gi (ギビバイト)

異なるメモリー単位を使用するリソースの例

# ...
resources:
  requests:
    memory: 512Mi
  limits:
    memory: 2Gi
# ...

メモリーの指定およびサポートされるその他の単位に関する詳細は、Meaning of memory を参照してください。

CPU リソース

常に信頼できるパフォーマンスを発揮させるには、CPU 要求を十分に指定する必要があります。CPU の要求および制限は、コア または ミリ cpu/ミリコア として指定します。

CPU コアは、整数 (5 CPU コア) または小数 (2.5 CPU コア) で指定します。1000 ミリコア1 CPU コアと同じです。

CPU の単位の例

# ...
resources:
  requests:
    cpu: 500m
  limits:
    cpu: 2.5
# ...

1 つの CPU コアのコンピューティング能力は、OpenShift がデプロイされたプラットフォームによって異なることがあります。

CPU 仕様の詳細は、Meaning of CPUを参照してください。

2.6. image

image プロパティーを使用して、コンポーネントによって使用されるコンテナーイメージを設定します。

コンテナーイメージのオーバーライドは、別のコンテナーレジストリーやカスタマイズされたイメージを使用する必要がある特別な状況でのみ推奨されます。

たとえば、Streams for Apache Kafka で使用されるコンテナーリポジトリーへのアクセスがネットワークで許可されていない場合は、Streams for Apache Kafka イメージをコピーするか、ソースからビルドすることができます。ただし、設定したイメージが Streams for Apache Kafka イメージと互換性がない場合、正しく機能しない可能性があります。

コンテナーイメージのコピーはカスタマイズでき、デバッグに使用されることもあります。

以下のリソースの image プロパティーを使用すると、コンポーネントに使用するコンテナーイメージを指定できます。

  • Kafka.spec.kafka
  • Kafka.spec.zookeeper
  • Kafka.spec.entityOperator.topicOperator
  • Kafka.spec.entityOperator.userOperator
  • Kafka.spec.entityOperator.tlsSidecar
  • Kafka.spec.cruiseControl
  • Kafka.spec.kafkaExporter
  • Kafka.spec.kafkaBridge
  • KafkaConnect.spec
  • KafkaMirrorMaker.spec
  • KafkaMirrorMaker2.spec
  • KafkaBridge.spec
注記

Kafka イメージバージョンを変更しても、Kafka Exporter などの他の Kafka コンポーネントのイメージバージョンは自動的に更新されません。これらのコンポーネントはバージョンに依存しないため、Kafka イメージのバージョンを更新するときに追加の設定は必要ありません。

Kafka、Kafka Connect、および Kafka MirrorMaker の image プロパティーの設定

Kafka、Kafka Connect、および Kafka MirrorMaker では、複数の Kafka バージョンがサポートされます。各コンポーネントには独自のイメージが必要です。異なる Kafka バージョンのデフォルトイメージは、以下の環境変数で設定されます。

  • STRIMZI_KAFKA_IMAGES
  • STRIMZI_KAFKA_CONNECT_IMAGES
  • STRIMZI_KAFKA_MIRROR_MAKER2_IMAGES
  • (非推奨) STRIMZI_KAFKA_MIRROR_MAKER_IMAGES

これらの環境変数には、Kafka バージョンと対応するイメージ間のマッピングが含まれています。マッピングは、image プロパティーおよび version プロパティーとともに使用され、使用されるイメージを決定します。

  • imageversion のどちらもカスタムリソースに指定されていない場合、version は Cluster Operator のデフォルトの Kafka バージョンに設定され、使用されるイメージは、環境変数のこのバージョンに対応するイメージになります。
  • image が指定されていても version が指定されていない場合、指定されたイメージが使用され、Cluster Operator のデフォルトの Kafka バージョンが version であると想定されます。
  • version が指定されていても image が指定されていない場合、環境変数の指定されたバージョンに対応するイメージが使用されます。
  • versionimage の両方を指定すると、指定されたイメージが使用されます。このイメージには、指定のバージョンの Kafka イメージが含まれると想定されます。

コンポーネントの image および version は、以下のプロパティーで設定できます。

  • Kafka の場合は spec.kafka.image および spec.kafka.version
  • spec.image および spec.version の Kafka Connect および Kafka MirrorMaker の場合。
警告

version のみを提供し、image プロパティーを未指定のままにしておくことが推奨されます。これにより、カスタムリソースの設定時に間違いが発生する可能性が低減されます。異なるバージョンの Kafka に使用されるイメージを変更する必要がある場合は、Cluster Operator の環境変数を設定することが推奨されます。

他のリソースでの image プロパティーの設定

他のコンポーネントのカスタムリソースの image プロパティーは、デプロイメント時に指定された値が使用されます。image プロパティーが設定されていない場合は、Cluster Operator 設定で環境変数として指定されたコンテナー image が使用されます。image 名が Cluster Operator 設定で定義されていない場合は、デフォルト値が使用されます。

イメージ環境変数の詳細は、Cluster Operator の設定 を参照してください。

表2.1 イメージの環境変数とデフォルト
コンポーネント環境変数デフォルトのイメージ

Topic Operator

STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE

registry.redhat.io/amq-streams/strimzi-rhel9-operator:2.7.0

User Operator

STRIMZI_DEFAULT_USER_OPERATOR_IMAGE

registry.redhat.io/amq-streams/strimzi-rhel9-operator:2.7.0

Entity Operator TLS サイドカー

STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE

registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0

Kafka Exporter

STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE

registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0

Cruise Control

STRIMZI_DEFAULT_CRUISE_CONTROL_IMAGE

registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0

Kafka Bridge

STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE

registry.redhat.io/amq-streams/bridge-rhel9:2.7.0

Kafka Initializer

STRIMZI_DEFAULT_KAFKA_INIT_IMAGE

registry.redhat.io/amq-streams/strimzi-rhel9-operator:2.7.0

コンテナーイメージ設定の例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    image: my-org/my-image:latest
    # ...
  zookeeper:
    # ...

2.7. livenessProbe および readinessProbe ヘルスチェック

livenessProbe および readinessProbe プロパティーを使用して、Streams for Apache Kafka でサポートされるヘルスチェックプローブを設定します。

ヘルスチェックは、アプリケーションの健全性を検証する定期的なテストです。ヘルスチェックプローブが失敗すると、OpenShift によってアプリケーションが正常でないと見なされ、その修正が試行されます。

プローブの詳細は、Configure Liveness and Readiness Probes を参照してください。

livenessProbe および readinessProbe の両方で以下のオプションがサポートされます。

  • initialDelaySeconds
  • timeoutSeconds
  • periodSeconds
  • successThreshold
  • failureThreshold

Liveness および Readiness プローブの設定例

# ...
readinessProbe:
  initialDelaySeconds: 15
  timeoutSeconds: 5
livenessProbe:
  initialDelaySeconds: 15
  timeoutSeconds: 5
# ...

livenessProbe および readinessProbe オプションの詳細は、Probe スキーマリファレンス を参照してください。

2.8. metricsConfig

metricsConfig プロパティーを使用して、Prometheus メトリクスを有効化および設定します。

metricsConfig プロパティーには、Prometheus JMX Exporter の追加設定が含まれる ConfigMap への参照が含まれます。Streams for Apache Kafka は、Prometheus JMX エクスポーターを使用して Prometheus メトリクスをサポートし、Apache Kafka および ZooKeeper でサポートされている JMX メトリクスを Prometheus メトリクスに変換します。

追加設定なしで Prometheus メトリックのエクスポートを有効にするには、metricsConfig.valueFrom.configMapKeyRef.key 配下に空のファイルが含まれる ConfigMap を参照します。空のファイルを参照する場合、名前が変更されていない限り、すべてのメトリックが公開されます。

Kafka のメトリック設定が含まれる ConfigMap の例

kind: ConfigMap
apiVersion: v1
metadata:
  name: my-configmap
data:
  my-key: |
    lowercaseOutputName: true
    rules:
    # Special cases and very specific rules
    - pattern: kafka.server<type=(.+), name=(.+), clientId=(.+), topic=(.+), partition=(.*)><>Value
      name: kafka_server_$1_$2
      type: GAUGE
      labels:
       clientId: "$3"
       topic: "$4"
       partition: "$5"
    # further configuration

Kafka のメトリック設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    metricsConfig:
      type: jmxPrometheusExporter
      valueFrom:
        configMapKeyRef:
          name: my-config-map
          key: my-key
    # ...
  zookeeper:
    # ...

有効になったメトリックは、9404 番ポートで公開されます。

metricsConfig (または非推奨の metrics) プロパティーがリソースに定義されていない場合、Prometheus メトリックは無効になります。

Prometheus と Grafana の設定とデプロイの詳細は、Kafka へのメトリクスの導入 を参照してください。

2.9. jvmOptions

次の Streams for Apache Kafka コンポーネントは、Java 仮想マシン (JVM) 内で実行されます。

  • Apache Kafka
  • Apache ZooKeeper
  • Apache Kafka Connect
  • Apache Kafka MirrorMaker
  • Streams for Apache Kafka Bridge

異なるプラットフォームやアーキテクチャーでパフォーマンスを最適化するには、以下のリソースに jvmOptions プロパティーを設定します。

  • Kafka.spec.kafka
  • Kafka.spec.zookeeper
  • Kafka.spec.entityOperator.userOperator
  • Kafka.spec.entityOperator.topicOperator
  • Kafka.spec.cruiseControl
  • KafkaNodePool.spec
  • KafkaConnect.spec
  • KafkaMirrorMaker.spec
  • KafkaMirrorMaker2.spec
  • KafkaBridge.spec

設定では、以下のオプションを指定できます。

-Xms
JVM の起動時に最初に割り当てられる最小ヒープサイズ。
-Xmx
最大ヒープサイズ
-XX
JVM の高度なランタイムオプション
javaSystemProperties
追加のシステムプロパティー
gcLoggingEnabled
ガベッジコレクターのロギングを有効にします
注記

-Xmx-Xms などの JVM 設定で使用できる単位は、対応するイメージの JDK java バイナリーで使用できる単位と同じです。そのため、1g または 1G は 1,073,741,824 バイトを意味し、Gi は接尾辞として有効な単位ではありません。これは、1G が 1,000,000,000 バイトを意味し、1Gi が 1,073,741,824 バイトを意味する OpenShift 規則に従う、メモリー要求および制限 に使用される単位とは異なります。

-Xms および -Xmx オプション

コンテナーのメモリー要求および制限値を設定するだけでなく、-Xms および -Xmx JVM オプションを使用して、JVM に特定のヒープサイズを設定できます。-Xms オプションを使用して初期ヒープサイズを設定し、-Xmx オプションを使用して最大ヒープサイズを設定します。

JVM に割り当てられたメモリーをより詳細に制御するには、ヒープサイズを指定します。ヒープサイズは、コンテナーの メモリー制限 (および要求) を最大限に活用し、それを超えないようにする必要があります。ヒープサイズとその他のメモリー要件は、指定されたメモリー制限内に収まる必要があります。設定でヒープサイズを指定せずに、メモリーリソースの制限 (および要求) を設定する場合、Cluster Operator はデフォルトのヒープサイズを自動的に適用します。Cluster Operator は、メモリーリソース設定の割合に基づいて、デフォルトの最大および最小ヒープ値を設定します。

次の表に、デフォルトのヒープ値を示します。

表2.2 コンポーネントのデフォルトのヒープ設定
コンポーネントヒープに割り当てられた使用可能なメモリーの割合上限

Kafka

50%

5 GB

ZooKeeper

75%

2 GB

Kafka Connect

75%

なし

MirrorMaker 2

75%

なし

MirrorMaker

75%

なし

Cruise Control

75%

なし

Kafka Bridge

50%

31 Gi

メモリー制限 (および要求) が指定されていない場合、JVM の最小ヒープサイズは 128M に設定されます。JVM の最大ヒープサイズは、必要に応じてメモリーを増やすことができるように定義されていません。これは、テストおよび開発での単一ノード環境に適しています。

適切なメモリー要求を設定すると、次のことを防ぐことができます。

  • ノードで実行されている他の Pod からのメモリーに圧力がかかる場合、OpenShift はコンテナーを強制終了します。
  • OpenShift がメモリー不足のノードにコンテナーをスケジューリングする。-Xms-Xmx に設定されている場合には、コンテナーはすぐにクラッシュし、存在しない場合、コンテナーは後でクラッシュします。

この例では、JVM のヒープに 2 GiB (2,147,483,648 バイト) が使用されます。JVM メモリー使用量の合計は、最大ヒープサイズを超える可能性があります。

-Xmx および -Xms の設定例

# ...
jvmOptions:
  "-Xmx": "2g"
  "-Xms": "2g"
# ...

最初のヒープサイズ (-Xms) および最大ヒープサイズ (-Xmx) に同じ値を設定すると、JVM が必要以上のヒープを割り当てて起動後にメモリーを割り当てないようにすることができます。

重要

Kafka ブローカーコンテナーなど、多数のディスク I/O を実行するコンテナーには、オペレーティングシステムのページキャッシュとして使用できるメモリーが必要です。このようなコンテナーの場合、要求されるメモリーは、JVM が使用するメモリーよりも大幅に大きくする必要があります。

-XX オプション

-XX オプションは、Apache Kafka の KAFKA_JVM_PERFORMANCE_OPTS オプションの設定に使用されます。

-XX 設定

jvmOptions:
  "-XX":
    "UseG1GC": "true"
    "MaxGCPauseMillis": "20"
    "InitiatingHeapOccupancyPercent": "35"
    "ExplicitGCInvokesConcurrent": "true"

-XX 設定から生成される JVM オプション

-XX:+UseG1GC -XX:MaxGCPauseMillis=20 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -XX:-UseParNewGC

注記

-XX オプションを指定しないと、Apache Kafka の KAFKA_JVM_PERFORMANCE_OPTS のデフォルト設定が使用されます。

javaSystemProperties

javaSystemProperties は、デバッグユーティリティーなどの追加の Java システムプロパティーの設定に使用されます。

javaSystemProperties の設定例

jvmOptions:
  javaSystemProperties:
    - name: javax.net.debug
      value: ssl

jvmOptions の詳細は、JvmOptions スキーマリファレンス を参照してください。

2.10. ガベッジコレクターのロギング

jvmOptions プロパティーでは、ガベージコレクター (GC) のロギングを有効または無効にすることもできます。GC ロギングはデフォルトで無効になっています。これを有効にするには、以下のように gcLoggingEnabled プロパティーを設定します。

GC ロギングの設定例

# ...
jvmOptions:
  gcLoggingEnabled: true
# ...

第3章 Kafka スキーマリファレンス

プロパティープロパティータイプ説明

spec

KafkaSpec

Kafka および ZooKeeper クラスター、Topic Operator の仕様。

status

KafkaStatus

Kafka および ZooKeeper クラスター、Topic Operator のステータス。

第4章 KafkaSpec スキーマリファレンス

Kafka で使用

プロパティープロパティータイプ説明

kafka

KafkaClusterSpec

Kafka クラスターの設定。

zookeeper

ZookeeperClusterSpec

ZooKeeper クラスターの設定。このセクションは、ZooKeeper ベースの Apache Kafka クラスターを実行する場合に必要です。

entityOperator

EntityOperatorSpec

Entity Operator の設定。

clusterCa

CertificateAuthority

クラスター認証局の設定。

clientsCa

CertificateAuthority

クライアント認証局の設定。

cruiseControl

CruiseControlSpec

Cruise Control デプロイメントの設定。指定時に Cruise Control インスタンスをデプロイします。

jmxTrans

JmxTransSpec

jmxTrans プロパティーは非推奨になりました。JMXTrans は非推奨になり、Streams for Apache Kafka 2.5 で関連リソースが削除されました。Streams for Apache Kafka 2.5 以降では、JMXTrans はサポートされなくなり、このオプションは無視されます。

kafkaExporter

KafkaExporterSpec

Kafka Exporter の設定。Kafka Exporter は追加のメトリックを提供できます (例: トピック/パーティションでのコンシューマーグループのラグなど)。

maintenanceTimeWindows

string array

メンテナンスタスク (証明書の更新) 用の時間枠の一覧。それぞれの時間枠は、cron 式で定義されます。

第5章 KafkaClusterSpec スキーマリファレンス

KafkaSpec で使用

KafkaClusterSpec スキーマプロパティーの全リスト

Kafka クラスターを設定します。

5.1. listeners

listeners プロパティーを使用して、Kafka ブローカーへのアクセスを提供するようにリスナーを設定します。

認証のないプレーン (暗号化されていない) リスナーの設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  kafka:
    # ...
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
    # ...
  zookeeper:
    # ...

5.2. config

config プロパティーを使用して、Kafka ブローカーオプションをキーとして設定します。

値は以下の JSON タイプのいずれかになります。

  • 文字列
  • 数値
  • ブール値

例外

Apache Kafka ドキュメント にリストされているオプションを指定および設定できます。

ただし、次の項目に関連するオプションの設定と管理は、Streams for Apache Kafka が行います。これらは変更できません。

  • セキュリティー (暗号化、認証、および認可)
  • リスナーの設定
  • Broker ID の設定
  • ログデータディレクトリーの設定
  • ブローカー間の通信
  • ZooKeeper の接続

次の接頭辞を持つプロパティーは設定できません。

  • advertised.
  • authorizer.
  • broker.
  • controller
  • cruise.control.metrics.reporter.bootstrap.
  • cruise.control.metrics.topic
  • host.name
  • inter.broker.listener.name
  • listener.
  • listeners
  • log.dir
  • password.
  • port
  • process.roles
  • sasl.
  • security.
  • servers,node.id
  • ssl.
  • super.user
  • zookeeper.clientCnxnSocket
  • zookeeper.connect
  • zookeeper.set.acl
  • zookeeper.ssl

config プロパティーに変更できないオプションが含まれている場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに記録されます。サポートされているその他のすべてのオプションは、Streams for Apache Kafka によって設定されたオプションの次の例外も含め、Kafka に転送されます。

  • サポートされている TLS バージョンと暗号スイート の任意の ssl 設定
  • zookeeper.connection.timeout.ms プロパティーを設定して、ZooKeeper 接続の確立に許可される最大時間の設定。
  • Cruise Control メトリックのプロパティー:

    • cruise.control.metrics.topic.num.partitions
    • cruise.control.metrics.topic.replication.factor
    • cruise.control.metrics.topic.retention.ms
    • cruise.control.metrics.topic.auto.create.retries
    • cruise.control.metrics.topic.auto.create.timeout.ms
    • cruise.control.metrics.topic.min.insync.replicas
  • コントローラーのプロパティー:

    • controller.quorum.election.backoff.max.ms
    • controller.quorum.election.timeout.ms
    • controller.quorum.fetch.timeout.ms

Kafka ブローカーの設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    config:
      num.partitions: 1
      num.recovery.threads.per.data.dir: 1
      default.replication.factor: 3
      offsets.topic.replication.factor: 3
      transaction.state.log.replication.factor: 3
      transaction.state.log.min.isr: 1
      log.retention.hours: 168
      log.segment.bytes: 1073741824
      log.retention.check.interval.ms: 300000
      num.network.threads: 3
      num.io.threads: 8
      socket.send.buffer.bytes: 102400
      socket.receive.buffer.bytes: 102400
      socket.request.max.bytes: 104857600
      group.initial.rebalance.delay.ms: 0
      zookeeper.connection.timeout.ms: 6000
    # ...

5.3. brokerRackInitImage

ラックアウェアネス (Rack Awareness) が有効である場合、Kafka ブローカー Pod は init コンテナーを使用して OpenShift クラスターノードからラベルを収集します。このコンテナーに使用されるコンテナーイメージは、brokerRackInitImage プロパティーを使用して設定できます。brokerRackInitImage フィールドがない場合、以下のイメージが優先度順に使用されます。

  1. Cluster Operator 設定の STRIMZI_DEFAULT_KAFKA_INIT_IMAGE 環境変数に指定されたコンテナーイメージ。
  2. registry.redhat.io/amq-streams/strimzi-rhel9-operator:2.7.0 container image.

brokerRackInitImage の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    brokerRackInitImage: my-org/my-image:latest
    # ...

注記

コンテナーイメージのオーバーライドは、別のコンテナーレジストリーを使用する必要がある特別な状況でのみ推奨されます。たとえば、Streams for Apache Kafka によって使用されるコンテナーレジストリーにネットワークがアクセスできない場合などがこれに該当します。この場合、Streams for Apache Kafka イメージをコピーするか、ソースからビルドする必要があります。設定したイメージが Streams for Apache Kafka イメージと互換性がない場合、正しく機能しない可能性があります。

5.4. logging

Kafka には、次のような独自の設定可能なロガーがあります。

  • log4j.logger.org.I0Itec.zkclient.ZkClient
  • log4j.logger.org.apache.zookeeper
  • log4j.logger.kafka
  • log4j.logger.org.apache.kafka
  • log4j.logger.kafka.request.logger
  • log4j.logger.kafka.network.Processor
  • log4j.logger.kafka.server.KafkaApis
  • log4j.logger.kafka.network.RequestChannel$
  • log4j.logger.kafka.controller
  • log4j.logger.kafka.log.LogCleaner
  • log4j.logger.state.change.logger
  • log4j.logger.kafka.authorizer.logger

Kafka では Apache log4j ロガー実装が使用されます。

logging プロパティーを使用してロガーおよびロガーレベルを設定します。

ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、カスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j.properties を使用して記述されます。logging.valueFrom.configMapKeyRef.name および logging.valueFrom.configMapKeyRef.key プロパティーはいずれも必須です。Cluster Operator の実行時に、指定された正確なロギング設定を使用する ConfigMap がカスタムリソースを使用して作成され、その後は調整のたびに再作成されます。カスタム ConfigMap を指定しない場合、デフォルトのロギング設定が使用されます。特定のロガー値が設定されていない場合、上位レベルのロガー設定がそのロガーに継承されます。ログレベルの詳細は、Apache logging services を参照してください。

ここで、inline および external ロギングの例を示します。inline ロギングでは、ルートロガーレベルを指定します。特定のクラスまたはロガーを loggers プロパティーに追加することで、それらのログレベルを設定することもできます。

inline ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  kafka:
    # ...
    logging:
      type: inline
      loggers:
        kafka.root.logger.level: INFO
        log4j.logger.kafka.coordinator.transaction: TRACE
        log4j.logger.kafka.log.LogCleanerManager: DEBUG
        log4j.logger.kafka.request.logger: DEBUG
        log4j.logger.io.strimzi.kafka.oauth: DEBUG
        log4j.logger.org.openpolicyagents.kafka.OpaAuthorizer: DEBUG
  # ...

注記

ログレベルを DEBUG に設定すると、大量のログが出力され、パフォーマンスに影響を及ぼす可能性があります。

外部ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: kafka-log4j.properties
  # ...

設定されていない利用可能なロガーのレベルは OFF に設定されています。

Cluster Operator を使用して Kafka がデプロイされた場合、Kafka のロギングレベルの変更は動的に適用されます。

外部ロギングを使用する場合は、ロギングアペンダーが変更されるとローリング更新がトリガーされます。

ガベージコレクター (GC)

ガベッジコレクターのロギングは jvmOptions プロパティーを使用して 有効 (または無効) にすることもできます。

5.5. KafkaClusterSpec スキーマプロパティー

プロパティープロパティータイプ説明

version

string

Kafka ブローカーのバージョン。デフォルトは最新バージョンです。バージョンのアップグレードまたはダウングレードに必要なプロセスを理解するには、ユーザードキュメントを参照してください。

metadataVersion

string

Streams for Apache Kafka 2.7 で追加されました。Kafka クラスターによって使用される KRaft メタデータのバージョン。ZooKeeper モードで実行していると、このプロパティーは無視されます。このプロパティーが設定されていない場合は、デフォルトで version プロパティーに対応するメタデータバージョンが使用されます。

replicas

integer

クラスター内の Pod 数。このプロパティーは、ノードプールを使用しない場合に必要です。

image

string

Kafka Pod に使用されるコンテナーイメージ。このプロパティーが設定されていない場合、デフォルトの Kafka イメージバージョンは version 設定に基づいて決定されます。イメージ名は、Cluster Operator 設定内の対応するバージョンに具体的にマッププされます。Kafka イメージのバージョンを変更しても、Kafka Exporter などの他のコンポーネントのイメージバージョンは自動的に更新されません。

listeners

GenericKafkaListener 配列

Kafka ブローカーのリスナーを設定します。

config

map

listeners, advertised., broker., listener., host.name, port, inter.broker.listener.name, sasl., ssl., security., password., log.dir, zookeeper.connect, zookeeper.set.acl, zookeeper.ssl, zookeeper.clientCnxnSocket, authorizer., super.user, cruise.control.metrics.topic, cruise.control.metrics.reporter.bootstrap.servers,node.id, process.roles, controller, metadata.log.dir, zookeeper.metadata.migration.enable の接頭辞のある Kafka ブローカーの config プロパティーは設定できません (次は対象外: zookeeper.connection.timeout.ms, sasl.server.max.receive.size,ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols, ssl.secure.random.implementation,cruise.control.metrics.topic.num.partitions, cruise.control.metrics.topic.replication.factor, cruise.control.metrics.topic.retention.ms,cruise.control.metrics.topic.auto.create.retries, cruise.control.metrics.topic.auto.create.timeout.ms,cruise.control.metrics.topic.min.insync.replicas,controller.quorum.election.backoff.max.ms, controller.quorum.election.timeout.ms, controller.quorum.fetch.timeout.ms)。

storage

EphemeralStoragePersistentClaimStorageJbodStorage

ストレージの設定 (ディスク)。更新はできません。このプロパティーは、ノードプールを使用しない場合に必要です。

authorization

KafkaAuthorizationSimpleKafkaAuthorizationOpaKafkaAuthorizationKeycloakKafkaAuthorizationCustom

Kafka ブローカーの認可設定。

rack

Rack

broker.rack ブローカー設定の設定

brokerRackInitImage

string

broker.rack の初期化に使用される init コンテナーのイメージ。

livenessProbe

Probe

Pod の liveness チェック。

readinessProbe

Probe

Pod の readiness チェック。

jvmOptions

JvmOptions

Pod の JVM オプション。

jmxOptions

KafkaJmxOptions

Kafka ブローカーの JMX オプション。

resources

ResourceRequirements

予約する CPU およびメモリーリソース。

metricsConfig

JmxPrometheusExporterMetrics

メトリックの設定。

logging

InlineLoggingExternalLogging

Kafka のロギング設定。

template

KafkaClusterTemplate

Kafka クラスターリソースのテンプレート。このテンプレートを使用すると、ユーザーは OpenShift リソースの生成方法を指定できます。

tieredStorage

TieredStorageCustom

Kafka ブローカーの階層化ストレージ機能を設定します。

第6章 Generic KafkaListener スキーマリファレンス

KafkaClusterSpec で使用

GenericKafkaListener スキーマプロパティーの全リスト

OpenShift 内外の Kafka ブローカーに接続するようにリスナーを設定します。

Kafka リソースでリスナーを設定します。

リスナー設定を示す Kafka リソースの例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    #...
    listeners:
      - name: plain
        port: 9092
        type: internal
        tls: false
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
      - name: external1
        port: 9094
        type: route
        tls: true
      - name: external2
        port: 9095
        type: ingress
        tls: true
        authentication:
          type: tls
        configuration:
          bootstrap:
            host: bootstrap.myingress.com
          brokers:
          - broker: 0
            host: broker-0.myingress.com
          - broker: 1
            host: broker-1.myingress.com
          - broker: 2
            host: broker-2.myingress.com
    #...

6.1. listeners

Kafka リソースの listeners プロパティーを使用して Kafka ブローカーリスナーを設定します。リスナーは配列として定義されます。

リスナーの設定例

listeners:
  - name: plain
    port: 9092
    type: internal
    tls: false

名前およびポートは Kafka クラスター内で一意である必要があります。各リスナーに一意の名前とポートを指定することで、複数のリスナーを設定できます。名前は最大 25 文字で、小文字と数字で構成できます。

6.2. port

ポート番号は Kafka クラスターで使用されるポートで、クライアントによるアクセスに使用されるポートとは異なる場合があります。

  • loadbalancer リスナーは、指定されたポート番号を使用します。internal および cluster-ip リスナーも同様です。
  • ingress および route リスナーはアクセスにポート 443 を使用します。
  • nodeport リスナーは OpenShift によって割り当てられたポート番号を使用します。

クライアント接続の場合は、リスナーのブートストラップサービスのアドレスおよびポートを使用します。これは、Kafka リソースのステータスから取得できます。

クライアント接続のアドレスおよびポートを取得するコマンドの例

oc get kafka <kafka_cluster_name> -o=jsonpath='{.status.listeners[?(@.name=="<listener_name>")].bootstrapServers}{"\n"}'

重要

ブローカーへのクライアントアクセス用にリスナーを設定する場合、いくつかの例外を除き、ポート 9092 以降 (9093、9094 など) を使用できます。ブローカー間通信 (9090 および 9091)、Prometheus メトリック (9404)、および JMX (Java Management Extensions) モニタリング (9999) 用に予約されているポートを使用するようにリスナーを設定できません。

6.3. type

タイプは internal として設定されるか、外部リスナーの場合は routeloadbalancernodeportingress または cluster-ip として設定されます。また、カスタムアクセスメカニズムの構築に使用できる内部リスナーの一種である cluster-ip リスナーを設定することもできます。

internal

tls プロパティーを使用して、暗号化の有無に関わらず内部リスナーを設定できます。

internal リスナーの設定例

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: plain
        port: 9092
        type: internal
        tls: false
      - name: tls
        port: 9093
        type: internal
        tls: true
        authentication:
          type: tls
    #...

route

OpenShift Routes および HAProxy ルーターを使用して Kafka を公開するように外部リスナーを設定します。

Kafka ブローカー Pod ごとに専用の Route が作成されます。追加の Route が作成され、Kafka ブートストラップアドレスとして提供されます。これらの Routes を使用すると、Kafka クライアントを 443 番ポートで Kafka に接続することができます。クライアントはデフォルトのルーターポートであるポート 443 に接続しますが、トラフィックは設定するポート (この例では 9094 ) にルーティングされます。

route リスナーの設定例

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external1
        port: 9094
        type: route
        tls: true
    #...

ingress

Kubernetes Ingress および Ingress NGINX Controller for Kubernetes を使用して、Kafka を公開するように外部リスナーを設定します。

各 Kafka ブローカー Pod に専用の Ingress リソースが作成されます。追加の Ingress リソースが作成され、Kafka ブートストラップアドレスとして提供されます。これらの Ingress リソースを使用すると、Kafka クライアントを 443 番ポートで Kafka に接続することができます。クライアントはデフォルトのコントローラーポートであるポート 443 に接続しますが、トラフィックは設定するポート (以下の例では 9095 にルーティングされます)。

GenericKafkaListenerConfigurationBootstrap および GenericKafkaListenerConfigurationBroker プロパティーを使用して、ブートストラップおよびブローカーごとのサービスによって使用されるホスト名を指定する必要があります。

Ingress リスナーの設定例

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external2
        port: 9095
        type: ingress
        tls: true
        authentication:
          type: tls
        configuration:
          bootstrap:
            host: bootstrap.myingress.com
          brokers:
          - broker: 0
            host: broker-0.myingress.com
          - broker: 1
            host: broker-1.myingress.com
          - broker: 2
            host: broker-2.myingress.com
  #...

注記

Ingress を使用する外部リスナーは、現在 Ingress NGINX Controller for Kubernetes でのみテストされています。

loadbalancer

Loadbalancer タイプの Service を使用して Kafka を公開するように外部リスナーを設定します。

Kafka ブローカー Pod ごとに新しいロードバランサーサービスが作成されます。追加のロードバランサーが作成され、Kafka の ブートストラップ アドレスとして提供されます。ロードバランサーは指定のポート番号をリッスンします。以下の例ではポート 9094 です。

loadBalancerSourceRanges プロパティーを使用して、指定された IP アドレスへのアクセスを制限する ソース範囲 を設定できます。

loadbalancer リスナーの設定例

#...
spec:
  kafka:
    #...
    listeners:
      - name: external3
        port: 9094
        type: loadbalancer
        tls: true
        configuration:
          loadBalancerSourceRanges:
            - 10.0.0.0/8
            - 88.208.76.87/32
    #...

nodeport

NodePort タイプの Service を使用して Kafka を公開するように外部リスナーを設定します。

Kafka クライアントは OpenShift のノードに直接接続します。追加の NodePort タイプのサービスが作成され、Kafka ブートストラップアドレスとして提供されます。

Kafka ブローカー Pod にアドバタイズされたアドレスを設定する場合、Streams for Apache Kafka は、該当する Pod が実行されているノードのアドレスを使用します。preferredNodePortAddressType プロパティーを使用して、チェックした最初のアドレスタイプをノードアドレスとして設定することができます。

nodeport リスナーの設定例

#...
spec:
  kafka:
    #...
    listeners:
      #...
      - name: external4
        port: 9095
        type: nodeport
        tls: false
        configuration:
          preferredNodePortAddressType: InternalDNS
    #...

注記

ノードポートを使用して Kafka クラスターを公開する場合、現在 TLS ホスト名の検証はサポートされません。

cluster-ip

ブローカーごとの ClusterIP タイプ Service を使用して Kafka を公開するように内部リスナーを設定します。

リスナーは、ヘッドレスサービスとその DNS 名を使用してトラフィックを Kafka ブローカーにルーティングしません。ヘッドレスサービスの使用が不適切な場合は、このタイプのリスナーを使用して Kafka クラスターを公開できます。特定の Ingress コントローラーや OpenShift Gateway API を使用するものなど、カスタムアクセスメカニズムで使用できます。

Kafka ブローカー Pod ごとに新しい ClusterIP サービスが作成されます。このサービスには、ブローカーごとのポート番号を持つ Kafka ブートストラップ アドレスとして機能する ClusterIP アドレスが割り当てられます。たとえば、TCP ポート設定を使用して、Nginx Ingress Controller を介して Kafka クラスターを公開するようにリスナーを設定できます。

cluster-ip リスナーの設定例

#...
spec:
  kafka:
    #...
    listeners:
      - name: clusterip
        type: cluster-ip
        tls: false
        port: 9096
    #...

6.4. tls

TLS プロパティーが必要です。

TLS 暗号化を有効にするには、tls プロパティーを true に設定します。route および Ingress タイプのリスナーの場合、TLS 暗号化を常に有効にする必要があります。

6.5. 認証

リスナーの認証は以下のように指定できます。

  • mTLS (tls)
  • SCRAM-SHA-512 (scram-sha-512)
  • トークンベースの OAuth 2.0 (oauth)
  • Custom(カスタム)

6.6. networkPolicyPeers

ネットワークレベルでリスナーへのアクセスを制限するネットワークポリシーを設定するには、networkPolicyPeers を使用します。次の例では、plaintls リスナーの networkPolicyPeers の設定を示しています。

以下の例では、下記の点を前提としています。

  • ラベル app: kafka-sasl-consumer および app: kafka-sasl-producer と一致するアプリケーション Pod のみが plain リスナーに接続できます。アプリケーション Pod は Kafka ブローカーと同じ namespace で実行されている必要があります。
  • ラベル project: myproject および project: myproject2 と一致する namespace で稼働しているアプリケーション Pod のみ、tls リスナーに接続できます。

networkPolicyPeers プロパティーの構文は、NetworkPolicy リソースの from プロパティーと同じです。

ネットワークポリシー設定の例

listeners:
  #...
  - name: plain
    port: 9092
    type: internal
    tls: true
    authentication:
      type: scram-sha-512
    networkPolicyPeers:
      - podSelector:
          matchLabels:
            app: kafka-sasl-consumer
      - podSelector:
          matchLabels:
            app: kafka-sasl-producer
  - name: tls
    port: 9093
    type: internal
    tls: true
    authentication:
      type: tls
    networkPolicyPeers:
      - namespaceSelector:
          matchLabels:
            project: myproject
      - namespaceSelector:
          matchLabels:
            project: myproject2
# ...

6.7. GenericKafkaListener スキーマプロパティー

プロパティープロパティータイプ説明

name

string

リスナーの名前。名前は、リスナーおよび関連する OpenShift オブジェクトの識別に使用されます。指定の Kafka クラスター内で一意となる必要があります。名前は小文字と数字で構成でき、最大 11 文字まで使用できます。

port

integer

Kafka 内でリスナーによって使用されるポート番号。ポート番号は指定の Kafka クラスター内で一意である必要があります。許可されるポート番号は 9092 以上ですが、すでに Prometheus および JMX によって使用されているポート 9404 および 9999 以外になります。リスナーのタイプによっては、ポート番号は Kafka クライアントに接続するポート番号と同じではない場合があります。

type

string ([ingress、internal、route、loadbalancer、cluster-ip、nodeport] のいずれか)

リスナーのタイプ。サポートされるタイプは次のとおりです。

  • internal タイプは、OpenShift クラスター内でのみ Kafka を内部的に公開します。
  • route タイプは、OpenShift Routes を使用して Kafka を公開します。
  • loadbalancer タイプは、LoadBalancer タイプのサービスを使用して Kafka を公開します。
  • nodeport タイプは、NodePort タイプのサービスを使用して Kafka を公開します。
  • ingress タイプは、OpenShift Nginx Ingress を使用して、TLS パススルーで Kafka を公開します。
  • cluster-ip タイプは、ブローカーごとの ClusterIP サービスを使用します。

tls

boolean

リスナーで TLS による暗号化を有効にします。これは必須プロパティーです。

認証

KafkaListenerAuthenticationTlsKafkaListenerAuthenticationScramSha512KafkaListenerAuthenticationOAuthKafkaListenerAuthenticationCustom

このリスナーの認証設定。

configuration

GenericKafkaListenerConfiguration

追加のリスナー設定。

networkPolicyPeers

NetworkPolicyPeer アレイ

このリスナーに接続できるピアのリスト。このリストのピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこのリストの少なくとも 1 つの項目と一致するトラフィックのみを許可します。

第7章 KafkaListenerAuthenticationTls スキーマリファレンス

GenericKafkaListener で使用

typeプロパティーは、KafkaListenerAuthenticationTlsタイプと、KafkaListenerAuthenticationScramSha512KafkaListenerAuthenticationOAuthKafkaListenerAuthenticationCustom とを区別して使用するための識別子です。KafkaListenerAuthenticationTls タイプには tls の値が必要です。

プロパティープロパティータイプ説明

type

string

tls でなければなりません。

第8章 KafkaListenerAuthenticationScramSha512 スキーマリファレンス

GenericKafkaListener で使用

type プロパティーは、KafkaListenerAuthenticationScramSha512 タイプと、KafkaListenerAuthenticationTlsKafkaListenerAuthenticationOAuthKafkaListenerAuthenticationCustom とを区別して使用するための識別子です。KafkaListenerAuthenticationScramSha512 タイプには scram-sha-512 の値が必要です。

プロパティープロパティータイプ説明

type

string

scram-sha-512 でなければなりません。

第9章 KafkaListenerAuthenticationOAuth スキーマリファレンス

GenericKafkaListener で使用

type プロパティーは、KafkaListenerAuthenticationOAuth タイプと、KafkaListenerAuthenticationTlsKafkaListenerAuthenticationScramSha512KafkaListenerAuthenticationCustom とを区別して使用するための識別子です。KafkaListenerAuthenticationOAuth タイプには oauth の値が必要です。

プロパティープロパティータイプ説明

accessTokenIsJwt

boolean

アクセストークンを JWT として処理するかどうかを設定します。認可サーバーが不透明なトークンを返す場合は、false に設定する必要があります。デフォルトは true です。

checkAccessTokenType

boolean

アクセストークンタイプのチェックを行うかどうかを設定します。認可サーバーの JWT トークンに 'typ' 要求が含まれない場合は、false に設定する必要があります。デフォルトは true です。

checkAudience

boolean

オーディエンスのチェックを有効または無効にします。オーディエンスのチェックによって、トークンの受信者が特定されます。オーディエンスチェックが有効な場合、OAuth クライアント ID も clientId プロパティーで設定する必要があります。Kafka ブローカは、aud(オーディエンス) クレームに clientId がないトークンを拒否します。デフォルト値は false です。

checkIssuer

boolean

発行元のチェックを有効または無効にします。デフォルトでは、validIssuerUri によって設定された値を使用して発行元がチェックされます。デフォルト値は true です。

clientAudience

string

認可サーバーのトークンエンドポイントにリクエストを送信するときに使用するオーディエンス。ブローカー間の認証や、clientIdsecret メソッドを用いた PLAIN 上の OAuth 2.0 の設定に使用されます。

clientId

string

Kafka ブローカーは、OAuth クライアント ID を使用して認可サーバーに対して認証し、イントロスペクションエンドポイント URI を使用することができます。

clientScope

string

認可サーバーのトークンエンドポイントにリクエストを送信するときに使用するスコープ。ブローカー間の認証や、clientIdsecret メソッドを用いた PLAIN 上の OAuth 2.0 の設定に使用されます。

clientSecret

GenericSecretSource

OAuth クライアントシークレットが含まれる OpenShift シークレットへのリンク。Kafka ブローカーは、OAuth クライアントシークレットを使用して認可サーバーに対して認証し、イントロスペクションエンドポイント URI を使用することができます。

connectTimeoutSeconds

integer

認可サーバーへの接続時のタイムアウト (秒単位)。設定しない場合は、実際の接続タイムアウトは 60 秒になります。

customClaimCheck

string

JWT トークンに適用される JsonPath フィルタークエリー、または追加のトークン検証のイントロスペクションエンドポイントの応答に適用される JsonPath フィルタークエリー。デフォルトでは設定されません。

disableTlsHostnameVerification

boolean

TLS ホスト名の検証を有効または無効にします。デフォルト値は false です。

enableECDSA

boolean

enableECDSA プロパティーは非推奨となりました。BouncyCastle 暗号プロバイダーをインストールして、ECDSA サポートを有効または無効にします。ECDSA サポートが常に有効になります。BouncyCastle ライブラリーは、Streams for Apache Kafka にパッケージ化されなくなりました。値は無視されます。

enableMetrics

boolean

OAuth メトリックを有効または無効にします。デフォルト値は false です。

enableOauthBearer

boolean

SASL_OAUTHBEARER での OAuth 認証を有効または無効にします。デフォルト値は true です。

enablePlain

boolean

SASL_PLAIN で OAuth 認証を有効または無効にします。このメカニズムが使用される場合、再認証はサポートされません。デフォルト値は false です。

failFast

boolean

起動時に回復可能な実行時エラーが発生する可能性があるため、Kafka ブローカープロセスの終了を有効または無効にします。デフォルト値は true です。

fallbackUserNameClaim

string

userNameClaim によって指定された要求が存在しない場合に、ユーザー ID に使用するフォールバックユーザー名要求。これは、client_credentials 認証によってクライアント ID が別の要求のみに提供される場合に便利です。userNameClaim が設定されている場合のみ有効です。

fallbackUserNamePrefix

string

ユーザー ID を設定するために fallbackUserNameClaim の値と使用される接頭辞。fallbackUserNameClaim が true で、要求の値が存在する場合のみ有効です。ユーザー名とクライアント ID を同じユーザー ID 領域にマッピングすると、名前の競合を防ぐことができ便利です。

groupsClaim

string

認証中にユーザーのグループ抽出に使用される JsonPath クエリー。抽出したグループは、カスタムオーソライザーで使用できます。デフォルトでは、グループは抽出されません。

groupsClaimDelimiter

string

グループの解析時に JSON 配列ではなく単一の文字列の値として抽出された場合に使用される区切り文字。デフォルト値は ',' (コンマ) です。

httpRetries

integer

最初の HTTP リクエストが失敗した場合に試行する最大再試行回数。設定されていない場合、デフォルトでは再試行は行われません。

httpRetryPauseMs

integer

失敗した HTTP リクエストを再試行するまでの一時停止。設定されていない場合、デフォルトでは一時停止せず、ただちにリクエストを繰り返します。

includeAcceptHeader

boolean

認可サーバーへのリクエストに Accept ヘッダーを設定するかどうか。デフォルト値は true です。

introspectionEndpointUri

string

不透明な JWT 以外のトークンの検証に使用できるトークンイントロスペクションエンドポイントの URI。

jwksEndpointUri

string

ローカルの JWT 検証に使用できる JWKS 証明書エンドポイントの URI。

jwksExpirySeconds

integer

JWKS 証明書が有効とみなされる頻度を設定します。期限切れの間隔は、jwksRefreshSeconds で指定される更新間隔よりも 60 秒以上長くする必要があります。デフォルトは 360 秒です。

jwksIgnoreKeyUse

boolean

JWKS エンドポイント応答の key 宣言の 'use' 属性を無視するフラグ。デフォルト値は false です。

jwksMinRefreshPauseSeconds

integer

連続する 2 回の更新の間に適用される最小の一時停止期間。不明な署名鍵が検出されると、更新は即座にスケジュールされますが、この最小一時停止の期間は待機します。デフォルトは 1 秒です。

jwksRefreshSeconds

integer

JWKS 証明書が更新される頻度を設定します。更新間隔は、jwksExpirySeconds で指定される期限切れの間隔よりも 60 秒以上短くする必要があります。デフォルトは 300 秒です。

maxSecondsWithoutReauthentication

integer

再認証せずに認証されたセッションが有効な状態でいられる最大期間 (秒単位)。これにより、Apache Kafka の再認証機能が有効になり、アクセストークンの有効期限が切れるとセッションが期限切れになります。最大期間の前または最大期間の到達時にアクセストークンが期限切れになると、クライアントは再認証する必要があります。そうでないと、サーバーは接続を切断します。デフォルトでは設定されません。アクセストークンが期限切れになっても認証されたセッションは期限切れになりません。このオプションは、SASL_OAUTHBEARER 認証メカニズムにのみ適用されます (enableOauthBearertrue の場合)。

readTimeoutSeconds

integer

認可サーバーへの接続時の読み取りタイムアウト (秒単位)。設定しない場合は、実際の読み取りタイムアウトは 60 秒になります。

tlsTrustedCertificates

CertSecretSource array

OAuth サーバーへの TLS 接続の信頼済み証明書。

tokenEndpointUri

string

クライアントが clientIdsecret で認証する際に、SASL_PLAIN メカニズムで使用する Token Endpoint の URI です。設定されている場合、クライアントは SASL_PLAIN で認証を行うことができます。usernameclientId に、password をクライアントの secret に設定するか、username をアカウントのユーザー名に、password$accessToken: の接頭辞が付いたアクセストークンに設定します。このオプションが設定されていない場合、password は常にアクセストークンとして (接頭辞なしで) 解釈され、username はアカウントのユーザー名として解釈されます (いわゆる 'no-client-credentials' モードです)。

type

string

oauth でなければなりません。

userInfoEndpointUri

string

Introspection Endpoint がユーザー ID に使用できる情報を返さない場合に、ユーザー ID 取得のフォールバックとして使用する User Info Endpoint の URL。

userNameClaim

string

ユーザー ID の取得に使用される JWT 認証トークン、Introspection Endpoint の応答、または User Info Endpoint の応答からの要求の名前。デフォルトは sub です。

validIssuerUri

string

認証に使用されるトークン発行者の URI。

validTokenType

string

Introspection Endpoint によって返される token_type 属性の有効な値。デフォルト値はなく、デフォルトではチェックされません。

第10章 GenericSecretSource スキーマリファレンス

KafkaClientAuthenticationOAuthKafkaListenerAuthenticationCustomKafkaListenerAuthenticationOAuth で使用

プロパティープロパティータイプ説明

key

string

OpenShift シークレットでシークレット値が保存されるキー。

secretName

string

シークレット値が含まれる OpenShift シークレットの名前。

第11章 CertSecretSource スキーマリファレンス

ClientTlsKafkaAuthorizationKeycloakKafkaAuthorizationOpaKafkaClientAuthenticationOAuthKafkaListenerAuthenticationOAuth で使用

プロパティープロパティータイプ説明

certificate

string

Secret のファイル証明書の名前。

secretName

string

証明書が含まれる Secret の名前。

第12章 KafkaListenerAuthenticationCustom スキーマリファレンス

GenericKafkaListener で使用

KafkaListenerAuthenticationCustom スキーマプロパティーの全リスト

カスタム認証を設定するには、type プロパティーを custom に設定します。

カスタム認証では、Kafka でサポートされているあらゆるタイプの認証が使用できます。

カスタム OAuth 認証の設定例

spec:
  kafka:
    config:
      principal.builder.class: SimplePrincipal.class
    listeners:
      - name: oauth-bespoke
        port: 9093
        type: internal
        tls: true
        authentication:
          type: custom
          sasl: true
          listenerConfig:
            oauthbearer.sasl.client.callback.handler.class: client.class
            oauthbearer.sasl.server.callback.handler.class: server.class
            oauthbearer.sasl.login.callback.handler.class: login.class
            oauthbearer.connections.max.reauth.ms: 999999999
            sasl.enabled.mechanisms: oauthbearer
            oauthbearer.sasl.jaas.config: |
              org.apache.kafka.common.security.oauthbearer.OAuthBearerLoginModule required ;
          secrets:
            - name: example

sasl および tls の値を使用して、リスナーにマップするプロトコルを判別するプロトコルマップが生成されます。

  • SASL = True, TLS = True → SASL_SSL
  • SASL = False, TLS = True → SSL
  • SASL = True, TLS = False → SASL_PLAINTEXT
  • SASL = False, TLS = False → PLAINTEXT

12.1. listenerConfig

listenerConfig を使用して指定されたリスナー設定は、listener.name.<listener_name>-<port> の接頭辞が付けられます。たとえば、sasl.enabled.mechanismslistener.name.<listener_name>-<port>.sasl.enabled.mechanisms になります。

12.2. secrets

シークレットは、Kafka ブローカーノードのコンテナーの/opt/kafka/custom-authn-secrets/custom-listener-<listener_name>-<port>/<secret_name> にマウントされます。

たとえば、設定例ではマウントされたシークレット (example) は /opt/kafka/custom-authn-secrets/custom-listener-oauth-bespoke-9093/example にあります。

12.3. プリンシパルビルダー

Kafka クラスター設定でカスタムプリンシパルビルダーを設定できます。ただし、プリンシパルビルダーは以下の要件に依存します。

  • 指定されたプリンシパルビルダークラスがイメージに存在している。独自に構築する に、すでに存在しているかどうかを確認します。必要なクラスを使用して、Streams for Apache Kafka イメージを再ビルドする必要があります。
  • 他のリスナーが oauth タイプ認証をしていない。これは、OAuth リスナーが独自のプリンシパルビルダーを Kafka 設定に追加するためです。
  • 指定したプリンシパルビルダーが、Streams for Apache Kafka と互換性がある。

カスタムプリンシパルビルダーは、認証用のピア証明書をサポートしている必要があります。Streams for Apache Kafka は、Kafka クラスターの管理にピア証明書を使用するためです。

注記

Kafka のデフォルトのプリンシパルビルダークラス は、ピア証明書の名前を基にしたプリンシパルのビルドをサポートします。カスタムプリンシパルビルダーは、SSL ピア証明書の名前を使用して user タイプのプリンシパルを指定する必要があります。

次の例は、Streams for Apache Kafka の OAuth 要件を満たすカスタムプリンシパルビルダーを示しています。

カスタム OAuth 設定のプリンシパルビルダーの例

public final class CustomKafkaPrincipalBuilder implements KafkaPrincipalBuilder {

    public KafkaPrincipalBuilder() {}

    @Override
    public KafkaPrincipal build(AuthenticationContext context) {
        if (context instanceof SslAuthenticationContext) {
            SSLSession sslSession = ((SslAuthenticationContext) context).session();
            try {
                return new KafkaPrincipal(
                    KafkaPrincipal.USER_TYPE, sslSession.getPeerPrincipal().getName());
            } catch (SSLPeerUnverifiedException e) {
                throw new IllegalArgumentException("Cannot use an unverified peer for authentication", e);
            }
        }

        // Create your own KafkaPrincipal here
        ...
    }
}

12.4. KafkaListenerAuthenticationCustom スキーマプロパティー

type プロパティーは KafkaListenerAuthenticationCustom タイプと KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth とを区別して使用するための識別子です。KafkaListenerAuthenticationCustom タイプには custom の値が必要です。

プロパティープロパティータイプ説明

listenerConfig

map

特定のリスナーに使用される設定。すべての値の前に listener.name.<listener_name> を付けます。

sasl

boolean

このリスナーで SASL を有効または無効にします。

secrets

GenericSecretSource アレイ

/opt/kafka/custom-authn-secrets/custom-listener-<listener_name>-<port>/<secret_name> にマウントされるシークレット。

type

string

custom である必要があります。

第13章 GenericKafkaListenerConfiguration スキーマリファレンス

GenericKafkaListener で使用

GenericKafkaListenerConfiguration スキーマプロパティーの全リスト

Kafka リスナーの設定。

13.1. brokerCertChainAndKey

brokerCertChainAndKey プロパティーは、TLS 暗号化が有効になっているリスナーでのみ使用されます。プロパティーを使用して、独自の Kafka リスナー証明書を提供できます。

TLS 暗号化が有効な loadbalancer 外部リスナーの設定例

listeners:
  #...
  - name: external3
    port: 9094
    type: loadbalancer
    tls: true
    authentication:
      type: tls
    configuration:
      brokerCertChainAndKey:
        secretName: my-secret
        certificate: my-listener-certificate.crt
        key: my-listener-key.key
# ...

brokerCertChainAndKey シークレット内の証明書またはキーが更新されると、Operator は次回の調整で自動的に更新を検出し、Kafka ブローカーのローリング更新をトリガーして証明書をリロードします。

13.2. externalTrafficPolicy

externalTrafficPolicy プロパティーは、loadbalancernodeport のリスナーで使用されます。OpenShift の外で Kafka を公開する場合は、Local または Cluster を選択できます。Local は他のノードへのホップを避け、クライアントの IP を保持しますが、Cluster はそのどちらでもありません。デフォルトは Cluster です。

13.3. loadBalancerSourceRanges

loadBalancerSourceRanges プロパティーは、loadbalancer でのみ使用されます。OpenShift 外部で Kafka を公開する場合、ラベルやアノテーションの他にソースの範囲を使用して、サービスの作成方法をカスタマイズします。

ロードバランサーリスナー向けに設定されたソース範囲の例

listeners:
  #...
  - name: external3
    port: 9094
    type: loadbalancer
    tls: false
    configuration:
      externalTrafficPolicy: Local
      loadBalancerSourceRanges:
        - 10.0.0.0/8
        - 88.208.76.87/32
      # ...
# ...

13.4. class

class プロパティーは、ingress リスナーでのみ使用されます。Ingress クラスの設定は class プロパティーで行います。

Ingress クラスの nginx-internal を使用した ingress タイプの外部リスナーの例

listeners:
  #...
  - name: external2
    port: 9094
    type: ingress
    tls: true
    configuration:
      class: nginx-internal
    # ...
# ...

13.5. preferredNodePortAddressType

preferredNodePortAddressType プロパティーは、nodeport リスナーでのみ使用されます。

リスナーの設定で preferredNodePortAddressType プロパティーを使用して、ノードアドレスとしてチェックされる最初のアドレスタイプを指定します。たとえば、デプロイメントに DNS サポートがない場合や、内部 DNS または IP アドレスを介してブローカーを内部でのみ公開する場合、このプロパティーは便利です。該当タイプのアドレスが見つかった場合はそのアドレスが使用されます。優先アドレスタイプが見つからない場合、Streams for Apache Kafka は標準の優先順位に従ってタイプを処理します。

  1. ExternalDNS
  2. ExternalIP
  3. Hostname
  4. InternalDNS
  5. InternalIP

優先ノードポートアドレスタイプで設定された外部リスナーの例

listeners:
  #...
  - name: external4
    port: 9094
    type: nodeport
    tls: false
    configuration:
      preferredNodePortAddressType: InternalDNS
      # ...
# ...

13.6. useServiceDnsDomain

useServiceDnsDomain プロパティーは、internal および cluster-ip リスナーでのみ使用されます。クラスターサービスの接尾辞 (通常は .cluster.local) を含む完全修飾 DNS 名を使用するかどうかを定義します。useServiceDnsDomainfalse に設定すると、アドバタイズされるアドレスはサービス接尾辞なしで生成されます。(例:my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc)useServiceDnsDomaintrue に設定すると、アドバタイズされたアドレスはサービスの接尾辞で生成されます。(例:my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc.cluster.local)デフォルトは false です。

サービス DNS ドメインを使用するよう設定された内部リスナーの例

listeners:
  #...
  - name: plain
    port: 9092
    type: internal
    tls: false
    configuration:
      useServiceDnsDomain: true
      # ...
# ...

OpenShift クラスターが .cluster.local とは異なるサービス接尾辞を使用している場合は、Cluster Operator の設定で KUBERNETES_SERVICE_DNS_DOMAIN 環境変数を使用して接尾辞を設定することができます。

13.7. GenericKafkaListenerConfiguration スキーマプロパティー

プロパティープロパティータイプ説明

brokerCertChainAndKey

CertAndKeySecretSource

このリスナーに使用される証明書とプライベートキーのペアを保持する Secret への参照。証明書には、任意でチェーン全体を含めることができます。このフィールドは、TLS による暗号化が有効なリスナーでのみ使用できます。

externalTrafficPolicy

string ([Local、Cluster] のいずれか)

サービスによって外部トラフィックがローカルノードのエンドポイントまたはクラスター全体のエンドポイントにルーティングされるかどうかを指定します。Cluster を指定すると、別のノードへの 2 回目のホップが発生し、クライアントソースの IP が特定しにくくなる可能性があります。Local を指定すると、LoadBalancer および Nodeport タイプのサービスに対して 2 回目のホップが発生しないようにし、クライアントソースの IP を維持します (インフラストラクチャーでサポートされる場合)。指定のない場合、OpenShift は Cluster をデフォルトとして使用します。このフィールドは、loadbalancer または nodeport タイプリスナーとのみ使用できます。

loadBalancerSourceRanges

string array

クライアントがロードバランサータイプのリスナーに接続できる CIDR 形式による範囲 (例: 10.0.0.0/8130.211.204.1/32) のリスト。プラットフォームでサポートされる場合、ロードバランサー経由のトラフィックは指定された CIDR 範囲に制限されます。このフィールドは、ロードバランサータイプのサービスのみに適用され、クラウドプロバイダーがこの機能をサポートしない場合は無視されます。このフィールドは、loadbalancer のリスナーでのみ使用できます。

bootstrap

GenericKafkaListenerConfigurationBootstrap

ブートストラップの設定。

brokers

GenericKafkaListenerConfigurationBroker アレイ

ブローカーごとの設定。

ipFamilyPolicy

string ([RequireDualStack、SingleStack、PreferDualStack] のいずれか)

サービスによって使用される IP Family Policy を指定します。利用可能なオプションは、SingleStackPreferDualStackRequireDualStack です。SingleStack は単一の IP ファミリー用です。PreferDualStack は、デュアルスタック設定のクラスターでは 2 つの IP ファミリーを、シングルスタック設定のクラスターでは 1 つの IP ファミリーを対象としています。RequireDualStack は、デュアルスタック設定のクラスターに 2 つの IP ファミリーがないと失敗します。指定されていない場合、OpenShift はサービスタイプに基づいてデフォルト値を選択します。

ipFamilies

string ([IPv6, IPv4] の 1 つ以上) array

サービスによって使用される IP Families を指定します。利用可能なオプションは、IPv4IPv6 です。指定されていない場合、OpenShift は ipFamilyPolicy の設定に基づいてデフォルト値を選択します。

createBootstrapService

boolean

ブートストラップサービスを作成するかどうか。ブートストラップサービスはデフォルトで作成されます (指定されない場合)。このフィールドは、loadBalancer タイプリスナーと併用できます。

class

string

使用するコントローラーを定義する Ingress および LoadBalancer の特定のクラスを設定します。このフィールドは、ingress および loadbalancer タイプのリスナーでのみ使用できます。指定しない場合、デフォルトのコントローラーが使用されます。Ingress リスナーの場合、Ingress リソースで ingressClassName プロパティーを設定します。loadbalancer リスナーの場合は、Service リソースで loadBalancerClass プロパティーを設定します。

finalizers

string array

このリスナーに作成された LoadBalancer タイプの Services に設定されるファイナライザーのリストです。プラットフォームでサポートされている場合は、ファイナライザー service.kubernetes.io/load-balancer-cleanup を使用して、外部ロードバランサーがサービスと一緒に削除されるようにします。詳細は、https://kubernetes.io/docs/tasks/access-application-cluster/create-external-load-balancer/#garbage-collecting-load-balancers を参照してください。このフィールドは、loadbalancer タイプのリスナーでのみ使用できます。

maxConnectionCreationRate

integer

このリスナーでいつでも許可される最大接続作成率。制限に達すると、新しい接続はスロットリングされます。

maxConnections

integer

ブローカーのこのリスナーでいつでも許可される最大接続数。制限に達すると、新しい接続はブロックされます。

preferredNodePortAddressType

string ([ExternalDNS、ExternalIP、Hostname、InternalIP、InternalDNS] のいずれか)

ノードアドレスとして使用するアドレスタイプを定義します。使用できるタイプ: ExternalDNSExternalIPInternalDNSInternalIPHostnameデフォルトでは、アドレスは以下の順序で使用されます (最初に見つかったアドレスが使用されます):

  • ExternalDNS
  • ExternalIP
  • InternalDNS
  • InternalIP
  • Hostname

このフィールドは、最初にチェックされる優先アドレスタイプの選択に使用されます。このアドレスタイプのアドレスが見つからない場合、他のタイプがデフォルトの順序でチェックされます。このフィールドは、nodeport タイプのリスナーでのみ使用できます。

useServiceDnsDomain

boolean

OpenShift サービス DNS ドメインを使用するべきかどうかを設定します。true に設定すると、生成されるアドレスにはサービスの DNS ドメインの接尾辞が含まれます (デフォルトでは .cluster.local、環境変数 KUBERNETES_SERVICE_DNS_DOMAIN で設定可能です)。デフォルトは false です。このフィールドは、internal および cluster-ip タイプのリスナーでのみ使用できます。

第14章 CertAndKeySecretSource スキーマリファレンス

GenericKafkaListenerConfigurationKafkaClientAuthenticationTls で使用

プロパティープロパティータイプ説明

certificate

string

Secret のファイル証明書の名前。

key

string

Secret の秘密鍵の名前。

secretName

string

証明書が含まれる Secret の名前。

第15章 GenericKafkaListenerConfigurationBootstrap スキーマリファレンス

GenericKafkaListenerConfiguration で使用

GenericKafkaListenerConfigurationBootstrap スキーマプロパティーの全リスト

nodePorthostloadBalancerIPannotations プロパティーに相当するブローカーサービスは、GenericKafkaListenerConfigurationBroker schema で設定されます。

15.1. alternativeNames

ブートストラップサービスの代替名を指定できます。名前はブローカー証明書に追加され、TLS ホスト名の検証に使用できます。alternativeNames プロパティーは、すべてのタイプのリスナーに適用されます。

ブートストラップアドレスを追加設定した外部 route リスナーの例です。

listeners:
  #...
  - name: external1
    port: 9094
    type: route
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        alternativeNames:
          - example.hostname1
          - example.hostname2
# ...

15.2. host

host プロパティーは、route リスナーと ingress リスナーで使用され、ブートストラップサービスとパーブロカーサービスで使用されるホスト名を指定します。

Ingress コントローラーが自動的にホスト名を割り当てることはないため、ingress リスナーの設定には host のプロパティー値が必須となります。確実にホスト名が Ingress エンドポイントに解決されるようにしてください。Streams for Apache Kafka では、要求されたホストが利用可能であり、Ingress エンドポイントに適切にルーティングされているかどうかの検証は実行されません。

Ingress リスナーのホスト設定例

listeners:
  #...
  - name: external2
    port: 9094
    type: ingress
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        host: bootstrap.myingress.com
      brokers:
      - broker: 0
        host: broker-0.myingress.com
      - broker: 1
        host: broker-1.myingress.com
      - broker: 2
        host: broker-2.myingress.com
# ...

デフォルトでは、route リスナーのホストは OpenShift によって自動的に割り当てられます。ただし、ホストを指定して、割り当てられたルートをオーバーライドすることができます。

Streams for Apache Kafka では、要求されたホストが利用可能かどうかの検証は実行されません。ホストが使用可能であることを確認する必要があります。

route リスナーのホスト設定例

# ...
listeners:
  #...
  - name: external1
    port: 9094
    type: route
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        host: bootstrap.myrouter.com
      brokers:
      - broker: 0
        host: broker-0.myrouter.com
      - broker: 1
        host: broker-1.myrouter.com
      - broker: 2
        host: broker-2.myrouter.com
# ...

15.3. nodePort

デフォルトでは、ブートストラップおよびブローカーサービスに使用されるポート番号は OpenShift によって自動的に割り当てられます。nodeport リスナーに割り当てられたノードポートを上書きするには、要求されたポート番号を指定します。

Streams for Apache Kafka では、要求されたポートに対する検証は実行されません。ポートが使用できることを確認する必要があります。

ノードポートのオーバーライドが設定された外部リスナーの例

# ...
listeners:
  #...
  - name: external4
    port: 9094
    type: nodeport
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        nodePort: 32100
      brokers:
      - broker: 0
        nodePort: 32000
      - broker: 1
        nodePort: 32001
      - broker: 2
        nodePort: 32002
# ...

15.4. loadBalancerIP

ロードバランサーの作成時に特定の IP アドレスを要求するには、loadBalancerIP プロパティーを使用します。特定の IP アドレスでロードバランサーを使用する必要がある場合は、このプロパティーを使用します。クラウドプロバイダーがこの機能に対応していない場合、loadBalancerIP フィールドは無視されます。

特定のロードバランサー IP アドレスリクエストのある loadbalancer タイプの外部リスナーの例

# ...
listeners:
  #...
  - name: external3
    port: 9094
    type: loadbalancer
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        loadBalancerIP: 172.29.3.10
      brokers:
      - broker: 0
        loadBalancerIP: 172.29.3.1
      - broker: 1
        loadBalancerIP: 172.29.3.2
      - broker: 2
        loadBalancerIP: 172.29.3.3
# ...

15.5. annotations

annotations を使用して、リスナーに関連する OpenShift リソースにアノテーションを追加します。これらのアノテーションを使用すると、自動的に DNS 名をロードバランサーサービスに割り当てる 外部 DNS などの DNS ツールをインストルメント化できます。

annotations を使用した loadbalancer 型の外部リスナーの例

# ...
listeners:
  #...
  - name: external3
    port: 9094
    type: loadbalancer
    tls: true
    authentication:
      type: tls
    configuration:
      bootstrap:
        annotations:
          external-dns.alpha.kubernetes.io/hostname: kafka-bootstrap.mydomain.com.
          external-dns.alpha.kubernetes.io/ttl: "60"
      brokers:
      - broker: 0
        annotations:
          external-dns.alpha.kubernetes.io/hostname: kafka-broker-0.mydomain.com.
          external-dns.alpha.kubernetes.io/ttl: "60"
      - broker: 1
        annotations:
          external-dns.alpha.kubernetes.io/hostname: kafka-broker-1.mydomain.com.
          external-dns.alpha.kubernetes.io/ttl: "60"
      - broker: 2
        annotations:
          external-dns.alpha.kubernetes.io/hostname: kafka-broker-2.mydomain.com.
          external-dns.alpha.kubernetes.io/ttl: "60"
# ...

15.6. GenericKafkaListenerConfigurationBootstrap スキーマのプロパティー

プロパティープロパティータイプ説明

alternativeNames

string array

ブートストラップサービスの追加の代替名。代替名は、TLS 証明書のサブジェクト代替名のリストに追加されます。

host

string

ブートストラップホスト。このフィールドは、ホスト名を指定するために Ingress リソースまたは Route リソースで使用されます。このフィールドは、route(オプション) または ingress(必須) タイプのリスナーでのみ使用できます。

nodePort

integer

ブートストラップサービスのノードポート。このフィールドは、nodeport タイプリスナーでのみ使用できます。

loadBalancerIP

string

ロードバランサーは、このフィールドに指定された IP アドレスで要求されます。この機能は、ロードバランサーの作成時に、基礎となるクラウドプロバイダーが loadBalancerIP の指定をサポートするかどうかによって異なります。このフィールドは、クラウドプロバイダーがこの機能をサポートしていない場合は無視されます。このフィールドは、loadbalancer タイプのリスナーでのみ使用できます。

annotations

map

IngressRouteService のいずれかのリソースに追加されるアノテーション。このフィールドを使用して、外部 DNS などの DNS プロバイダーを設定できます。このフィールドは、loadbalancernodeportrouteingress タイプのリスナーでのみ使用できます。

labels

map

IngressRouteService のいずれかのリソースに追加されるラベル。このフィールドは、loadbalancernodeportrouteingress タイプのリスナーでのみ使用できます。

第16章 GenericKafkaListenerConfigurationBroker スキーマリファレンス

GenericKafkaListenerConfiguration で使用

GenericKafkaListenerConfigurationBroker スキーマプロパティーの全リスト

ブートストラップサービスのオーバーライドを設定するGenericKafkaListenerConfigurationBootstrap schemaでは、nodePorthostloadBalancerIPannotations プロパティーの設定例を見ることができます。

ブローカーのアドバタイズされたアドレス

デフォルトでは、Streams for Apache Kafka は、Kafka クラスターがクライアントにアドバタイズするホスト名とポートを自動的に決定しようとします。これはあらゆる状況に対応できるわけではありません。Streams for Apache Kafka が実行されているインフラストラクチャーで、Kafka にアクセスできる適切なホスト名またはポートが提供されない可能性があるためです。

ブローカー ID を指定し、リスナーの configuration プロパティーでアドバタイズされたホスト名とポートをカスタマイズすることができます。その後、Streams for Apache Kafka は、アドバタイズされたアドレスを Kafka ブローカーに自動的に設定し、それをブローカー証明書に追加して、TLS ホスト名検証に使用できるようにします。アドバタイズされたホストおよびポートのオーバーライドは、すべてのタイプのリスナーで利用できます。

アドバタイズされたアドレスのオーバーライドを設定した外部 route リスナーの例

listeners:
  #...
  - name: external1
    port: 9094
    type: route
    tls: true
    authentication:
      type: tls
    configuration:
      brokers:
      - broker: 0
        advertisedHost: example.hostname.0
        advertisedPort: 12340
      - broker: 1
        advertisedHost: example.hostname.1
        advertisedPort: 12341
      - broker: 2
        advertisedHost: example.hostname.2
        advertisedPort: 12342
# ...

16.1. GenericKafkaListenerConfigurationBroker スキーマプロパティー

プロパティープロパティータイプ説明

broker

integer

Kafka ブローカーの ID (ブローカー識別子)。ブローカー ID は 0 から始まり、ブローカーレプリカの数に対応します。

advertisedHost

string

ブローカーの advertised.listeners で使用されるホスト名。

advertisedPort

integer

ブローカーの advertised.listeners で使用されるポート番号。

host

string

ブローカーホスト。このフィールドは、ホスト名を指定するために Ingress リソースまたは Route リソースで使用されます。このフィールドは、route(オプション) または ingress(必須) タイプのリスナーでのみ使用できます。

nodePort

integer

ブローカーごとのサービスのノードポート。このフィールドは、nodeport タイプリスナーでのみ使用できます。

loadBalancerIP

string

ロードバランサーは、このフィールドに指定された IP アドレスで要求されます。この機能は、ロードバランサーの作成時に、基礎となるクラウドプロバイダーが loadBalancerIP の指定をサポートするかどうかによって異なります。このフィールドは、クラウドプロバイダーがこの機能をサポートしていない場合は無視されます。このフィールドは、loadbalancer タイプのリスナーでのみ使用できます。

annotations

map

Ingress または Service リソースに追加されるアノテーション。このフィールドを使用して、外部 DNS などの DNS プロバイダーを設定できます。このフィールドは、loadbalancernodeportingress タイプのリスナーでのみ使用できます。

labels

map

IngressRouteService のいずれかのリソースに追加されるラベル。このフィールドは、loadbalancernodeportrouteingress タイプのリスナーでのみ使用できます。

第17章 EphemeralStorage スキーマリファレンス

使用場所: JbodStorageKafkaClusterSpecKafkaNodePoolSpecZookeeperClusterSpec

type プロパティーは、EphemeralStorage タイプの使用を、PersistentClaimStorageから区別する識別子です。EphemeralStorage タイプには ephemeral の値が必要です。

プロパティープロパティータイプ説明

id

integer

ストレージ ID 番号。これは、'jbod' タイプのストレージで定義されるストレージボリュームのみで必須です。

sizeLimit

string

type=ephemeral の場合、この EmptyDir ボリュームに必要なローカルストレージの合計容量を定義します (例: 1Gi)。

type

string

ephemeral でなければなりません。

第18章 PersistentClaimStorage スキーマリファレンス

使用場所: JbodStorageKafkaClusterSpecKafkaNodePoolSpecZookeeperClusterSpec

type プロパティーは、PersistentClaimStorage タイプの使用を、EphemeralStorageから区別する識別子です。PersistentClaimStorage タイプには persistent-claim の値が必要です。

プロパティープロパティータイプ説明

type

string

persistent-claim でなければなりません。

size

string

type=persistent-claim の場合、永続ボリューム要求のサイズ (100 Gi など) を定義します。type=persistent-claim の場合は必須です。

selector

map

使用する特定の永続ボリュームを指定します。このようなボリュームを選択するラベルを表す key:value ペアが含まれます。

deleteClaim

boolean

クラスターのアンデプロイ時に永続ボリューム要求を削除する必要があるかどうかを指定します。

class

string

動的ボリュームの割り当てに使用するストレージクラス。

id

integer

ストレージ ID 番号。これは、'jbod' タイプのストレージで定義されるストレージボリュームのみで必須です。

overrides

PersistentClaimStorageOverride array

個々のブローカーを上書きします。overrides フィールドでは、異なるブローカーに異なる設定を指定できます。

第19章 PersistentClaimStorageOverride スキーマリファレンス

PersistentClaimStorage で使用

プロパティープロパティータイプ説明

class

string

このブローカーの動的ボリュームの割り当てに使用するストレージクラス。

broker

integer

Kafka ブローカーの ID (ブローカー ID)。

第20章 JbodStorage スキーマリファレンス

使用場所: KafkaClusterSpecKafkaNodePoolSpec

type プロパティーは、JbodStorage タイプの使用を EphemeralStoragePersistentClaimStorage から区別する識別子です。JbodStorage タイプには jbod の値が必要です。

プロパティープロパティータイプ説明

type

string

jbod でなければなりません。

volumes

EphemeralStoragePersistentClaimStorage array

JBOD ディスクアレイを表すストレージオブジェクトとしてのボリュームのリスト。

第21章 KafkaAuthorizationSimple スキーマリファレンス

KafkaClusterSpec で使用

KafkaAuthorizationSimple スキーマプロパティーの全リスト

Streams for Apache Kafka は、簡易認可に、Kafka の組み込み認可プラグイン (KRaft モードの場合は StandardAuthorizer、ZooKeeper ベースのクラスター管理の場合は AclAuthorizer) を使用します。ACL を使用すると、ユーザーがアクセスできるリソースを細かく定義できます。

Kafka のカスタムリソースに簡易認可を使用するように設定します。authorization セクションの type プロパティーに simple という値を設定し、スーパーユーザーのリストを設定します。

アクセスルールは、ACLRule schema referenceで説明されているように、KafkaUser に対して設定されます。

21.1. superUsers

スーパーユーザーとして扱われるユーザープリンシパルのリスト。このリストのユーザープリンシパルは、ACL ルールをクエリーしなくても常に許可されます。

簡易認可の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
  namespace: myproject
spec:
  kafka:
    # ...
    authorization:
      type: simple
      superUsers:
        - CN=client_1
        - user_2
        - CN=client_3
    # ...

注記

Kafka.spec.kafkaconfig プロパティーにある super.user 設定オプションは無視されます。この代わりに、authorization プロパティーでスーパーユーザーを指定します。詳細は Kafka ブローカーの設定 を参照してください。

21.2. KafkaAuthorizationSimple スキーマのプロパティー

type プロパティーは、KafkaAuthorizationSimple タイプの使用をKafkaAuthorizationOpaおよびKafkaAuthorizationKeycloakKafkaAuthorizationCustomと区別するための識別子です。KafkaAuthorizationSimple タイプには simple の値が必要です。

プロパティープロパティータイプ説明

type

string

simple でなければなりません。

superUsers

string array

スーパーユーザーのリスト。無制限のアクセス権を取得する必要のあるユーザープリンシパルのリストが含まれなければなりません。

第22章 KafkaAuthorizationOpa スキーマリファレンス

KafkaClusterSpec で使用

KafkaAuthorizationOpa スキーマプロパティーの全リスト

Open Policy Agentの認可を使用するには、authorization セクションの type プロパティーに opa という値を設定し、必要に応じて OPA のプロパティーを設定します。Streams for Apache Kafka は、Kafka 認可用の Open Policy Agent プラグインをオーソライザーとして使用します。入力データのフォーマットやポリシーの例については、Open Policy Agent plugin for Kafka authorization を参照してください。

22.1. url

Open Policy Agent サーバーへの接続に使用される URL。URL には、オーソライザーによってクエリーされるポリシーが含まれる必要があります。必須。

22.2. allowOnError

一時的に利用できない場合など、オーソライザーによる Open Policy Agent へのクエリーが失敗した場合に、デフォルトで Kafka クライアントを許可または拒否するかどうかを定義します。デフォルトは false で、すべてのアクションが拒否されます。

22.3. initialCacheCapacity

すべてのリクエストに対して Open Policy Agent をクエリーしないようにするために、オーソライザーによって使用されるローカルキャッシュの初期容量。デフォルトは 5000 です。

22.4. maximumCacheSize

すべてのリクエストに対して Open Policy Agent をクエリーしないようにするために、オーソライザーによって使用されるローカルキャッシュの最大容量。デフォルトは 50000 です。

22.5. expireAfterMs

すべてのリクエストに対して Open Policy Agent をクエリーしないようにするために、ローカルキャッシュに保持されるレコードの有効期限。キャッシュされた認可の決定が Open Policy Agent サーバーから再ロードされる頻度を定義します。ミリ秒単位です。デフォルトは 3600000 ミリ秒 (1 時間) です。

22.6. tlsTrustedCertificates

OPA サーバーへの TLS 接続用の信頼された証明書。

22.7. superUsers

スーパーユーザーとして扱われるユーザープリンシパルのリスト。このリストのユーザープリンシパルは、Open Policy Agent ポリシーをクエリーしなくても常に許可されます。

Open Policy Agent オーソライザーの設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
  namespace: myproject
spec:
  kafka:
    # ...
    authorization:
      type: opa
      url: http://opa:8181/v1/data/kafka/allow
      allowOnError: false
      initialCacheCapacity: 1000
      maximumCacheSize: 10000
      expireAfterMs: 60000
      superUsers:
        - CN=fred
        - sam
        - CN=edward
    # ...

22.8. KafkaAuthorizationOpa スキーマのプロパティー

type プロパティーは、KafkaAuthorizationOpa タイプの使用を KafkaAuthorizationSimpleKafkaAuthorizationKeycloakKafkaAuthorizationCustomと区別するための識別子です。KafkaAuthorizationOpa タイプには opa の値が必要です。

プロパティープロパティータイプ説明

type

string

opa でなければなりません。

url

string

Open Policy Agent サーバーへの接続に使用される URL。URL には、オーソライザーによってクエリーされるポリシーが含まれる必要があります。このオプションは必須です。

allowOnError

boolean

一時的に利用できない場合など、オーソライザーによる Open Policy Agent へのクエリーが失敗した場合に、デフォルトで Kafka クライアントを許可または拒否するかどうかを定義します。デフォルトは false で、すべてのアクションが拒否されます。

initialCacheCapacity

integer

すべてのリクエストに対して Open Policy Agent をクエリーしないようにするために、オーソライザーによって使用されるローカルキャッシュの初期容量。デフォルトは 5000 です。

maximumCacheSize

integer

すべてのリクエストに対して Open Policy Agent をクエリーしないようにするために、オーソライザーによって使用されるローカルキャッシュの最大容量。デフォルトは 50000 です。

expireAfterMs

integer

すべてのリクエストに対して Open Policy Agent をクエリーしないようにするために、ローカルキャッシュに保持されるレコードの有効期限。キャッシュされた認可の決定が Open Policy Agent サーバーから再ロードされる頻度を定義します。ミリ秒単位です。デフォルトは 3600000 です。

tlsTrustedCertificates

CertSecretSource array

OPA サーバーへの TLS 接続用の信頼された証明書。

superUsers

string array

スーパーユーザーのリスト。これは、無制限のアクセス権限を持つユーザープリンシパルのリストです。

enableMetrics

boolean

Open Policy Agent オーソライザープラグインでメトリックを指定するかどうかを定義します。デフォルトは false です。

第23章 KafkaAuthorizationKeycloak スキーマリファレンス

KafkaClusterSpec で使用

type プロパティーは、KafkaAuthorizationKeycloak タイプの使用をKafkaAuthorizationSimpleKafkaAuthorizationOpaKafkaAuthorizationCustomと区別するための識別子です。KafkaAuthorizationKeycloak タイプには keycloak の値が必要です。

プロパティープロパティータイプ説明

type

string

keycloak でなければなりません。

clientId

string

Kafka クライアントが OAuth サーバーに対する認証に使用し、トークンエンドポイント URI を使用することができる OAuth クライアント ID。

tokenEndpointUri

string

認可サーバートークンエンドポイント URI。

tlsTrustedCertificates

CertSecretSource array

OAuth サーバーへの TLS 接続の信頼済み証明書。

disableTlsHostnameVerification

boolean

TLS ホスト名の検証を有効または無効にします。デフォルト値は false です。

delegateToKafkaAcls

boolean

認可の決定が Red Hat Single Sign-On の Authorization Services サービスポリシーによって拒否された場合に、認可の決定を 'Simple' オーソライザーに委譲するかどうか。デフォルト値は false です。

grantsRefreshPeriodSeconds

integer

連続する付与更新実行の間隔 (秒単位)。デフォルト値は 60 です。

grantsRefreshPoolSize

integer

アクティブなセッションの付与の更新に使用するスレッドの数。スレッドが多いほど並列処理多くなるため、ジョブがより早く完了します。ただし、使用するスレッドが多いほど、認可サーバーの負荷が大きくなります。デフォルト値は 5 です。

grantsGcPeriodSeconds

integer

キャッシュから古い許可を削除するジョブの連続実行間の時間 (秒単位)。デフォルト値は 300 です。

grantsAlwaysLatest

boolean

新しいセッションに対して最新の許可を取得するかどうかを制御します。有効にすると、許可が Red Hat Single Sign-On から取得され、ユーザーのためにキャッシュされます。デフォルト値は false です。

superUsers

string array

スーパーユーザーのリスト。無制限のアクセス権を取得する必要のあるユーザープリンシパルのリストが含まれなければなりません。

connectTimeoutSeconds

integer

認可サーバーへの接続時のタイムアウト (秒単位)。設定しない場合は、実際の接続タイムアウトは 60 秒になります。

readTimeoutSeconds

integer

認可サーバーへの接続時の読み取りタイムアウト (秒単位)。設定しない場合は、実際の読み取りタイムアウトは 60 秒になります。

httpRetries

integer

最初の HTTP リクエストが失敗した場合に試行する最大再試行回数。設定されていない場合、デフォルトでは再試行は行われません。

enableMetrics

boolean

OAuth メトリックを有効または無効にします。デフォルト値は false です。

includeAcceptHeader

boolean

認可サーバーへのリクエストに Accept ヘッダーを設定するかどうか。デフォルト値は true です。

grantsMaxIdleTimeSeconds

integer

アイドル許可をキャッシュからエビクトるようになるまでの時間 (秒単位)。デフォルト値は 300 です。

第24章 KafkaAuthorizationCustom スキーマリファレンス

KafkaClusterSpec で使用

KafkaAuthorizationCustom スキーマプロパティーの全リスト

Streams for Apache Kafka でカスタムの認可を使用するには、独自の Authorizer プラグインを設定してアクセス制御リスト (ACL) を定義します。

ACL を使用すると、ユーザーがアクセスできるリソースを細かく定義できます。

Kafka のカスタムリソースにカスタム認可を使用するように設定します。authorization セクションの type プロパティーを値 custom に設定し、スーパーユーザーのリストを設定します。

重要

カスタムのオーソライザーは、org.apache.kafka.server.authorizer.Authorizer インターフェイスを実装し、super.users 設定プロパティーを使用してスーパーユーザーの設定をサポートする必要があります。

24.1. authorizerClass

(必須) カスタム ACL をサポートするための org.apache.kafka.server.authorizer.Authorizer インターフェイスを実装した Java クラスです。

24.2. superUsers

スーパーユーザーとして扱われるユーザープリンシパルのリスト。このリストのユーザープリンシパルは、ACL ルールをクエリーしなくても常に許可されます。

注記

Kafka.spec.kafkaconfig プロパティーにある super.user 設定オプションは無視されます。この代わりに、authorization プロパティーでスーパーユーザーを指定します。詳細は Kafka ブローカーの設定 を参照してください。

24.3. その他の設定オプション

Kafka.spec.kafka.config を使用して、カスタムオーソライザーを初期化するための設定をさらに追加できます。

Kafka.spec でのカスタム認可設定の例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
  namespace: myproject
spec:
  kafka:
    # ...
    authorization:
      type: custom
      authorizerClass: io.mycompany.CustomAuthorizer
      superUsers:
        - CN=client_1
        - user_2
        - CN=client_3
    # ...
    config:
      authorization.custom.property1=value1
      authorization.custom.property2=value2
    # ...

24.4. コンテナーイメージへのカスタムオーソライザー JAR ファイルの追加

Kafka カスタムリソース設定に加えて、カスタムオーソライザークラスとその依存関係を含む JAR ファイルが、Kafka ブローカーのクラスパスで使用可能である必要があります。

このファイルは、ソースコードから Streams for Apache Kafka をビルドすることで追加できます。Streams for Apache Kafka のビルドプロセスは、docker-images/artifacts/kafka-thirdparty-libs ディレクトリー配下の pom.xml ファイルに依存関係としてカスタムのサードパーティーライブラリーを追加することで、生成された Kafka ブローカーコンテナーイメージにカスタムのサードパーティーライブラリーを追加するメカニズムを備えています。ディレクトリーには、Kafka のバージョンごとに異なるフォルダーが含まれています。適切なフォルダーを選択します。pom.xml ファイルを変更する前に、サードパーティーライブラリーが Maven リポジトリーで使用可能である必要があります。また、その Maven リポジトリーが、Streams for Apache Kafka のビルドプロセスからアクセス可能である必要があります。

あるいは、既存の Streams for Apache Kafka コンテナーイメージに JAR を追加することもできます。

FROM registry.redhat.io/amq-streams/kafka-37-rhel9:2.7.0
USER root:root
COPY ./my-authorizer/ /opt/kafka/libs/
USER 1001

24.5. OAuth 認証でカスタムオーソライザーの使用

groupsClaim 設定で oauth 認証を使用して JWT トークンからユーザーグループ情報を抽出する場合、グループ情報はカスタム認証呼び出しで使用できます。次のように、カスタム認証呼び出し中に OAuthKafkaPrincipal オブジェクトを通じてグループにアクセスできます。

    public List<AuthorizationResult> authorize(AuthorizableRequestContext requestContext, List<Action> actions) {

        KafkaPrincipal principal = requestContext.principal();
        if (principal instanceof OAuthKafkaPrincipal) {
            OAuthKafkaPrincipal p = (OAuthKafkaPrincipal) principal;

            for (String group: p.getGroups()) {
                System.out.println("Group: " + group);
            }
        }
    }

24.6. KafkaAuthorizationCustom スキーマのプロパティー

type プロパティーは、KafkaAuthorizationCustom タイプの使用を KafkaAuthorizationSimpleKafkaAuthorizationOpaKafkaAuthorizationKeycloakと区別する識別子です。タイプ KafkaAuthorizationCustom の値が custom である必要があります。

プロパティープロパティータイプ説明

type

string

custom である必要があります。

authorizerClass

string

認可実装クラス。クラスパスで使用できる必要があります。

superUsers

string array

スーパーユーザーのリスト。これは、無制限のアクセス権限を持つユーザープリンシパルです。

supportsAdminApi

boolean

カスタムオーソライザーが、Kafka Admin API を使用して ACL を管理するための API をサポートしているかどうかを示します。デフォルトは false です。

第25章 Rack スキーマリファレンス

使用先: KafkaBridgeSpecKafkaClusterSpecKafkaConnectSpecKafkaMirrorMaker2Spec

Rack スキーマプロパティーの全リスト

rack オプションは、ラックアウェアネスを設定します。ラックは、アベイラビリティーゾーン、データセンター、またはデータセンターの実際のラックを表すことができます。rackの設定は、topologyKey で行います。topologyKey は、OpenShift ノード上のラベルを識別するもので、その値にはトポロジーの名前が含まれています。このようなラベルの例としては、topology.kubernetes.io/zone(古い OpenShift バージョンでは failure-domain.beta.kubernetes.io/zone) があり、これには OpenShift ノードが実行されているアベイラビリティゾーンの名前が含まれています。Kafka クラスターが実行するラックを認識するように設定し、パーティションレプリカを異なるラックに分散したり、最も近いレプリカからのメッセージの消費したりするなどの追加機能を有効にできます。

OpenShift ノードラベルの詳細は、Well-Known Labels, Annotations and Taints を参照してください。ノードがデプロイされたゾーンやラックを表すノードラベルについては、OpenShift 管理者に相談します。

25.1. ラック間でのパーティションレプリカの分散

ラックアウェアネスが設定されると、Streams for Apache Kafka が各 Kafka ブローカーに対して broker.rack を設定します。broker.rack 設定によって、各ブローカーにラック ID が割り当てられます。broker.rack を設定すると、Kafka ブローカーはパーティションレプリカをできるだけ多くの異なるラックに分散して配置します。レプリカが複数のラックに分散されている場合、複数のレプリカが同時に失敗する可能性は、同じラックにある場合よりも低くなります。レプリカを分散すると回復性が向上し、可用性と信頼性にとっても重要です。Kafka でラックアウェアネスを有効にするには、以下の例のように、Kafka のカスタムリソースの .spec.kafka セクションに rack オプションを追加します。

Kafka の rack 設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    # ...

注記

Pod が削除または再起動すると、ブローカーが実行されているラックは、変更されることがあります。その結果、異なるラックで実行しているレプリカが、同じラックを共有する可能性があります。RackAwareGoal で Cruise Control と KafkaRebalance リソースを使用して、レプリカが異なるラックに分散していることを確認します。

Kafka カスタムリソースでラックアウェアネスが有効になっている場合、Streams for Apache Kafka は、OpenShift の preferredDuringSchedulingIgnoredDuringExecution アフィニティールールを自動的に追加し、Kafka ブローカーを別々のラックに分散します。ただし、優先 ルールは、ブローカーが分散されることを保証しません。OpenShift と Kafka の設定に応じて、affinity ルールを追加したり、ZooKeeper と Kafka の両方に topologySpreadConstraints を設定したりして、できるだけ多くのラックにノードが適切に分散されるようにしてください。詳細は、Pod スケジューリングの設定 を参照してください。

25.2. 最も近いレプリカからのメッセージの消費

ラックアウェアネスをコンシューマーで使用して、最も近いレプリカからデータを取得することもできます。これは、Kafka クラスターが複数のデータセンターにまたがる場合に、ネットワークの負荷を軽減するのに役立ちます。また、パブリッククラウドで Kafka を実行する場合にコストを削減することもできます。ただし、レイテンシーが増加する可能性があります。

最も近いレプリカから使用できるようにするには、Kafka クラスターでラックアウェアネスを設定し、RackAwareReplicaSelector を有効にする必要があります。レプリカセレクタープラグインは、クライアントが最も近いレプリカから消費できるようにするロジックを提供します。デフォルトの実装では、LeaderSelector を使用して、常にクライアントのリーダーレプリカを選択します。replica.selector.classRackAwareReplicaSelector を指定すると、デフォルトの実装から切り替わります。

レプリカ対応セレクターを有効にした rack 設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    rack:
      topologyKey: topology.kubernetes.io/zone
    config:
      # ...
      replica.selector.class: org.apache.kafka.common.replica.RackAwareReplicaSelector
    # ...

Kafka ブローカーの設定に加えて、コンシューマーに client.rack オプションを指定する必要があります。client.rack オプションには、コンシューマーが稼動しているrack IDを指定する必要があります。RackAwareReplicaSelector は、マッチングした broker.rackclient.rack ID を関連付けて、最も近いレプリカを見つけ、そこからデータを取得します。同じラック内に複数のレプリカがある場合、RackAwareReplicaSelector は常に最新のレプリカを選択します。ラック ID が指定されていない場合や、同じラック ID を持つレプリカが見つからない場合は、リーダーレプリカにフォールバックします。

図25.1 同じアベイラビリティーゾーンのレプリカから消費するクライアントの例

同じアベイラビリティーゾーン内のレプリカから消費されます。

コネクターが最も近いレプリカからのメッセージを消費するように、Kafka Connect、MirrorMaker 2、および Kafka Bridge を設定することもできます。KafkaConnectKafkaMirrorMaker2、および KafkaBridge カスタムリソースでラックアウェアネスを有効にします。この設定ではアフィニティールールは設定されませんが、affinity または topologySpreadConstraints を設定することもできます。詳細は、Pod スケジューリングの設定 を参照してください。

Streams for Apache Kafka を使用して Kafka Connect をデプロイする場合、KafkaConnect カスタムリソースの rack セクションを使用して client.rack オプションを自動的に設定できます。

Kafka Connect の rack 設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
# ...
spec:
  # ...
  rack:
    topologyKey: topology.kubernetes.io/zone
  # ...

Streams for Apache Kafka を使用して MirrorMaker 2 をデプロイする場合、KafkaMirrorMaker2 カスタムリソースの rack セクションを使用して client.rack オプションを自動的に設定できます。

MirrorMaker 2 の rack 設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker2
# ...
spec:
  # ...
  rack:
    topologyKey: topology.kubernetes.io/zone
  # ...

Streams for Apache Kafka を使用して Kafka Bridge をデプロイする場合、KafkaBridge カスタムリソースの rack セクションを使用して client.rack オプションを自動的に設定できます。

Kafka Bridge の rack 設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
# ...
spec:
  # ...
  rack:
    topologyKey: topology.kubernetes.io/zone
  # ...

25.3. Rack スキーマのプロパティー

プロパティープロパティータイプ説明

topologyKey

string

OpenShift クラスターノードに割り当てられたラベルに一致するキー。ラベルの値は、ブローカーの broker.rack 設定、および Kafka Connect または MirrorMaker 2 の client.rack 設定を設定するために使用されます。

第26章 Probe スキーマリファレンス

CruiseControlSpecEntityTopicOperatorSpecEntityUserOperatorSpecKafkaBridgeSpecKafkaClusterSpecKafkaConnectSpecKafkaExporterSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpecTlsSidecarZookeeperClusterSpec で使用

プロパティープロパティータイプ説明

failureThreshold

integer

正常に実行された後に失敗とみなされるプローブの連続失敗回数の最小値。デフォルトは 3 です。最小値は 1 です。

initialDelaySeconds

integer

最初に健全性をチェックするまでの初期の遅延。デフォルトは 15 秒です。最小値は 0 です。

periodSeconds

integer

プローブを実行する頻度 (秒単位)。デフォルトは 10 秒です。最小値は 1 です。

successThreshold

integer

失敗後に、プローブが正常とみなされるための最小の連続成功回数。デフォルトは 1 です。liveness は 1 でなければなりません。最小値は 1 です。

timeoutSeconds

integer

ヘルスチェック試行のタイムアウト。デフォルトは 5 秒です。最小値は 1 です。

第27章 JvmOptions スキーマリファレンス

使用場所: CruiseControlSpec, EntityTopicOperatorSpec, EntityUserOperatorSpec, KafkaBridgeSpec, KafkaClusterSpec, KafkaConnectSpec, KafkaMirrorMaker2Spec, KafkaMirrorMakerSpec, KafkaNodePoolSpec, ZookeeperClusterSpec

プロパティープロパティータイプ説明

-XX

map

JVM への -XX オプションのマップ。

-Xms

string

JVM への -Xms オプション。

-Xmx

string

JVM への -Xmx オプション。

gcLoggingEnabled

boolean

ガベージコレクションのロギングが有効かどうかを指定します。デフォルトは false です。

javaSystemProperties

SystemProperty array

-D オプションを使用して、JVM に渡される追加のシステムプロパティーのマップ。

第28章 SystemProperty スキーマリファレンス

JvmOptions で使用

プロパティープロパティータイプ説明

name

string

システムプロパティー名。

value

string

システムプロパティーの値。

第29章 KafkaJmxOptions スキーマリファレンス

KafkaClusterSpecKafkaConnectSpecKafkaMirrorMaker2SpecZookeeperClusterSpec で使用

KafkaJmxOptions スキーマプロパティーの全リスト

JMX 接続オプションを設定します。

ポート 9999 に接続して、Kafka ブローカー、ZooKeeper ノード、Kafka Connect、および MirrorMaker 2 から JMX メトリックを取得します。パスワードで保護された JMX ポート、または保護されていない JMX ポートを設定するには、jmxOptions プロパティーを使用します。パスワードで保護すると、未許可の Pod によるポートへの不正アクセスを防ぐことができます。

その後、コンポーネントに関するメトリックを取得できます。

たとえば、Kafka ブローカーごとに、クライアントからのバイト/秒の使用度データや、ブローカーのネットワークの要求レートを取得することができます。

JMX ポートのセキュリティーを有効にするには、authentication フィールドの type パラメーターを password に設定します。

Kafka ブローカーと ZooKeeper ノード用のパスワードで保護された JMX 設定の例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    jmxOptions:
      authentication:
        type: "password"
    # ...
  zookeeper:
    # ...
    jmxOptions:
      authentication:
        type: "password"
    #...

次に、対応するブローカーを指定して、Pod をクラスターにデプロイし、ヘッドレスサービスを使用して JMX メトリックを取得できます。

たとえば、ブローカー 0 から JMX メトリックを取得するには、以下を指定します。

"CLUSTER-NAME-kafka-0.CLUSTER-NAME-kafka-brokers"

CLUSTER-NAME-kafka-0 はブローカー Pod の名前、CLUSTER-NAME-kafka-brokers はブローカー Pod の IP を返すヘッドレスサービスの名前です。

JMX ポートがセキュアである場合、Pod のデプロイメントで JMX Secret からユーザー名とパスワードを参照すると、そのユーザー名とパスワードを取得できます。

保護されていない JMX ポートの場合は、空のオブジェクト {} を使用して、ヘッドレスサービスの JMX ポートを開きます。保護されたポートと同じ方法で Pod をデプロイし、メトリックを取得できますが、この場合はどの Pod も JMX ポートから読み取ることができます。

Kafka ブローカーと ZooKeeper ノードのオープンポート JMX 設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
    jmxOptions: {}
    # ...
  zookeeper:
    # ...
    jmxOptions: {}
    # ...

関連情報

29.1. KafkaJmxOptions スキーマプロパティー

プロパティープロパティータイプ説明

認証

KafkaJmxAuthenticationPassword

JMX ポートに接続するための認証設定。

第30章 KafkaJmxAuthenticationPassword スキーマリファレンス

KafkaJmxOptions で使用

type プロパティーは、KafkaJmxAuthenticationPassword タイプの使用と、今後追加される可能性のある他のサブタイプとを区別するための識別情報です。KafkaJmxAuthenticationPassword タイプには password の値が必要です。

プロパティープロパティータイプ説明

type

string

password でなければなりません。

第31章 JmxPrometheusExporterMetrics スキーマリファレンス

CruiseControlSpecKafkaClusterSpecKafkaConnectSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpecZookeeperClusterSpec で使用

type プロパティーは、JmxPrometheusExporterMetrics タイプの使用と、将来追加される可能性のある他のサブタイプとを区別する識別子です。JmxPrometheusExporterMetrics タイプの値 jmxPrometheusExporter を持つ必要があります。

プロパティープロパティータイプ説明

type

string

jmxPrometheusExporter でなければなりません。

valueFrom

ExternalConfigurationReference

Prometheus JMX Exporter 設定が保存される ConfigMap エントリー。

第32章 ExternalConfigurationReference のスキーマリファレンス

ExternalLoggingJmxPrometheusExporterMetrics で使用

プロパティープロパティータイプ説明

configMapKeyRef

ConfigMapKeySelector

設定が含まれる ConfigMap のキーへの参照。

第33章 InlineLogging スキーマリファレンス

CruiseControlSpecEntityTopicOperatorSpecEntityUserOperatorSpecKafkaBridgeSpecKafkaClusterSpecKafkaConnectSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpecZookeeperClusterSpec で使用

type プロパティーは、InlineLogging タイプの使用と、ExternalLogging.を区別するための識別子です。InlineLogging タイプには inline の値が必要です。

プロパティープロパティータイプ説明

type

string

inline でなければなりません。

loggers

map

ロガー名からロガーレベルへのマップ。

第34章 ExternalLogging スキーマリファレンス

CruiseControlSpecEntityTopicOperatorSpecEntityUserOperatorSpecKafkaBridgeSpecKafkaClusterSpecKafkaConnectSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpecZookeeperClusterSpec で使用

type プロパティーは、ExternalLogging タイプの使用を、InlineLoggingと区別するための識別子です。ExternalLogging タイプには external の値が必要です。

プロパティープロパティータイプ説明

type

string

external でなければなりません。

valueFrom

ExternalConfigurationReference

ロギング設定が保存される ConfigMap エントリーです。

第35章 KafkaClusterTemplate スキーマリファレンス

KafkaClusterSpec で使用

プロパティープロパティータイプ説明

statefulset

StatefulSetTemplate

statefulset プロパティーは非推奨になりました。StatefulSets のサポートは Streams for Apache Kafka 2.5 で削除されました。このプロパティーは無視されます。Kafka StatefulSet のテンプレート。

Pod

PodTemplate

Kafka Pod のテンプレート。

bootstrapService

InternalServiceTemplate

Kafka ブートストラップ Service のテンプレート。

brokersService

InternalServiceTemplate

Kafka ブローカー Service のテンプレート。

externalBootstrapService

ResourceTemplate

Kafka 外部ブートストラップ Service のテンプレート。

perPodService

ResourceTemplate

OpenShift の外部からアクセスするために使用される Pod ごとの Kafka Services のテンプレート。

externalBootstrapRoute

ResourceTemplate

Kafka 外部ブートストラップ Route のテンプレート。

perPodRoute

ResourceTemplate

OpenShift の外部からアクセスするために使用される Kafka の Pod ごとの Routes のテンプレート。

externalBootstrapIngress

ResourceTemplate

Kafka 外部ブートストラップ Ingress のテンプレート。

perPodIngress

ResourceTemplate

OpenShift の外部からアクセスするために使用される Kafka の Pod ごとの Ingress のテンプレート。

persistentVolumeClaim

ResourceTemplate

すべての Kafka PersistentVolumeClaims のテンプレート。

podDisruptionBudget

PodDisruptionBudgetTemplate

Kafka PodDisruptionBudget のテンプレート。

kafkaContainer

ContainerTemplate

Kafka ブローカーコンテナーのテンプレート。

initContainer

ContainerTemplate

Kafka init コンテナーのテンプレート。

clusterCaCert

ResourceTemplate

Kafka Cluster 証明書の公開鍵が含まれる Secret のテンプレート。

serviceAccount

ResourceTemplate

Kafka サービスアカウントのテンプレート。

jmxSecret

ResourceTemplate

Kafka Cluster JMX 認証の Secret のテンプレートです。

clusterRoleBinding

ResourceTemplate

Kafka ClusterRoleBinding のテンプレート。

podSet

ResourceTemplate

Kafka StrimziPodSet リソースのテンプレート。

第36章 StatefulSetTemplate スキーマリファレンス

KafkaClusterTemplateZookeeperClusterTemplate で使用

プロパティープロパティータイプ説明

metadata

MetadataTemplate

リソースに適用済みのメタデータ。

podManagementPolicy

string ([OrderedReady、Parallel] のいずれか)

この StatefulSet に使用される PodManagementPolicy。有効な値は Parallel および OrderedReady です。デフォルトは Parallel です。

第37章 MetadataTemplate スキーマリファレンス

BuildConfigTemplateDeploymentTemplateInternalServiceTemplatePodDisruptionBudgetTemplatePodTemplateResourceTemplateStatefulSetTemplate で使用

MetadataTemplate スキーマプロパティーの全リスト

Labels および Annotations は、リソースの識別および整理に使用され、metadata プロパティーで設定されます。

以下に例を示します。

# ...
template:
  pod:
    metadata:
      labels:
        label1: value1
        label2: value2
      annotations:
        annotation1: value1
        annotation2: value2
# ...

labels および annotations フィールドには、予約された文字列 strimzi.io が含まれないすべてのラベルやアノテーションを含めることができます。strimzi.io を含むラベルとアノテーションは、Streams for Apache Kafka によって内部的に使用され、設定することはできません。

37.1. MetadataTemplate スキーマのプロパティー

プロパティープロパティータイプ説明

labels

map

OpenShift リソースに追加されたラベル。

annotations

map

OpenShift リソースにアノテーションが追加されました。

第38章 PodTemplate スキーマリファレンス

使用場所: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate, KafkaNodePoolTemplate, ZookeeperClusterTemplate

PodTemplate スキーマプロパティーの全リスト

Kafka Pod のテンプレートを設定します。

PodTemplate の設定例

# ...
template:
  pod:
    metadata:
      labels:
        label1: value1
      annotations:
        anno1: value1
    imagePullSecrets:
      - name: my-docker-credentials
    securityContext:
      runAsUser: 1000001
      fsGroup: 0
    terminationGracePeriodSeconds: 120
# ...

38.1. hostAliases

hostAliases プロパティーを使用して、Pod の /etc/hosts ファイルに注入されるホストと IP アドレスのリストを指定します。

この設定は特に、クラスター外部の接続がユーザーによっても要求される場合に Kafka Connect または MirrorMaker で役立ちます。

hostAliases の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
#...
spec:
  # ...
  template:
    pod:
      hostAliases:
      - ip: "192.168.1.86"
        hostnames:
        - "my-host-1"
        - "my-host-2"
      #...

38.2. PodTemplate スキーマのプロパティー

プロパティープロパティータイプ説明

metadata

MetadataTemplate

リソースに適用済みのメタデータ。

imagePullSecrets

LocalObjectReference アレイ

この Pod で使用されるイメージのプルに使用する同じ namespace のシークレットへの参照のリストです。Cluster Operator の環境変数 STRIMZI_IMAGE_PULL_SECRETSimagePullSecrets オプションが指定されている場合、imagePullSecrets 変数のみが使用され、STRIMZI_IMAGE_PULL_SECRETS 変数は無視されます。

securityContext

PodSecurityContext

Pod レベルのセキュリティー属性と共通のコンテナー設定を設定します。

terminationGracePeriodSeconds

integer

猶予期間とは、Pod で実行されているプロセスに終了シグナルが送信されてから、kill シグナルでプロセスを強制的に終了するまでの期間 (秒単位) です。この値は、プロセスの予想されるクリーンアップ時間よりも長く設定します。値は負の値ではない整数にする必要があります。値をゼロにすると、即座に削除されます。非常に大型な Kafka クラスターの場合は、正常終了期間を延長し、Kafka ブローカーの終了前に作業を別のブローカーに転送する時間を十分確保する必要があることがあります。デフォルトは 30 秒です。

affinity

Affinity

Pod のアフィニティールール。

toleration

toleration アレイ

Pod の許容 (Toleration)。

priorityClassName

string

優先順位を Pod に割り当てるために使用される優先順位クラス (Priority Class) の名前。

schedulerName

string

この Pod のディスパッチに使用されるスケジューラーの名前。指定されていない場合、デフォルトのスケジューラーが使用されます。

hostAliases

HostAlias アレイ

Pod の HostAliases。HostAliases は、指定された場合に Pod の hosts ファイルに注入されるホストおよび IP のオプションのリストです。

tmpDirSizeLimit

string

一時 EmptyDir ボリューム (/tmp) に必要なローカルストレージの合計量 (例: 1Gi) を定義します。デフォルト値は 5Mi です。

enableServiceLinks

boolean

サービスの情報を Pod の環境変数に注入するかどうかを示します。

topologySpreadConstraints

TopologySpreadConstraint 配列

Pod のトポロジー分散制約。

第39章 InternalServiceTemplate のスキーマリファレンス

CruiseControlTemplateKafkaBridgeTemplateKafkaClusterTemplateKafkaConnectTemplateZookeeperClusterTemplate で使用

プロパティープロパティータイプ説明

metadata

MetadataTemplate

リソースに適用済みのメタデータ。

ipFamilyPolicy

string ([RequireDualStack、SingleStack、PreferDualStack] のいずれか)

サービスによって使用される IP Family Policy を指定します。利用可能なオプションは、SingleStackPreferDualStackRequireDualStack です。SingleStack は単一の IP ファミリー用です。PreferDualStack は、デュアルスタック設定のクラスターでは 2 つの IP ファミリーを、シングルスタック設定のクラスターでは 1 つの IP ファミリーを対象としています。RequireDualStack は、デュアルスタック設定のクラスターに 2 つの IP ファミリーがないと失敗します。指定されていない場合、OpenShift はサービスタイプに基づいてデフォルト値を選択します。

ipFamilies

string ([IPv6, IPv4] の 1 つ以上) array

サービスによって使用される IP Families を指定します。利用可能なオプションは、IPv4IPv6 です。指定されていない場合、OpenShift は ipFamilyPolicy の設定に基づいてデフォルト値を選択します。

第40章 ResourceTemplate スキーマリファレンス

使用場所: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate, KafkaNodePoolTemplate, KafkaUserTemplate, ZookeeperClusterTemplate

プロパティープロパティータイプ説明

metadata

MetadataTemplate

リソースに適用済みのメタデータ。

第41章 PodDisruptionBudgetTemplate スキーマリファレンス

CruiseControlTemplateKafkaBridgeTemplateKafkaClusterTemplateKafkaConnectTemplateKafkaMirrorMakerTemplateZookeeperClusterTemplate で使用

PodDisruptionBudgetTemplate スキーマプロパティーの全リスト

PodDisruptionBudget (PDB) は、計画されたメンテナンスまたはアップグレード中に使用可能にする必要がある Pod の最小数を指定することで高可用性を確保する OpenShift リソースです。Streams for Apache Kafka は、新しい StrimziPodSet または Deployment ごとに PDB を作成します。デフォルトでは、PDB は一度に 1 つの Pod のみを使用不能にすることができます。maxUnavailable プロパティーのデフォルト値を変更して、許容される利用不可能な Pod の数を増やすことができます。

StrimziPodSet カスタムリソースは、maxUnavailable 値を直接使用できないカスタムコントローラーを使用して Pod を管理します。代わりに、次の例に示すように、PDB リソースの作成時に maxUnavailable 値が minAvailable 値に自動的に変換され、実質的に同じ目的を果たします。

  • ブローカー Pod が 3 つあり、Kafka リソースで maxUnavailable プロパティーが 1 に設定されている場合、minAvailable 設定は 2 となり、1 つの Pod が使用不可になることが許可されます。
  • ブローカー Pod が 3 つあり、maxUnavailable プロパティーが 0 (ゼロ) に設定されている場合、minAvailable 設定は 3 で、3 つのブローカー Pod すべてが使用可能である必要があり、使用できない Pod が存在しないことが許可されます。

PodDisruptionBudget テンプレートの設定例

# ...
template:
  podDisruptionBudget:
    metadata:
      labels:
        key1: label1
        key2: label2
      annotations:
        key1: label1
        key2: label2
    maxUnavailable: 1
# ...

41.1. PodDisruptionBudgetTemplate スキーマプロパティー

プロパティープロパティータイプ説明

metadata

MetadataTemplate

PodDisruptionBudgetTemplate リソースに適用するメタデータ。

maxUnavailable

integer

自動 Pod エビクションを許可するための利用不可能な Pod の最大数。Pod エビクションは、maxUnavailable の Pod 数またはそれより少ない Pod 数がエビクション後に利用できない場合に許可されます。この値を 0 に設定するとすべての自発的なエビクションを阻止するため、Pod を手動でエビクトする必要があります。デフォルトは 1 です。

第42章 ContainerTemplate スキーマリファレンス

使用場所: CruiseControlTemplate, EntityOperatorTemplate, JmxTransTemplate, KafkaBridgeTemplate, KafkaClusterTemplate, KafkaConnectTemplate, KafkaExporterTemplate, KafkaMirrorMakerTemplate, KafkaNodePoolTemplate, ZookeeperClusterTemplate

ContainerTemplate スキーマプロパティーの全リスト

コンテナーのカスタムのセキュリティーコンテキストおよび環境変数を設定できます。

環境変数は、env プロパティーで name および value フィールドのあるオブジェクトのリストとして定義されます。以下の例は、Kafka ブローカーコンテナーに設定された 2 つのカスタム環境変数と 1 つのセキュリティーコンテキストを示しています。

# ...
template:
  kafkaContainer:
    env:
    - name: EXAMPLE_ENV_1
      value: example.env.one
    - name: EXAMPLE_ENV_2
      value: example.env.two
    securityContext:
      runAsUser: 2000
# ...

KAFKA_ で始まる環境変数は、Streams for Apache Kafka 内部用の変数であるため、使用しないでください。Streams for Apache Kafka ですでに使用されているカスタム環境変数を設定した場合、その変数は無視され、ログに警告が記録されます。

42.1. ContainerTemplate スキーマのプロパティー

プロパティープロパティータイプ説明

env

ContainerEnvVar array

コンテナーに適用する必要のある環境変数。

securityContext

SecurityContext

コンテナーのセキュリティーコンテキスト。

第43章 ContainerEnvVar スキーマリファレンス

ContainerTemplate で使用

プロパティープロパティータイプ説明

name

string

環境変数のキー。

value

string

環境変数の値。

第44章 TieredStorageCustom スキーマリファレンス

KafkaClusterSpec で使用

TieredStorageCustom スキーマプロパティーの全リスト

Kafka のカスタム階層化ストレージを有効にします。

カスタム階層化ストレージを使用する場合は、まずカスタムコンテナーイメージをビルドして、Kafka プラグインの階層化ストレージを Streams for Apache Kafka イメージに追加する必要があります。

カスタム階層化ストレージ設定により、カスタムの RemoteStorageManager 設定を使用できるようになります。RemoteStorageManager は、Kafka とリモート階層化ストレージ間の対話を管理するための Kafka インターフェイスです。

カスタム階層化ストレージが有効な場合、Streams for Apache Kafka は、Remote Log Metadata Management (RLMM) に TopicBasedRemoteLogMetadataManager を使用します。

警告

階層化ストレージは Kafka の早期アクセス機能であり、Streams for Apache Kafka でも利用できます。現在の制限 により、実稼働環境では推奨されません。

カスタム階層化ストレージ設定の例

kafka:
  tieredStorage:
    type: custom
    remoteStorageManager:
      className: com.example.kafka.tiered.storage.s3.S3RemoteStorageManager
      classPath: /opt/kafka/plugins/tiered-storage-s3/*
      config:
        # A map with String keys and String values.
        # Key properties are automatically prefixed with `rsm.config.`
        # and appended to Kafka broker config.
        storage.bucket.name: my-bucket
  config:
    ...
    # Additional RLMM configuration can be added through the Kafka config
    # under `spec.kafka.config` using the `rlmm.config.` prefix.
    rlmm.config.remote.log.metadata.topic.replication.factor: 1

44.1. TieredStorageCustom スキーマプロパティー

type プロパティーは、TieredStorageCustom タイプを使用する際に、今後追加される可能性のある他のサブタイプと区別する識別子です。TieredStorageCustom タイプの値は custom である必要があります。

プロパティープロパティータイプ説明

remoteStorageManager

RemoteStorageManager

リモートストレージマネージャーの設定。

type

string

custom である必要があります。

第45章 RemoteStorageManager スキーマリファレンス

TieredStorageCustom で使用

プロパティープロパティータイプ説明

className

string

RemoteStorageManager 実装のクラス名。

classPath

string

RemoteStorageManager 実装のクラスパス。

config

map

RemoteStorageManager 実装の追加の Configuration Map。キーには自動的に rsm.config. という接頭辞が付けられ、Kafka ブローカー設定に追加されます。

第46章 ZookeeperClusterSpec スキーマリファレンス

KafkaSpec で使用

ZookeeperClusterSpec スキーマプロパティーの全リスト

ZooKeeper クラスターを設定します。

46.1. config

config プロパティーを使用して、ZooKeeper のオプションをキーとして設定します。

値は以下の JSON タイプのいずれかになります。

  • 文字列
  • 数値
  • ブール値

例外

ZooKeeper のドキュメント に記載されているオプションを指定および設定できます。

ただし、次の項目に関連するオプションの設定と管理は、Streams for Apache Kafka が行います。これらは変更できません。

  • セキュリティー (暗号化、認証、および認可)
  • リスナーの設定
  • データディレクトリーの設定
  • ZooKeeper クラスターの構成

次の接頭辞を持つプロパティーは設定できません。

  • 4lw.commands.whitelist
  • authProvider
  • clientPort
  • dataDir
  • dataLogDir
  • quorum.auth
  • reconfigEnabled
  • requireClientAuthScheme
  • secureClientPort
  • server.
  • snapshot.trust.empty
  • standaloneEnabled
  • serverCnxnFactory
  • ssl.
  • sslQuorum

config プロパティーに変更できないオプションが含まれている場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに記録されます。サポートされているその他のすべてのオプションは、Streams for Apache Kafka によって設定されたオプションの次の例外も含め、ZooKeeper に転送されます。

ZooKeeper の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  kafka:
    # ...
  zookeeper:
    # ...
    config:
      autopurge.snapRetainCount: 3
      autopurge.purgeInterval: 2
    # ...

46.2. logging

ZooKeeper には設定可能なロガーがあります。

  • zookeeper.root.logger

ZooKeeper は、Apachelog4j のロガー実装を使用しています。

logging プロパティーを使用してロガーおよびロガーレベルを設定します。

ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、カスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j.properties を使用して記述されます。logging.valueFrom.configMapKeyRef.name および logging.valueFrom.configMapKeyRef.key プロパティーはいずれも必須です。Cluster Operator の実行時に、指定された正確なロギング設定を使用する ConfigMap がカスタムリソースを使用して作成され、その後は調整のたびに再作成されます。カスタム ConfigMap を指定しない場合、デフォルトのロギング設定が使用されます。特定のロガー値が設定されていない場合、上位レベルのロガー設定がそのロガーに継承されます。ログレベルの詳細は、Apache logging services を参照してください。

ここで、inline および external ロギングの例を示します。inline ロギングでは、ルートロガーレベルを指定します。特定のクラスまたはロガーを loggers プロパティーに追加することで、それらのログレベルを設定することもできます。

inline ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  zookeeper:
    # ...
    logging:
      type: inline
      loggers:
        zookeeper.root.logger: INFO
        log4j.logger.org.apache.zookeeper.server.FinalRequestProcessor: TRACE
        log4j.logger.org.apache.zookeeper.server.ZooKeeperServer: DEBUG
    # ...

注記

ログレベルを DEBUG に設定すると、大量のログが出力され、パフォーマンスに影響を及ぼす可能性があります。

外部ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  zookeeper:
    # ...
    logging:
      type: external
      valueFrom:
        configMapKeyRef:
          name: customConfigMap
          key: zookeeper-log4j.properties
  # ...

ガベージコレクター (GC)

ガベッジコレクターのロギングは jvmOptions プロパティーを使用して 有効 (または無効) にすることもできます。

46.3. ZookeeperClusterSpec スキーマプロパティー

プロパティープロパティータイプ説明

replicas

integer

クラスター内の Pod 数。

image

string

ZooKeeper Pod に使用されるコンテナーイメージ。イメージ名が明示的に指定されていない場合は、spec.kafka.version で設定された Kafka バージョンに基づいて決定されます。イメージ名は、Cluster Operator 設定内の対応するバージョンに具体的にマッププされます。

storage

EphemeralStoragePersistentClaimStorage

ストレージの設定 (ディスク)。更新はできません。

config

map

ZooKeeper ブローカーの設定。接頭辞 server.、dataDir、dataLogDir、clientPort、authProvider、quorum.auth、requireClientAuthScheme、snapshot.trust.empty、standaloneEnabled、reconfigEnabled、4lw.commands.whitelist、secureClientPort、ssl、serverCnxnFactory、sslQuorum (次の例外を除く: ssl.protocol、ssl.quorum.protocol、ssl.enabledProtocols、ssl.quorum.enabledProtocols、ssl.ciphersuites、ssl.quorum.ciphersuites、ssl.hostnameVerification、ssl.quorum.hostnameVerification) があるプロパティーは設定できません。

livenessProbe

Probe

Pod の liveness チェック。

readinessProbe

Probe

Pod の readiness チェック。

jvmOptions

JvmOptions

Pod の JVM オプション。

jmxOptions

KafkaJmxOptions

Zookeeper ノードの JMX オプション。

resources

ResourceRequirements

予約する CPU およびメモリーリソース。

metricsConfig

JmxPrometheusExporterMetrics

メトリックの設定。

logging

InlineLoggingExternalLogging

ZooKeeper のロギング設定。

template

ZookeeperClusterTemplate

ZooKeeper クラスターリソースのテンプレート。このテンプレートを使用すると、ユーザーは OpenShift リソースの生成方法を指定できます。

第47章 ZookeeperClusterTemplate スキーマリファレンス

ZookeeperClusterSpec で使用

プロパティープロパティータイプ説明

statefulset

StatefulSetTemplate

statefulset プロパティーは非推奨になりました。StatefulSets のサポートは Streams for Apache Kafka 2.5 で削除されました。このプロパティーは無視されます。ZooKeeper StatefulSet のテンプレート。

Pod

PodTemplate

ZooKeeper Pod のテンプレート。

clientService

InternalServiceTemplate

ZooKeeper クライアント Service のテンプレート。

nodesService

InternalServiceTemplate

ZooKeeper ノード Service のテンプレート。

persistentVolumeClaim

ResourceTemplate

すべての ZooKeeper PersistentVolumeClaims のテンプレート。

podDisruptionBudget

PodDisruptionBudgetTemplate

ZooKeeper PodDisruptionBudget のテンプレート。

zookeeperContainer

ContainerTemplate

ZooKeeper コンテナーのテンプレート。

serviceAccount

ResourceTemplate

ZooKeeper サービスアカウントのテンプレート。

jmxSecret

ResourceTemplate

Zookeeper Cluster JMX 認証の Secret のテンプレート。

podSet

ResourceTemplate

ZooKeeper StrimziPodSet リソースのテンプレート。

第48章 EntityOperatorSpec スキーマリファレンス

KafkaSpec で使用

プロパティープロパティータイプ説明

topicOperator

EntityTopicOperatorSpec

Topic Operator の設定。

userOperator

EntityUserOperatorSpec

User Operator の設定。

tlsSidecar

TlsSidecar

TLS サイドカーの設定。

template

EntityOperatorTemplate

Entity Operator リソースのテンプレート。テンプレートを使用すると、ユーザーは DeploymentPod の生成方法を指定できます。

第49章 EntityTopicOperatorSpec スキーマリファレンス

EntityOperatorSpec で使用

EntityTopicOperatorSpec スキーマプロパティーの全リスト

Topic Operator を設定します。

49.1. logging

Topic Operator には設定可能なロガーがあります。

  • rootLogger.level

Topic Operator では、Apachelog4j2 のロガー実装を使用しています。

Kafka リソース Kafka リソースの entityOperator.topicOperator フィールドの logging プロパティーを使用して、ロガーとロガーレベルを設定します。

ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、カスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j2.properties を使用して記述されます。logging.valueFrom.configMapKeyRef.name および logging.valueFrom.configMapKeyRef.key プロパティーはいずれも必須です。Cluster Operator の実行時に、指定された正確なロギング設定を使用する ConfigMap がカスタムリソースを使用して作成され、その後は調整のたびに再作成されます。カスタム ConfigMap を指定しない場合、デフォルトのロギング設定が使用されます。特定のロガー値が設定されていない場合、上位レベルのロガー設定がそのロガーに継承されます。ログレベルの詳細は、Apache logging services を参照してください。

ここで、inline および external ロギングの例を示します。inline ロギングでは、ルートロガーレベルを指定します。特定のクラスまたはロガーを loggers プロパティーに追加することで、それらのログレベルを設定することもできます。

inline ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
  zookeeper:
    # ...
  entityOperator:
    # ...
    topicOperator:
      watchedNamespace: my-topic-namespace
      reconciliationIntervalSeconds: 60
      logging:
        type: inline
        loggers:
          rootLogger.level: INFO
          logger.top.name: io.strimzi.operator.topic 1
          logger.top.level: DEBUG 2
          logger.toc.name: io.strimzi.operator.topic.TopicOperator 3
          logger.toc.level: TRACE 4
          logger.clients.level: DEBUG 5
  # ...

1
topic パッケージのロガーを作成します。
2
topic パッケージのログレベルを設定します。
3
TopicOperator クラスのロガーを作成します。
4
TopicOperator クラスのログレベルを設定します。
5
デフォルトの clients ロガーのログレベルを変更します。clients ロガーは、Streams for Apache Kafka で提供されるロギング設定の一部です。デフォルトでは INFO に設定されます。
注記

オペレーターの問題を調査する場合、通常は rootLoggerDEBUG に変更して、より詳細なログを取得するだけで十分です。ただし、ログレベルを DEBUG に設定すると、大量のログが出力され、パフォーマンスに影響を及ぼす可能性があることに注意してください。

外部ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
  zookeeper:
    # ...
  entityOperator:
    # ...
    topicOperator:
      watchedNamespace: my-topic-namespace
      reconciliationIntervalSeconds: 60
      logging:
        type: external
        valueFrom:
          configMapKeyRef:
            name: customConfigMap
            key: topic-operator-log4j2.properties
  # ...

ガベージコレクター (GC)

ガベッジコレクターのロギングは jvmOptions プロパティーを使用して 有効 (または無効) にすることもできます。

49.2. EntityTopicOperatorSpec スキーマプロパティー

プロパティープロパティータイプ説明

watchedNamespace

string

Topic Operator が監視する必要のある namespace。

image

string

Topic Operator に使用するイメージ。

reconciliationIntervalSeconds

integer

定期的な調整の間隔。

zookeeperSessionTimeoutSeconds

integer

ZooKeeper セッションのタイムアウト。

startupProbe

Probe

Pod の起動チェック。

livenessProbe

Probe

Pod の liveness チェック。

readinessProbe

Probe

Pod の readiness チェック。

resources

ResourceRequirements

予約する CPU およびメモリーリソース。

topicMetadataMaxAttempts

integer

トピックメタデータの取得を試行する回数。

logging

InlineLoggingExternalLogging

ロギング設定。

jvmOptions

JvmOptions

Pod の JVM オプション。

第50章 EntityUserOperatorSpec スキーマリファレンス

EntityOperatorSpec で使用

EntityUserOperatorSpec スキーマプロパティーの全リスト

User Operator を設定します。

50.1. logging

User Operator には設定可能なロガーがあります。

  • rootLogger.level

User Operator では、Apachelog4j2 のロガー実装を使用しています。

Kafka リソースの entityOperator.userOperator フィールドの logging プロパティーを使用して、ロガーとロガーレベルを設定します。

ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、カスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j2.properties を使用して記述されます。logging.valueFrom.configMapKeyRef.name および logging.valueFrom.configMapKeyRef.key プロパティーはいずれも必須です。Cluster Operator の実行時に、指定された正確なロギング設定を使用する ConfigMap がカスタムリソースを使用して作成され、その後は調整のたびに再作成されます。カスタム ConfigMap を指定しない場合、デフォルトのロギング設定が使用されます。特定のロガー値が設定されていない場合、上位レベルのロガー設定がそのロガーに継承されます。ログレベルの詳細は、Apache logging services を参照してください。

ここで、inline および external ロギングの例を示します。inline ログでは rootLogger.level を指定します。特定のクラスまたはロガーを loggers プロパティーに追加することで、それらのログレベルを設定することもできます。

inline ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
  zookeeper:
    # ...
  entityOperator:
    # ...
    userOperator:
      watchedNamespace: my-topic-namespace
      reconciliationIntervalSeconds: 60
      logging:
        type: inline
        loggers:
          rootLogger.level: INFO
          logger.uop.name: io.strimzi.operator.user 1
          logger.uop.level: DEBUG 2
          logger.abstractcache.name: io.strimzi.operator.user.operator.cache.AbstractCache 3
          logger.abstractcache.level: TRACE 4
          logger.jetty.level: DEBUG 5

  # ...

1
user パッケージのロガーを作成します。
2
user パッケージのログレベルを設定します。
3
AbstractCache クラスのロガーを作成します。
4
AbstractCache クラスのログレベルを設定します。
5
デフォルトの jetty ロガーのログレベルを変更します。jetty ロガーは、Streams for Apache Kafka で提供されるロギング設定の一部です。デフォルトでは INFO に設定されます。
注記

オペレーターの問題を調査する場合、通常は rootLoggerDEBUG に変更して、より詳細なログを取得するだけで十分です。ただし、ログレベルを DEBUG に設定すると、大量のログが出力され、パフォーマンスに影響を及ぼす可能性があることに注意してください。

外部ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    # ...
  zookeeper:
    # ...
  entityOperator:
    # ...
    userOperator:
      watchedNamespace: my-topic-namespace
      reconciliationIntervalSeconds: 60
      logging:
        type: external
        valueFrom:
          configMapKeyRef:
            name: customConfigMap
            key: user-operator-log4j2.properties
   # ...

ガベージコレクター (GC)

ガベッジコレクターのロギングは jvmOptions プロパティーを使用して 有効 (または無効) にすることもできます。

50.2. EntityUserOperatorSpec スキーマプロパティー

プロパティープロパティータイプ説明

watchedNamespace

string

User Operator が監視する必要のある namespace。

image

string

User Operator に使用するイメージ。

reconciliationIntervalSeconds

integer

定期的な調整の間隔。

zookeeperSessionTimeoutSeconds

integer

zookeeperSessionTimeoutSeconds プロパティーは非推奨となりました。ZooKeeper は、User Operator で使用されなくなったため、このプロパティーは非推奨となりました。ZooKeeper セッションのタイムアウト。

secretPrefix

string

KafkaUser 名に追加され、Secret 名として使用される接頭辞。

livenessProbe

Probe

Pod の liveness チェック。

readinessProbe

Probe

Pod の readiness チェック。

resources

ResourceRequirements

予約する CPU およびメモリーリソース。

logging

InlineLoggingExternalLogging

ロギング設定。

jvmOptions

JvmOptions

Pod の JVM オプション。

第51章 TlsSidecar スキーマリファレンス

CruiseControlSpecEntityOperatorSpec で使用

TlsSidecar スキーマプロパティーの全リスト

TLS サイドカーを設定します。これは、Pod 内で実行されますが、補助的な目的を果たすコンテナーです。Streams for Apache Kafka の TLS サイドカーは、TLS を使用して、コンポーネントと ZooKeeper 間の通信を暗号化および復号化します。

TLS サイドカーは Entity Operator で使用されます。

TLS サイドカーは、Kafka.spec.entityOperatortlsSidecar プロパティーを使用して設定されます。

TLS サイドカーは、以下の追加オプションをサポートします。

  • image
  • resources
  • logLevel
  • readinessProbe
  • livenessProbe

resources プロパティーは、TLS サイドカーに割り当てられたメモリーと CPU のリソースを指定します。

image プロパティーは、使用されるコンテナーイメージを設定します。

readinessProbe プロパティーと livenessProbe プロパティーは、TLS サイドカーのhealthcheck プローブを設定します。

logLevel プロパティーは、ロギングレベルを指定します。以下のログレベルがサポートされます。

  • emerg
  • alert
  • crit
  • err
  • warning
  • notice
  • info
  • debug

デフォルト値は notice です。

TLS サイドカーの設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  entityOperator:
    # ...
    tlsSidecar:
      resources:
        requests:
          cpu: 200m
          memory: 64Mi
        limits:
          cpu: 500m
          memory: 128Mi
    # ...

51.1. TlsSidecar スキーマのプロパティー

プロパティープロパティータイプ説明

image

string

コンテナーの Docker イメージ。

livenessProbe

Probe

Pod の liveness チェック。

logLevel

string ([emerg、debug、crit、err、alert、warning、notice、info] のいずれか)

TLS サイドカーのログレベル。デフォルト値は notice です。

readinessProbe

Probe

Pod の readiness チェック。

resources

ResourceRequirements

予約する CPU およびメモリーリソース。

第52章 EntityOperatorTemplate スキーマリファレンス

EntityOperatorSpec で使用

プロパティープロパティータイプ説明

deployment

DeploymentTemplate

Entity Operator Deployment のテンプレート。

Pod

PodTemplate

Entity Operator Pod のテンプレート。

topicOperatorContainer

ContainerTemplate

Entity Topic Operator コンテナーのテンプレート。

userOperatorContainer

ContainerTemplate

Entity User Operator コンテナーのテンプレート。

tlsSidecarContainer

ContainerTemplate

Entity Operator TLS サイドカーコンテナーのテンプレート。

serviceAccount

ResourceTemplate

Entity Operator サービスアカウントのテンプレート。

entityOperatorRole

ResourceTemplate

Entity Operator Role. のテンプレート。

topicOperatorRoleBinding

ResourceTemplate

Entity Topic Operator RoleBinding のテンプレート。

userOperatorRoleBinding

ResourceTemplate

Entity Topic Operator RoleBinding のテンプレート。

第53章 DeploymentTemplate スキーマリファレンス

CruiseControlTemplateEntityOperatorTemplateJmxTransTemplateKafkaBridgeTemplateKafkaConnectTemplateKafkaExporterTemplateKafkaMirrorMakerTemplate で使用

DeploymentTemplate スキーマプロパティーの完全なリスト

deploymentStrategy を使用して、デプロイ設定が変更されたときに古い Pod を新しい Pod に置き換えるために使用される戦略を指定します。

以下のいずれかの値を使用します。

  • RollingUpdate: Pod はダウンタイムなしで再起動されます。
  • Recreate: Pod は、新しい Pod が作成される前に終了されます。

Recreate デプロイメント戦略を使用すると、予備のリソースを必要としないという利点がありますが、欠点はアプリケーションのダウンタイムです。

Recreate に設定されたデプロイメント戦略を示す例。

# ...
template:
  deployment:
    deploymentStrategy: Recreate
# ...

この設定の変更によって、ローリング更新が発生することはありません。

53.1. DeploymentTemplate スキーマプロパティー

プロパティープロパティータイプ説明

metadata

MetadataTemplate

リソースに適用済みのメタデータ。

deploymentStrategy

string ([RollingUpdate、Recreate] のいずれか)

デプロイ設定変更のための Pod 交換戦略。有効な値は RollingUpdate および Recreate です。デフォルトは RollingUpdate です。

第54章 CertificateAuthority スキーマリファレンス

KafkaSpec で使用

TLS 証明書のクラスター内での使用方法の設定。これは、クラスター内の内部通信に使用される証明書および Kafka.spec.kafka.listeners.tls を介したクライアントアクセスに使用される証明書の両方に適用されます。

プロパティープロパティータイプ説明

generateCertificateAuthority

boolean

true の場合、認証局の証明書が自動的に生成されます。それ以外の場合は、ユーザーは CA 証明書で Secret を提供する必要があります。デフォルトは true です。

generateSecretOwnerReference

boolean

true の場合、クラスターとクライアントの CA シークレットは、Kafka リソースに設定された ownerReference で設定されます。true の場合に Kafka リソースが削除されると、CA シークレットも削除されます。false の場合は、ownerReference が無効になります。false のときに Kafka リソースが削除されても、CA シークレットは保持され、再利用可能となります。デフォルトは true です。

validityDays

integer

生成される証明書の有効日数。デフォルトは 365 です。

renewalDays

integer

証明書更新期間の日数。これは、証明書の期限が切れるまでの日数です。この間に、更新アクションを実行することができます。generateCertificateAuthority が true の場合、新しい証明書が生成されます。generateCertificateAuthority が true の場合、保留中の証明書の有効期限に関する追加のロギングが WARN レベルで実行されます。デフォルトは 30 です。

certificateExpirationPolicy

string ([replace-key、renew-certificate] のいずれか)

generateCertificateAuthority=true の場合に CA 証明書の有効期限を処理する方法。デフォルトでは、既存の秘密鍵を再度使用して新規の CA 証明書が生成されます。

第55章 CruiseControlSpec スキーマリファレンス

KafkaSpec で使用

CruiseControlSpec スキーマプロパティーの完全なリスト

Cruise Control クラスターを設定します。

設定オプションは以下に関連しています。

  • ゴールの設定
  • リソース配分目標の容量制限

55.1. config

config プロパティーを使用して、Cruise Control オプションをキーとして設定します。

値は以下の JSON タイプのいずれかになります。

  • 文字列
  • 数値
  • ブール値

例外

Cruise Control のドキュメント に記載されているオプションを指定および設定できます。

ただし、次の項目に関連するオプションの設定と管理は、Streams for Apache Kafka が行います。これらは変更できません。

  • セキュリティー (暗号化、認証、および認可)
  • Kafka クラスターへの接続
  • クライアント ID の設定
  • ZooKeeper の接続
  • Web サーバー設定
  • 自己修復

次の接頭辞を持つプロパティーは設定できません。

  • bootstrap.servers
  • capacity.config.file
  • client.id
  • failed.brokers.zk.path
  • kafka.broker.failure.detection.enable
  • metric.reporter.sampler.bootstrap.servers
  • network.
  • request.reason.required
  • security.
  • self.healing.
  • ssl.
  • topic.config.provider.class
  • two.step.
  • webserver.accesslog.
  • webserver.api.urlprefix
  • webserver.http.
  • webserver.session.path
  • zookeeper.

config プロパティーに変更できないオプションが含まれている場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに記録されます。サポートされているその他のすべてのオプションは、Streams for Apache Kafka によって設定されたオプションの次の例外を含め、Cruise Control に転送されます。

Cruise Control の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    config:
      # Note that `default.goals` (superset) must also include all `hard.goals` (subset)
      default.goals: >
        com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal,
        com.linkedin.kafka.cruisecontrol.analyzer.goals.ReplicaCapacityGoal
      hard.goals: >
        com.linkedin.kafka.cruisecontrol.analyzer.goals.RackAwareGoal
      cpu.balance.threshold: 1.1
      metadata.max.age.ms: 300000
      send.buffer.bytes: 131072
      webserver.http.cors.enabled: true
      webserver.http.cors.origin: "*"
      webserver.http.cors.exposeheaders: "User-Task-ID,Content-Type"
    # ...

55.2. Cross-Origin Resource Sharing (CORS)

Cross-Origin Resource Sharing (CORS) は、REST API へのアクセスを制御するための HTTP メカニズムです。制限は、アクセス方法またはクライアントアプリケーションの元の URL に対して行うことができます。configwebserver.http.cors.enabled プロパティーを使用して、Cruise Control で CORS を有効にできます。CORS を有効にすると、Streams for Apache Kafka とは異なる元の URL を持つアプリケーションから Cruise Control REST API への読み取りアクセスが許可されます。これにより、指定されたオリジンからのアプリケーションが GET リクエストを使用して、Cruise Control API を介して Kafka クラスターに関する情報をフェッチできるようになります。たとえば、アプリケーションは、現在のクラスター負荷または最新の最適化提案に関する情報を取得できます。POST リクエストは許可されていません。

注記

Cruise Control で CORS を使用する方法の詳細は、Cruise Control Wiki の REST API を参照してください。

Cruise Control の CORS の有効化

Kafka.spec.cruiseControl.config で CORS を有効化および設定します。

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    config:
      webserver.http.cors.enabled: true 1
      webserver.http.cors.origin: "*" 2
      webserver.http.cors.exposeheaders: "User-Task-ID,Content-Type" 3

    # ...
1
CORS を有効にします。
2
Access-Control-Allow-Origin HTTP 応答ヘッダーの許可されるオリジンを指定します。ワイルドカードを使用するか、単一のオリジンを URL として指定できます。ワイルドカードを使用すると、任意のオリジンからのリクエストに続いてレスポンスが返されます。
3
Access-Control-Expose-Headers HTTP 応答ヘッダーの指定されたヘッダー名を公開します。許可されたオリジンのアプリケーションは、指定されたヘッダーで応答を読み取ることができます。

55.3. Cruise Control REST API のセキュリティー

Cruise Control REST API は、HTTP 基本認証と SSL で保護されており、Kafka ブローカーの廃止など、破壊的な可能性のある Cruise Control 操作からクラスターを保護します。Streams for Apache Kafka の Cruise Control は、これらの設定を有効にした状態でのみ使用 することを推奨します。

ただし、次の Cruise Control 設定を指定することで、これらの設定を無効にすることができます。

  • ビルトイン HTTP Basic 認証を無効にするには、webserver.security.enablefalse に設定します。
  • ビルトイン SSL を無効にするには、webserver.ssl.enablefalse に設定します。

API 認可、認証、および SSL を無効にする Cruise Control の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    config:
      webserver.security.enable: false
      webserver.ssl.enable: false
# ...

55.4. brokerCapacity

Cruise Control は、容量制限を使用して、リソース容量制限の最適化目標が破られているかどうかを判断します。このタイプには 4 つのゴールがあります。

  • DiskCapacityGoal - ディスク使用率容量
  • CpuCapacityGoal - CPU 使用率容量
  • NetworkInboundCapacityGoal - ネットワークインバウンド利用容量
  • NetworkOutboundCapacityGoal - ネットワークの送信利用容量

Kafka ブローカーリソースの容量制限は、Kafka.spec.cruiseControlbrokerCapacity プロパティーに指定します。これらはデフォルトで有効になっており、デフォルト値を変更できます。容量制限は、以下のブローカーリソースに設定できます。

  • cpu - ミリコアまたは CPU コアの CPU リソース (デフォルト: 1)
  • inboundNetwork: バイト毎秒単位のインバウンドネットワークスループット (デフォルトは 10000 KiB/s)
  • outboundNetwork: バイト毎秒単位のアウトバウンドネットワークスループット (デフォルトは 10000 KiB/s)

ネットワークスループットの場合、1 秒あたりの標準の OpenShift バイト単位 (K、M、G) またはそれに相当するビバイト (2 の累乗)(Ki、Mi、Gi) の整数値を使用します。

注記

ディスクと CPU の容量制限は、Streams for Apache Kafka によって自動的に生成されるため、設定する必要はありません。CPU ゴールを使用するときに正確なリバランスの提案を保証するために、Kafka.spec.kafka.resources で CPU リクエストを CPU 制限と同じに設定できます。これにより、すべての CPU リソースが事前に予約され、常に利用できます。この設定を使用すると、CPU 目標に基づいてリバランス提案を準備するときに Cruise Control が CPU 使用率を適切に評価できます。Kafka.spec.kafka.resources の CPU 制限と同じ CPU 要求を設定できない場合は、CPU 容量を手動で設定して同じ精度にすることができます。

bibyte 単位での Cruise Control brokerCapacity の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    brokerCapacity:
      cpu: "2"
      inboundNetwork: 10000KiB/s
      outboundNetwork: 10000KiB/s
    # ...

55.5. 容量の上書き

ブローカーは、異種ネットワークまたは CPU リソースを持つノードで実行されている可能性があります。その場合は、ブローカーごとにネットワーク容量と CPU 制限を設定する overrides を指定します。オーバーライドにより、ブローカー間の正確な再調整が保証されます。次のブローカリソースに対してオーバーライド容量制限を設定できます。

  • cpu - ミリコアまたは CPU コアの CPU リソース (デフォルト: 1)
  • inboundNetwork: バイト毎秒単位のインバウンドネットワークスループット (デフォルトは 10000 KiB/s)
  • outboundNetwork: バイト毎秒単位のアウトバウンドネットワークスループット (デフォルトは 10000 KiB/s)

ビバイト (bibyte) 単位を使用した Cruise Control 容量オーバーライド設定の例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  # ...
  cruiseControl:
    # ...
    brokerCapacity:
      cpu: "1"
      inboundNetwork: 10000KiB/s
      outboundNetwork: 10000KiB/s
      overrides:
      - brokers: [0]
        cpu: "2.755"
        inboundNetwork: 20000KiB/s
        outboundNetwork: 20000KiB/s
      - brokers: [1, 2]
        cpu: 3000m
        inboundNetwork: 30000KiB/s
        outboundNetwork: 30000KiB/s

CPU 容量は、次の優先順位の設定値を使用して決定されます。優先順位が最も高いものが最初になります。

  1. Kafka.spec.cruiseControl.brokerCapacity.overrides.cpu: 個々のブローカーのカスタム CPU 容量制限を定義する。
  2. Kafka.cruiseControl.brokerCapacity.cpu: Kafka クラスター内のすべてのブローカーのカスタム CPU 容量制限を定義する。
  3. Kafka.spec.kafka.resources.requests.cpu: Kafka クラスター内のブローカーごとに予約される CPU リソースを定義する。
  4. Kafka.spec.kafka.resources.limits.cpu: Kafka クラスターの各ブローカーが消費できる最大 CPU リソースを定義する。

この優先順位は、Kafka ブローカーの実際の容量制限の決定時に、さまざまな設定値を考慮する順序です。たとえば、ブローカー固有のオーバーライドは、すべてのブローカーの容量制限よりも優先されます。CPU 容量設定がいずれも指定されていない場合、Kafka ブローカーのデフォルトの CPU 容量は 1 CPU コアに設定されます。

詳細は、BrokerCapacity スキーマリファレンス を参照してください。

55.6. logging

Cruise Control には独自の設定可能なロガーがあります。

  • rootLogger.level

Cruise Control では Apache log4j2 ロガー実装が使用されます。

logging プロパティーを使用してロガーおよびロガーレベルを設定します。

ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、カスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j.properties を使用して記述されます。logging.valueFrom.configMapKeyRef.name および logging.valueFrom.configMapKeyRef.key プロパティーはいずれも必須です。Cluster Operator の実行時に、指定された正確なロギング設定を使用する ConfigMap がカスタムリソースを使用して作成され、その後は調整のたびに再作成されます。カスタム ConfigMap を指定しない場合、デフォルトのロギング設定が使用されます。特定のロガー値が設定されていない場合、上位レベルのロガー設定がそのロガーに継承されます。

ここで、inline および external ロギングの例を示します。inline ロギングでは、ルートロガーレベルを指定します。特定のクラスまたはロガーを loggers プロパティーに追加することで、それらのログレベルを設定することもできます。

inline ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
# ...
spec:
  cruiseControl:
    # ...
    logging:
      type: inline
      loggers:
        rootLogger.level: INFO
        logger.exec.name: com.linkedin.kafka.cruisecontrol.executor.Executor 1
        logger.exec.level: TRACE 2
        logger.go.name: com.linkedin.kafka.cruisecontrol.analyzer.GoalOptimizer 3
        logger.go.level: DEBUG 4
    # ...

1
Cruise Control Executor クラスのロガーを作成します。
2
Executor クラスのログレベルを設定します。
3
Cruise Control GoalOptimizer クラスのロガーを作成します。
4
GoalOptimizer クラスのログレベルを設定します。
注記

Cruise Control の問題を調査する場合、通常は rootLoggerDEBUG に変更して、より詳細なログを取得するだけで十分です。ただし、ログレベルを DEBUG に設定すると、大量のログが出力され、パフォーマンスに影響を及ぼす可能性があることに注意してください。

外部ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
# ...
spec:
  cruiseControl:
    # ...
    logging:
      type: external
      valueFrom:
        configMapKeyRef:
          name: customConfigMap
          key: cruise-control-log4j.properties
    # ...

ガベージコレクター (GC)

ガベッジコレクターのロギングは jvmOptions プロパティーを使用して 有効 (または無効) にすることもできます。

55.7. CruiseControlSpec スキーマプロパティー

プロパティープロパティータイプ説明

image

string

Cruise Control Pod に使用されるコンテナーイメージ。イメージ名が明示的に指定されていない場合、イメージ名は Cluster Operator 設定で指定された名前に対応します。Cluster Operator 設定でイメージ名が定義されていない場合は、デフォルト値が使用されます。

tlsSidecar

TlsSidecar

tlsSidecar プロパティーは非推奨になりました。TLS サイドカーの設定。

resources

ResourceRequirements

Cruise Control コンテナー用に予約された CPU およびメモリーリソース。

livenessProbe

Probe

Cruise Control コンテナーの Pod liveness チェック

readinessProbe

Probe

Cruise Control コンテナーの Pod readiness チェック

jvmOptions

JvmOptions

Cruise Control コンテナーの JVM オプション

logging

InlineLoggingExternalLogging

Cruise Control のロギング設定 (Log4j 2)。

template

CruiseControlTemplate

Cruise Control のリソースである Deployments および Pods の生成方法を指定するテンプレート。

brokerCapacity

BrokerCapacity

Cruise Control の brokerCapacity の設定。

config

map

Cruise Control の設定。設定オプションの全リストは、https://github.com/linkedin/cruise-control/wiki/Configurations を参照してください。次の接頭辞を持つプロパティーは設定できません: failed.brokers.zk.path,webserver.http., webserver.api.urlprefix, webserver.session.path, webserver.accesslog., two.step., request.reason.required,metric.reporter.sampler.bootstrap.servers, capacity.config.file, self.healing., ssl., kafka.broker.failure.detection.enable, topic.config.provider.class (例外: ssl.cipher.suites, ssl.protocol, ssl.enabled.protocols, webserver.http.cors.enabled, webserver.http.cors.origin, webserver.http.cors.exposeheaders, webserver.security.enable, webserver.ssl.enable).

metricsConfig

JmxPrometheusExporterMetrics

メトリックの設定。

第56章 CruiseControlTemplate スキーマリファレンス

CruiseControlSpec で使用

プロパティープロパティータイプ説明

deployment

DeploymentTemplate

Cruise Control Deployment のテンプレート。

Pod

PodTemplate

Cruise Control Pods のテンプレート。

apiService

InternalServiceTemplate

Cruise Control API Service のテンプレート。

podDisruptionBudget

PodDisruptionBudgetTemplate

Cruise Control PodDisruptionBudget のテンプレート。

cruiseControlContainer

ContainerTemplate

Cruise Control コンテナーのテンプレート。

tlsSidecarContainer

ContainerTemplate

tlsSidecarContainer プロパティーは非推奨になりました。Cruise Control TLS サイドカーコンテナーのテンプレート。

serviceAccount

ResourceTemplate

Cruise Control サービスアカウントのテンプレート。

第57章 BrokerCapacity スキーマー参照

CruiseControlSpec で使用

プロパティープロパティータイプ説明

disk

string

disk プロパティーは非推奨になりました。Cruise Control のディスク容量設定は非推奨になり、無視されています。今後、ディスクのブローカー容量 (バイト単位) で削除される予定です。標準の OpenShift バイト単位 (K、M、G、または T)、それらのビバイト (2 の累乗) に相当する値 (Ki、Mi、Gi、または Ti)、またはバイト値 (E 表記も使用可能) を使用します。例: 100000M、100000Mi、104857600000、または 1e+11。

cpuUtilization

integer

cpuUtilization プロパティーは非推奨になりました。Cruise Control の CPU 容量設定は非推奨になり、無視されています。今後、CPU リソースの使用率 (0-100) に対するブローカー容量 (バイト単位) で削除される予定です。

cpu

string

コアまたはミリコア単位の CPU リソースのブローカー容量。たとえば、1、1.500、1500m などです。有効な CPU リソースユニットの詳細は、https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu を参照してください。

inboundNetwork

string

インバウンドネットワークスループットのブローカー容量 (バイト/秒)。整数値は、標準の OpenShift バイト単位 (K、M、G) またはそれと同等のビバイト (Ki、Mi、Gi)/秒を使用します。たとえば、10000KiB/s です。

outboundNetwork

string

アウトバウンドネットワークスループットのブローカー容量 (バイト/秒)。整数値は、標準の OpenShift バイト単位 (K、M、G) またはそれと同等のビバイト (Ki、Mi、Gi)/秒を使用します。たとえば、10000KiB/s です。

overrides

BrokerCapacityOverride アレイ

個々のブローカーを上書きします。overrides プロパティーを使用すると、ブローカーごとに異なる容量設定を指定できます。

第58章 BrokerCapacityOverride スキーマリファレンス

使用先: BrokerCapacity

プロパティープロパティータイプ説明

brokers

整数配列

Kafka ブローカー (ブローカー識別子) のリスト。

cpu

string

コアまたはミリコア単位の CPU リソースのブローカー容量。たとえば、1、1.500、1500m などです。有効な CPU リソースユニットの詳細は、https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu を参照してください。

inboundNetwork

string

インバウンドネットワークスループットのブローカー容量 (バイト/秒)。整数値は、標準の OpenShift バイト単位 (K、M、G) またはそれと同等のビバイト (Ki、Mi、Gi)/秒を使用します。たとえば、10000KiB/s です。

outboundNetwork

string

アウトバウンドネットワークスループットのブローカー容量 (バイト/秒)。整数値は、標準の OpenShift バイト単位 (K、M、G) またはそれと同等のビバイト (Ki、Mi、Gi)/秒を使用します。たとえば、10000KiB/s です。

第59章 JmxTransSpec スキーマリファレンス

JmxTransSpec タイプは非推奨になりました。

KafkaSpec で使用

プロパティープロパティータイプ説明

image

string

JmxTrans に使用するイメージ。

outputDefinitions

JmxTransOutputDefinitionTemplate アレイ

後で参照される出力ホストを定義します。これらのプロパティーの詳細は、JmxTransOutputDefinitionTemplate schema reference を参照してください。

logLevel

string

JmxTrans デプロイメントのログレベルを設定します。詳細は、JmxTrans Logging Level を参照してください。

kafkaQueries

JmxTransQueryTemplate アレイ

各ブローカーから読み取るデータを定義するために Kafka ブローカーに送信するクエリー。これらのプロパティーの詳細は、JmxTransQueryTemplate schema reference を参照してください。

resources

ResourceRequirements

予約する CPU およびメモリーリソース。

template

JmxTransTemplate

JmxTrans リソースのテンプレート。

第60章 JmxTransOutputDefinitionTemplate スキーマリファレンス

JmxTransSpec で使用されています。

プロパティープロパティータイプ説明

outputType

string

プッシュされるデータの形式を設定するためのテンプレート。詳細は JmxTrans OutputWriters を参照してください。

host

string

データがプッシュされるリモートホストの DNS/ホスト名。

port

integer

データのプッシュ先となるリモートホストのポート。

flushDelayInSeconds

integer

新しいデータセットをプッシュするまでに JmxTrans が待機する秒数。

typeNames

string array

ワイルドカードクエリーに対応するために、含めるデータをフィルタリングするテンプレート。詳細は、JmxTrans queries を参照してください。

name

string

出力定義の名前を設定するためのテンプレート。これは、クエリーの結果を送信する場所を特定するために使用されます。

第61章 JmxTransQueryTemplate schema reference

JmxTransSpec で使用されています。

プロパティープロパティータイプ説明

targetMBean

string

特定の MBean ではなくワイルドカードを使用する場合、データは複数の MBean から収集されます。ワイルドカードを使用せずに MBean を指定した場合、データは指定された MBean から収集されます。

attributes

string array

対象の MBean のどの属性を含めるべきかを判断します。

outputs

string array

JMX メトリックがプッシュされる場所と、データ形式が定義された spec.kafka.jmxTrans.outputDefinitions に指定された出力定義の名前リスト。

第62章 JmxTransTemplate スキーマリファレンス

JmxTransSpec で使用されています。

プロパティープロパティータイプ説明

deployment

DeploymentTemplate

JmxTrans Deployment のテンプレートです。

Pod

PodTemplate

JmxTrans Pods のテンプレートです。

container

ContainerTemplate

JmxTrans コンテナーのテンプレート。

serviceAccount

ResourceTemplate

JmxTrans サービスアカウントのテンプレート。

第63章 KafkaExporterSpec スキーマリファレンス

KafkaSpec で使用

プロパティープロパティータイプ説明

image

string

Kafka Exporter Pod に使用されるコンテナーイメージ。イメージ名が明示的に指定されていない場合、イメージ名は Cluster Operator 設定で指定されたバージョンに対応します。Cluster Operator 設定でイメージ名が定義されていない場合は、デフォルト値が使用されます。

groupRegex

string

収集するコンシューマーグループを指定する正規表現。デフォルト値は .* です。

topicRegex

string

収集するトピックを指定する正規表現。デフォルト値は .* です。

groupExcludeRegex

string

除外するコンシューマーグループを指定する正規表現。

topicExcludeRegex

string

除外するトピックを指定する正規表現。

resources

ResourceRequirements

予約する CPU およびメモリーリソース。

logging

string

指定の重大度以上のログメッセージのみ。有効なレベル: [infodebugtrace]デフォルトのログレベルは info です。

enableSaramaLogging

boolean

Kafka Exporter によって使用される Go クライアントライブラリーである Sarama ロギングを有効にします。

showAllOffsets

boolean

すべてのコンシューマーグループのオフセット/遅延を表示するか、接続されているコンシューマーグループのみを表示するか。

template

KafkaExporterTemplate

デプロイメントテンプレートおよび Pod のカスタマイズ。

livenessProbe

Probe

Pod の liveness チェック。

readinessProbe

Probe

Pod の readiness チェック。

第64章 KafkaExporterTemplate スキーマリファレンス

KafkaExporterSpec で使用

プロパティープロパティータイプ説明

deployment

DeploymentTemplate

Kafka Exporter Deployment のテンプレート。

Pod

PodTemplate

Kafka Exporter Pod のテンプレート。

service

ResourceTemplate

service プロパティーは非推奨になりました。Kafka Exporter サービスは削除されました。Kafka Exporter Service のテンプレート。

container

ContainerTemplate

Kafka Exporter コンテナーのテンプレート。

serviceAccount

ResourceTemplate

Kafka Exporter サービスアカウントのテンプレート。

第65章 KafkaStatus スキーマリファレンス

Kafka で使用

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

listeners

ListenerStatus array

内部リスナーおよび外部リスナーのアドレス。

kafkaNodePools

UsedNodePoolStatus 配列

この Kafka クラスターによって使用される KafkaNodePool のリスト。

clusterId

string

Kafka クラスター ID。

operatorLastSuccessfulVersion

string

最後に正常に調整を実行した Streams for Apache Kafka Cluster Operator のバージョン。

kafkaVersion

string

クラスターに現在デプロイされている Kafka のバージョン。

kafkaMetadataVersion

string

Kafka クラスターによって現在使用されている KRaft メタデータのバージョン。

kafkaMetadataState

文字列 ([PreKRaft、ZooKeeper、KRaftMigration、KRaftDualWriting、KRaftPostMigration、KRaft] のいずれか)

クラスターのメタデータを保存する場所を定義します。可能な値は、ZooKeeper (メタデータが ZooKeeper に保存されている場合)、KRaftMigration (コントローラーが ZooKeeper に接続され、Zookeeper の移行が有効でコントローラーへの接続情報を持つブローカーがロールされ、メタデータ移行プロセスが実行されている場合)、KRaftDualWriting (メタデータ移行プロセスが終了し、クラスターが二重書き込みモードの場合)、KRaftPostMigration (ブローカーは完全に KRaft ベースであるものの、コントローラーが ZooKeeper から切断されるようにロールされている場合)、PreKRaft (ブローカーとコントローラーが完全に KRaft ベースで、メタデータが KRaft に保存されているが ZooKeeper を削除する必要がある場合)、KRaft (メタデータが KRaft に保存されている場合) です。

第66章 Condition スキーマリファレンス

使用場所: KafkaBridgeStatusKafkaConnectorStatusKafkaConnectStatusKafkaMirrorMaker2StatusKafkaMirrorMakerStatusKafkaNodePoolStatusKafkaRebalanceStatusKafkaStatusKafkaTopicStatusKafkaUserStatusStrimziPodSetStatus

プロパティープロパティータイプ説明

type

string

リソース内の他の条件と区別するために使用される条件の固有識別子。

status

string

条件のステータス (True、False、または Unknown のいずれか)。

lastTransitionTime

string

タイプの条件がある状態から別の状態へと最後に変更した時間。必須形式は、UTC タイムゾーンの 'yyyy-MM-ddTHH:mm:ssZ' です。

reason

string

条件の最後の遷移の理由 (CamelCase の単一の単語)。

message

string

条件の最後の遷移の詳細を示す、人間が判読できるメッセージ。

第67章 ListenerStatus スキーマリファレンス

KafkaStatus で使用

プロパティープロパティータイプ説明

type

string

type プロパティーは非推奨になりました。type プロパティーは使用されなくなりました。同じ値で name プロパティーを使用します。リスナーの名前。

name

string

リスナーの名前。

addresses

ListenerAddress array

このリスナーのアドレスリスト。

bootstrapServers

string

このリスナーを使用して Kafka クラスターに接続するための host:port ペアのコンマ区切りリスト。

証明書

string array

指定のリスナーへの接続時に、サーバーのアイデンティティーを検証するために使用できる TLS 証明書のリスト。tls リスナーと external リスナーに対してのみ設定します。

第68章 ListenerAddress スキーマリファレンス

ListenerStatus で使用

プロパティープロパティータイプ説明

host

string

Kafka ブートストラップサービスの DNS 名または IP アドレス。

port

integer

Kafka ブートストラップサービスのポート。

第69章 UsedNodePoolStatus スキーマリファレンス

KafkaStatus で使用

プロパティープロパティータイプ説明

name

string

この Kafka リソースによって使用される KafkaNodePool の名前。

第70章 KafkaConnect スキーマリファレンス

プロパティープロパティータイプ説明

spec

KafkaConnectSpec

Kafka Connect クラスターの仕様。

status

KafkaConnectStatus

Kafka Connect クラスターのステータス。

第71章 KafkaConnectSpec スキーマリファレンス

KafkaConnect で使用

KafkaConnectSpec スキーマプロパティーの全リスト

Kafka Connect クラスターを設定します。

71.1. config

config プロパティーを使用して、Kafka Connect オプションをキーとして設定します。

値は以下の JSON タイプのいずれかになります。

  • 文字列
  • 数値
  • ブール値

以下のオプションにはデフォルト値があります。

  • group.id、デフォルト値 connect-cluster
  • offset.storage.topic、デフォルト値 connect-cluster-offsets
  • config.storage.topic、デフォルト値 connect-cluster-configs
  • status.storage.topic、デフォルト値 connect-cluster-status
  • key.converter、デフォルト値 org.apache.kafka.connect.json.JsonConverter
  • value.converter、デフォルト値 org.apache.kafka.connect.json.JsonConverter

このようなオプションは、KafkaConnect.spec.config プロパティーにない場合に自動的に設定されます。

例外

Apache Kafka ドキュメント にリストされているオプションを指定および設定できます。

ただし、次の項目に関連するオプションの設定と管理は、Streams for Apache Kafka が行います。これらは変更できません。

  • Kafka クラスターブートストラップアドレス
  • セキュリティー (暗号化、認証、および認可)
  • リスナーと REST インターフェイスの設定
  • プラグインパスの設定

次の接頭辞を持つプロパティーは設定できません。

  • bootstrap.servers
  • consumer.interceptor.classes
  • listeners
  • plugin.path
  • producer.interceptor.classes
  • rest.
  • sasl.
  • security.
  • ssl.

config プロパティーに変更できないオプションが含まれている場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに記録されます。サポートされているその他のすべてのオプションは、Streams for Apache Kafka によって設定されたオプションの次の例外を含め、Kafka Connect に転送されます。

Kafka Connect の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect
spec:
  # ...
  config:
    group.id: my-connect-cluster
    offset.storage.topic: my-connect-cluster-offsets
    config.storage.topic: my-connect-cluster-configs
    status.storage.topic: my-connect-cluster-status
    key.converter: org.apache.kafka.connect.json.JsonConverter
    value.converter: org.apache.kafka.connect.json.JsonConverter
    key.converter.schemas.enable: true
    value.converter.schemas.enable: true
    config.storage.replication.factor: 3
    offset.storage.replication.factor: 3
    status.storage.replication.factor: 3
  # ...

重要

提供された config オブジェクトのキーまたは値は Cluster Operator によって検証されません。無効な設定を指定すると、Kafka Connect クラスターが起動しなかったり、不安定になる可能性があります。この場合、Cluster Operator が新しい設定をすべての Kafka Connect ノードにロールアウトできるように設定を修正します。

71.2. logging

Kafka Connect には独自の設定可能なロガーがあります。

  • connect.root.logger.level
  • log4j.logger.org.reflections

実行中の Kafka Connect プラグインに応じて、さらにロガーが追加されます。

curl リクエストを使用して、Kafka ブローカー Pod から稼働している Kafka Connect ロガーの完全リストを取得します。

curl -s http://<connect-cluster-name>-connect-api:8083/admin/loggers/

Kafka Connect では Apache log4j ロガー実装が使用されます。

logging プロパティーを使用してロガーおよびロガーレベルを設定します。

ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、カスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j.properties を使用して記述されます。logging.valueFrom.configMapKeyRef.name および logging.valueFrom.configMapKeyRef.key プロパティーはいずれも必須です。Cluster Operator の実行時に、指定された正確なロギング設定を使用する ConfigMap がカスタムリソースを使用して作成され、その後は調整のたびに再作成されます。カスタム ConfigMap を指定しない場合、デフォルトのロギング設定が使用されます。特定のロガー値が設定されていない場合、上位レベルのロガー設定がそのロガーに継承されます。ログレベルの詳細は、Apache logging services を参照してください。

ここで、inline および external ロギングの例を示します。inline ロギングでは、ルートロガーレベルを指定します。特定のクラスまたはロガーを loggers プロパティーに追加することで、それらのログレベルを設定することもできます。

inline ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
  # ...
  logging:
    type: inline
    loggers:
      connect.root.logger.level: INFO
      log4j.logger.org.apache.kafka.connect.runtime.WorkerSourceTask: TRACE
      log4j.logger.org.apache.kafka.connect.runtime.WorkerSinkTask: DEBUG
  # ...

注記

ログレベルを DEBUG に設定すると、大量のログが出力され、パフォーマンスに影響を及ぼす可能性があります。

外部ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: connect-logging.log4j
  # ...

設定されていない利用可能なロガーのレベルは OFF に設定されています。

Cluster Operator を使用して Kafka Connect がデプロイされた場合、Kafka Connect のロギングレベルの変更は動的に適用されます。

外部ロギングを使用する場合は、ロギングアペンダーが変更されるとローリング更新がトリガーされます。

ガベージコレクター (GC)

ガベッジコレクターのロギングは jvmOptions プロパティーを使用して 有効 (または無効) にすることもできます。

71.3. KafkaConnectSpec スキーマプロパティー

プロパティープロパティータイプ説明

version

string

Kafka Connect のバージョン。デフォルトは最新バージョンです。バージョンのアップグレードまたはダウングレードに必要なプロセスを理解するには、ユーザードキュメントを参照してください。

replicas

integer

Kafka Connect グループの Pod 数。デフォルトは 3 です。

image

string

Kafka Connect Pod に使用されるコンテナーイメージ。イメージ名が明示的に指定されていない場合は、spec.version 設定に基づいて決定されます。イメージ名は、Cluster Operator 設定内の対応するバージョンに具体的にマッププされます。

bootstrapServers

string

接続するブートストラップサーバー。これは <hostname>:_<port>_ pairs のコンマ区切りリストとして指定する必要があります。

tls

ClientTls

TLS 設定。

認証

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

Kafka Connect の認証設定。

config

map

Kafka Connect の設定。次の接頭辞を持つプロパティーは設定できません: ssl.、sasl.、security.、listeners、plugin.path、rest.、bootstrap.servers、consumer.interceptor.classes、producer.interceptor.classes (ssl.endpoint.identification.algorithm、ssl.cipher.suites、ssl.protocol、ssl.enabled.protocols を除く)

resources

ResourceRequirements

CPU とメモリーリソースおよび要求された初期リソースの上限。

livenessProbe

Probe

Pod の liveness チェック。

readinessProbe

Probe

Pod の readiness チェック。

jvmOptions

JvmOptions

Pod の JVM オプション。

jmxOptions

KafkaJmxOptions

JMX オプション。

logging

InlineLoggingExternalLogging

Kafka Connect のロギング設定。

clientRackInitImage

string

client.rack の初期化に使用される init コンテナーのイメージです。

rack

Rack

client.rack コンシューマー設定として使用されるノードラベルの設定。

tracing

JaegerTracingOpenTelemetryTracing

Kafka Connect でのトレースの設定。

template

KafkaConnectTemplate

Kafka Connect および Kafka Mirror Maker 2 リソースのテンプレート。このテンプレートを使用すると、ユーザーは PodsService、およびその他のサービスの生成方法を指定できます。

externalConfiguration

ExternalConfiguration

Secret または ConfigMap から Kafka Connect Pod にデータを渡し、これを使用してコネクターを設定します。

build

ビルド

Connect コンテナーイメージを構築する方法を設定します。任意です。

metricsConfig

JmxPrometheusExporterMetrics

メトリックの設定。

第72章 ClientTls スキーマリファレンス

使用先: KafkaBridgeSpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec

ClientTls スキーマプロパティーの全リスト

KafkaConnect、KafkaBridge、KafkaMirror、KafkaMirrorMaker2 をクラスターに接続するための TLS 信頼証明書を設定します。

72.1. trustedCertificates

trustedCertificates プロパティーを使用してシークレットのリストを提供する。

72.2. ClientTls スキーマプロパティー

プロパティープロパティータイプ説明

trustedCertificates

CertSecretSource array

TLS 接続の信頼済み証明書。

第73章 KafkaClientAuthenticationTls スキーマリファレンス

使用先: KafkaBridgeSpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec

KafkaClientAuthenticationTls スキーマプロパティーの全リスト

mTLS 認証を設定するには、type プロパティーを値 tls に設定します。mTLS は TLS 証明書を使用して認証します。

73.1. certificateAndKey

証明書は certificateAndKey プロパティーで指定され、常に OpenShift シークレットからロードされます。シークレットでは、公開鍵と秘密鍵の 2 つの鍵を使用して証明書を X509 形式で保存する必要があります。

User Operator によって作成されたシークレットを使用できます。または、認証に使用される鍵で独自の TLS 証明書ファイルを作成し、ファイルから Secret を作成することもできます。

oc create secret generic MY-SECRET \
--from-file=MY-PUBLIC-TLS-CERTIFICATE-FILE.crt \
--from-file=MY-PRIVATE.key
注記

mTLS 認証は、TLS 接続でのみ使用できます。

mTLS 設定の例

authentication:
  type: tls
  certificateAndKey:
    secretName: my-secret
    certificate: my-public-tls-certificate-file.crt
    key: private.key

73.2. KafkaClientAuthenticationTls スキーマプロパティー

typeプロパティーは、KafkaClientAuthenticationTlsタイプと、KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth の使用を区別するための識別子です。KafkaClientAuthenticationTls タイプには tls の値が必要です。

プロパティープロパティータイプ説明

certificateAndKey

CertAndKeySecretSource

証明書と秘密鍵のペアを保持する Secret への参照。

type

string

tls でなければなりません。

第74章 KafkaClientAuthenticationScramSha256 スキーマリファレンス

使用先: KafkaBridgeSpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec

KafkaClientAuthenticationScramSha256 スキーマプロパティーの全リスト

SASL ベースの SCRAM-SHA-256 認証を設定するには、type プロパティーを scram-sha-256 に設定します。SCRAM-SHA-256 認証メカニズムには、ユーザー名とパスワードが必要です。

74.1. username

username プロパティーでユーザー名を指定します。

74.2. passwordSecret

passwordSecret プロパティーで、パスワードが含まれる Secret へのリンクを指定します。

User Operator によって作成されたシークレットを使用できます。

必要に応じて、認証に使用するクリアテキストのパスワードが含まれるテキストファイルを作成できます。

echo -n PASSWORD > MY-PASSWORD.txt

次に、テキストファイルから Secret を作成し、パスワードに独自のフィールド名 (鍵) を設定できます。

oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt

Kafka Connect の SCRAM-SHA-256 クライアント認証の Secret 例

apiVersion: v1
kind: Secret
metadata:
  name: my-connect-secret-name
type: Opaque
data:
  my-connect-password-field: LFTIyFRFlMmU2N2Tm

secretName プロパティーには Secret の名前が含まれ、password プロパティーには Secret 内にパスワードが格納されるキーの名前が含まれます。

重要

password プロパティーには、実際のパスワードを指定しないでください。

Kafka Connect の SASL ベース SCRAM-SHA-256 クライアント認証の設定例

authentication:
  type: scram-sha-256
  username: my-connect-username
  passwordSecret:
    secretName: my-connect-secret-name
    password: my-connect-password-field

74.3. KafkaClientAuthenticationScramSha256 スキーマプロパティー

プロパティープロパティータイプ説明

passwordSecret

PasswordSecretSource

パスワードを保持する Secret への参照。

type

string

scram-sha-256 でなければなりません。

username

string

認証に使用されるユーザー名。

第75章 PasswordSecretSource スキーマリファレンス

使用先: KafkaClientAuthenticationOAuthKafkaClientAuthenticationPlainKafkaClientAuthenticationScramSha256KafkaClientAuthenticationScramSha512

プロパティープロパティータイプ説明

password

string

パスワードが保存される Secret のキーの名前。

secretName

string

パスワードを含むシークレットの名前。

第76章 KafkaClientAuthenticationScramSha512 スキーマリファレンス

使用先: KafkaBridgeSpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec

KafkaClientAuthenticationScramSha512 スキーマプロパティーの全リスト

SASL ベースの SCRAM-SHA-512 認証を設定するには、type プロパティーを scram-sha-512 に設定します。SCRAM-SHA-512 認証メカニズムには、ユーザー名とパスワードが必要です。

76.1. username

username プロパティーでユーザー名を指定します。

76.2. passwordSecret

passwordSecret プロパティーで、パスワードが含まれる Secret へのリンクを指定します。

User Operator によって作成されたシークレットを使用できます。

必要に応じて、認証に使用するクリアテキストのパスワードが含まれるテキストファイルを作成できます。

echo -n PASSWORD > MY-PASSWORD.txt

次に、テキストファイルから Secret を作成し、パスワードに独自のフィールド名 (鍵) を設定できます。

oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt

Kafka Connect の SCRAM-SHA-512 クライアント認証の Secret 例

apiVersion: v1
kind: Secret
metadata:
  name: my-connect-secret-name
type: Opaque
data:
  my-connect-password-field: LFTIyFRFlMmU2N2Tm

secretName プロパティーには Secret の名前が含まれ、password プロパティーには Secret 内にパスワードが格納されるキーの名前が含まれます。

重要

password プロパティーには、実際のパスワードを指定しないでください。

Kafka Connect の SASL ベース SCRAM-SHA-512 クライアント認証の設定例

authentication:
  type: scram-sha-512
  username: my-connect-username
  passwordSecret:
    secretName: my-connect-secret-name
    password: my-connect-password-field

76.3. KafkaClientAuthenticationScramSha512 スキーマプロパティー

プロパティープロパティータイプ説明

passwordSecret

PasswordSecretSource

パスワードを保持する Secret への参照。

type

string

scram-sha-512 でなければなりません。

username

string

認証に使用されるユーザー名。

第77章 KafkaClientAuthenticationPlain スキーマリファレンス

使用先: KafkaBridgeSpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec

KafkaClientAuthenticationPlain スキーマプロパティーの全リスト

SASL ベースの PLAIN 認証を設定するには、type プロパティーを plain に設定します。SASL PLAIN 認証メカニズムには、ユーザー名とパスワードが必要です。

警告

SASL PLAIN メカニズムは、クリアテキストでユーザー名とパスワードをネットワーク全体に転送します。TLS による暗号化が有効になっている場合にのみ SASL PLAIN 認証を使用します。

77.1. username

username プロパティーでユーザー名を指定します。

77.2. passwordSecret

passwordSecret プロパティーで、パスワードが含まれる Secret へのリンクを指定します。

User Operator によって作成されたシークレットを使用できます。

必要に応じて、認証に使用するクリアテキストのパスワードが含まれるテキストファイルを作成します。

echo -n PASSWORD > MY-PASSWORD.txt

次に、テキストファイルから Secret を作成し、パスワードに独自のフィールド名 (鍵) を設定できます。

oc create secret generic MY-CONNECT-SECRET-NAME --from-file=MY-PASSWORD-FIELD-NAME=./MY-PASSWORD.txt

Kafka Connect の PLAIN クライアント認証の Secret 例

apiVersion: v1
kind: Secret
metadata:
  name: my-connect-secret-name
type: Opaque
data:
  my-password-field-name: LFTIyFRFlMmU2N2Tm

secretName プロパティーには Secret の名前が含まれ、password プロパティーには Secret 内にパスワードが格納されるキーの名前が含まれます。

重要

password プロパティーには、実際のパスワードを指定しないでください。

SASL ベースの PLAIN クライアント認証の設定例

authentication:
  type: plain
  username: my-connect-username
  passwordSecret:
    secretName: my-connect-secret-name
    password: my-password-field-name

77.3. KafkaClientAuthenticationPlain スキーマプロパティー

type プロパティーは、KafkaClientAuthenticationPlain タイプと、KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationOAuth の使用を区別するための識別子です。KafkaClientAuthenticationPlain タイプには plain の値が必要です。

プロパティープロパティータイプ説明

passwordSecret

PasswordSecretSource

パスワードを保持する Secret への参照。

type

string

plain でなければなりません。

username

string

認証に使用されるユーザー名。

第78章 KafkaClientAuthenticationOAuth スキーマリファレンス

使用先: KafkaBridgeSpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec

KafkaClientAuthenticationOAuth スキーマプロパティーの全リスト

OAuth クライアント認証を設定するには、type プロパティーを oauth に設定します。

OAuth 認証は、以下のオプションのいずれかを使用して設定できます。

  • クライアント ID およびシークレット
  • クライアント ID およびリフレッシュトークン
  • アクセストークン
  • ユーザー名およびパスワード
  • TLS

クライアント ID およびシークレット

認証で使用されるクライアント ID およびクライアントシークレットとともに、tokenEndpointUri プロパティーで認可サーバーのアドレスを設定できます。OAuth クライアントは OAuth サーバーに接続し、クライアント ID およびシークレットを使用して認証し、Kafka ブローカーとの認証に使用するアクセストークンを取得します。clientSecret プロパティーで、クライアントシークレットを含む Secret へのリンクを指定します。

クライアント ID およびクライアントシークレットを使用した OAuth クライアント認証の例

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  clientSecret:
    secretName: my-client-oauth-secret
    key: client-secret

必要に応じて、scopeaudience を指定できます。

クライアント ID およびリフレッシュトークン

OAuth クライアント ID およびリフレッシュトークンとともに、tokenEndpointUri プロパティーで OAuth サーバーのアドレスを設定できます。OAuth クライアントは OAuth サーバーに接続し、クライアント ID とリフレッシュトークンを使用して認証し、Kafka ブローカーとの認証に使用するアクセストークンを取得します。refreshToken プロパティーで、更新トークンが含まれる Secret へのリンクを指定します。

クライアント ID と更新トークンを使用した OAuth クライアント認証の例

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token

アクセストークン

Kafka ブローカーとの認証に使用されるアクセストークンを直接設定できます。この場合、tokenEndpointUri は指定しません。accessToken プロパティーで、アクセストークンが含まれる Secret へのリンクを指定します。

アクセストークンのみを使用した OAuth クライアント認証の例

authentication:
  type: oauth
  accessToken:
    secretName: my-access-token-secret
    key: access-token

ユーザー名およびパスワード

OAuth のユーザー名とパスワードの設定では、OAuth リソースオーナーのパスワード付与 メカニズムを使用します。このメカニズムは非推奨であり、クライアント認証情報 (ID とシークレット) を使用できない環境での統合を有効にするためにのみサポートされています。アクセス管理システムが別のアプローチをサポートしていない場合、または認証にユーザーアカウントが必要な場合は、ユーザーアカウントの使用が必要になることがあります。

典型的なアプローチは、クライアントアプリケーションを表す認可サーバーに特別なユーザーアカウントを作成することです。次に、ランダムに生成された長いパスワードと非常に限られた権限セットをアカウントに与えます。たとえば、アカウントは Kafka クラスターにのみ接続できますが、他のサービスを使用したり、ユーザーインターフェイスにログインしたりすることはできません。

まず、リフレッシュトークンメカニズムの使用を検討してください。

tokenEndpointUri プロパティーで、認証に使用されるクライアント ID、ユーザー名、およびパスワードと共に、認可サーバーのアドレスを設定できます。OAuth クライアントは OAuth サーバーに接続し、ユーザー名、パスワード、クライアント ID、およびオプションでクライアントシークレットを使用して認証し、Kafka ブローカーでの認証に使用するアクセストークンを取得します。

passwordSecret プロパティーで、パスワードが含まれる Secret へのリンクを指定します。

通常、パブリック OAuth クライアントを使用して clientId も設定する必要があります。機密 OAuth クライアントを使用している場合は、clientSecret も設定する必要があります。

パブリッククライアントでのユーザー名とパスワードを使用した OAuth クライアント認証の例

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  username: my-username
  passwordSecret:
    secretName: my-password-secret-name
    password: my-password-field-name
  clientId: my-public-client-id

機密クライアントでのユーザー名とパスワードを使用した OAuth クライアント認証の例

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  username: my-username
  passwordSecret:
    secretName: my-password-secret-name
    password: my-password-field-name
  clientId: my-confidential-client-id
  clientSecret:
    secretName: my-confidential-client-oauth-secret
    key: client-secret

必要に応じて、scopeaudience を指定できます。

TLS

HTTPS プロトコルを使用して OAuth サーバーにアクセスする場合、信頼される認証局によって署名された証明書を使用し、そのホスト名が証明書に記載されている限り、追加の設定は必要ありません。

OAuth サーバーが自己署名証明書を使用している場合、または信頼されていない認証局によって署名されている場合は、カスタムリソースで信頼済み証明書のリストを設定できます。tlsTrustedCertificates プロパティーには、証明書が保存されるキーの名前を持つシークレットのリストが含まれます。証明書は X509 形式で保存する必要があります。

提供される TLS 証明書の例

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token
  tlsTrustedCertificates:
    - secretName: oauth-server-ca
      certificate: tls.crt

OAuth クライアントはデフォルトで、OAuth サーバーのホスト名が、証明書サブジェクトまたは別の DNS 名のいずれかと一致することを確認します。必要でない場合は、ホスト名の検証を無効にできます。

無効にされた TLS ホスト名の検証例

authentication:
  type: oauth
  tokenEndpointUri: https://sso.myproject.svc:8443/auth/realms/internal/protocol/openid-connect/token
  clientId: my-client-id
  refreshToken:
    secretName: my-refresh-token-secret
    key: refresh-token
  disableTlsHostnameVerification: true

78.1. KafkaClientAuthenticationOAuth スキーマプロパティー

type プロパティーは、KafkaClientAuthenticationOAuth タイプと、KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain の使用を区別するための識別子です。KafkaClientAuthenticationOAuth タイプには oauth の値が必要です。

プロパティープロパティータイプ説明

accessToken

GenericSecretSource

認可サーバーから取得したアクセストークンが含まれる OpenShift シークレットへのリンク。

accessTokenIsJwt

boolean

アクセストークンを JWT として処理すべきかどうかを設定します。認可サーバーが不透明なトークンを返す場合は、false に設定する必要があります。デフォルトは true です。

audience

string

認可サーバーに対して認証を行うときに使用する OAuth オーディエンス。一部の認可サーバーでは、オーディエンスを明示的に設定する必要があります。許可される値は、認可サーバーの設定によります。デフォルトでは、トークンエンドポイントリクエストを実行する場合は audience は指定されません。

clientId

string

Kafka クライアントが OAuth サーバーに対する認証に使用し、トークンエンドポイント URI を使用することができる OAuth クライアント ID。

clientSecret

GenericSecretSource

Kafka クライアントが OAuth サーバーに対する認証に使用し、トークンエンドポイント URI を使用することができる OAuth クライアントシークレットが含まれる OpenShift シークレットへのリンク。

connectTimeoutSeconds

integer

認可サーバーへの接続時のタイムアウト (秒単位)。設定しない場合は、実際の接続タイムアウトは 60 秒になります。

disableTlsHostnameVerification

boolean

TLS ホスト名の検証を有効または無効にします。デフォルト値は false です。

enableMetrics

boolean

OAuth メトリックを有効または無効にします。デフォルト値は false です。

httpRetries

integer

最初の HTTP リクエストが失敗した場合に試行する最大再試行回数。設定されていない場合、デフォルトでは再試行は行われません。

httpRetryPauseMs

integer

失敗した HTTP リクエストを再試行するまでの一時停止。設定されていない場合、デフォルトでは一時停止せず、ただちにリクエストを繰り返します。

includeAcceptHeader

boolean

認可サーバーへのリクエストに Accept ヘッダーを設定するかどうか。デフォルト値は true です。

maxTokenExpirySeconds

integer

アクセストークンの有効期間を指定の秒数に設定または制限します。これは、認可サーバーが不透明なトークンを返す場合に設定する必要があります。

passwordSecret

PasswordSecretSource

パスワードを保持する Secret への参照。

readTimeoutSeconds

integer

認可サーバーへの接続時の読み取りタイムアウト (秒単位)。設定しない場合は、実際の読み取りタイムアウトは 60 秒になります。

refreshToken

GenericSecretSource

認可サーバーからアクセストークンを取得するために使用できるリフレッシュトークンが含まれる OpenShift シークレットへのリンク。

scope

string

認可サーバーに対して認証を行うときに使用する OAuth スコープ。一部の認可サーバーでこれを設定する必要があります。許可される値は、認可サーバーの設定によります。デフォルトでは、トークンエンドポイントリクエストを実行する場合は scope は指定されません。

tlsTrustedCertificates

CertSecretSource array

OAuth サーバーへの TLS 接続の信頼済み証明書。

tokenEndpointUri

string

認可サーバートークンエンドポイント URI。

type

string

oauth でなければなりません。

username

string

認証に使用されるユーザー名。

第79章 JaegerTracing スキーマリファレンス

タイプ JaegerTracing は非推奨になりました。

使用先: KafkaBridgeSpecKafkaConnectSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpec

type プロパティーは、JaegerTracing タイプの使用を OpenTelemetryTracing と区別する識別子です。JaegerTracing タイプには jaeger の値が必要です。

プロパティープロパティータイプ説明

type

string

jaeger でなければなりません。

第80章 OpenTelemetryTracing スキーマリファレンス

使用先: KafkaBridgeSpecKafkaConnectSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpec

type プロパティーは、OpenTelemetryTracing タイプの使用をJaegerTracing と区別する識別子です。タイプ OpenTelemetryTracing の値が opentelemetry である必要があります。

プロパティープロパティータイプ説明

type

string

opentelemetry でなければなりません。

第81章 KafkaConnectTemplate スキーマリファレンス

使用先: KafkaConnectSpecKafkaMirrorMaker2Spec

プロパティープロパティータイプ説明

deployment

DeploymentTemplate

deployment プロパティーは非推奨になりました。Kafka Connect および MirrorMaker 2 オペランドは、Deployment リソースを使用しなくなりました。このフィールドは無視されます。Kafka Connect Deployment のテンプレート。

podSet

ResourceTemplate

Kafka Connect StrimziPodSet リソースのテンプレート。

Pod

PodTemplate

Kafka Connect Pod のテンプレート。

apiService

InternalServiceTemplate

Kafka Connect API Service のテンプレート。

headlessService

InternalServiceTemplate

Kafka Connect ヘッドレス Service のテンプレート。

connectContainer

ContainerTemplate

Kafka Connect コンテナーのテンプレート。

initContainer

ContainerTemplate

Kafka init コンテナーのテンプレート。

podDisruptionBudget

PodDisruptionBudgetTemplate

Kafka Connect PodDisruptionBudget のテンプレート。

serviceAccount

ResourceTemplate

Kafka Connect サービスアカウントのテンプレート。

clusterRoleBinding

ResourceTemplate

Kafka Connect ClusterRoleBinding のテンプレート。

buildPod

PodTemplate

Kafka Connect Build Pods のテンプレート。build Pod は OpenShift でのみ使用されます。

buildContainer

ContainerTemplate

Kafka Connect Build コンテナーのテンプレート。build コンテナーは OpenShift でのみ使用されます。

buildConfig

BuildConfigTemplate

新しいコンテナーイメージをビルドするために使用される Kafka Connect BuildConfig のテンプレート。BuildConfig は OpenShift でのみ使用されます。

buildServiceAccount

ResourceTemplate

Kafka Connect Build サービスアカウントのテンプレート。

jmxSecret

ResourceTemplate

Kafka Connect Cluster JMX 認証の Secret のテンプレートです。

第82章 BuildConfigTemplate スキーマリファレンス

使用先: KafkaConnectTemplate

プロパティープロパティータイプ説明

metadata

MetadataTemplate

PodDisruptionBudgetTemplate リソースに適用するメタデータ。

pullSecret

string

ベースイメージをプルするためのクレデンシャルが含まれる Container Registry Secret。

第83章 ExternalConfiguration スキーマリファレンス

使用先: KafkaConnectSpecKafkaMirrorMaker2Spec

ExternalConfiguration スキーマプロパティーの全リスト

Kafka Connect コネクターの設定オプションを定義する外部ストレージプロパティーを設定します。

ConfigMap またはシークレットを環境変数またはボリュームとして Kafka Connect Pod にマウントできます。ボリュームおよび環境変数は、KafkaConnect.spec または KafkaMirrorMaker2.specexternalConfiguration プロパティーで設定されます。

これが適用されると、コネクターの開発時に環境変数とボリュームを使用できます。

詳細は、外部ソースからの設定値の読み込み を参照してください。

83.1. ExternalConfiguration スキーマプロパティー

プロパティープロパティータイプ説明

env

ExternalConfigurationEnv array

Secret または ConfigMap からのデータを環境変数として Kafka Connect Pod で利用できるようにします。

volumes

ExternalConfigurationVolumeSource array

Secret または ConfigMap からのデータをボリュームとして Kafka Connect Pod で利用できるようにします。

第84章 ExternalConfigurationEnv スキーマリファレンス

ExternalConfiguration で使用

プロパティープロパティータイプ説明

name

string

Kafka Connect Pod に渡される環境変数の名前。環境変数に、KAFKA_ または STRIMZI_ で始まる名前を付けることはできません。

valueFrom

ExternalConfigurationEnvVarSource

Kafka Connect Pod に渡される環境変数の値。Secret または ConfigMap フィールドのいずれかへ参照として渡すことができます。このフィールドでは、Secret または ConfigMap を 1 つだけ指定する必要があります。

第85章 ExternalConfigurationEnvVarSource スキーマリファレンス

ExternalConfigurationEnv で使用

プロパティープロパティータイプ説明

configMapKeyRef

ConfigMapKeySelector

ConfigMap のキーへの参照。

secretKeyRef

SecretKeySelector

Secret のキーへの参照。

第86章 ExternalConfigurationVolumeSource スキーマリファレンス

ExternalConfiguration で使用

プロパティープロパティータイプ説明

configMap

ConfigMapVolumeSource

ConfigMap のキーへの参照。Secret または ConfigMap を 1 つだけ指定する必要があります。

name

string

Kafka Connect Pod に追加されるボリュームの名前。

secret

SecretVolumeSource

Secret のキーへの参照。Secret または ConfigMap を 1 つだけ指定する必要があります。

第87章 Build スキーマリファレンス

使用先: KafkaConnectSpec

Build スキーマプロパティーの全リスト

Kafka Connect デプロイメントの追加コネクターを設定します。

87.1. 出力 (output)

追加のコネクタープラグインを使用して新しいコンテナーイメージをビルドするには、Streams for Apache Kafka に、イメージをプッシュ、保存、プルできるコンテナーレジストリーが必要です。Streams for Apache Kafka は独自のコンテナーレジストリーを実行しないため、レジストリーを用意する必要があります。Streams for Apache Kafka は、プライベートコンテナーレジストリーだけでなく、QuayDocker Hub などのパブリックレジストリーもサポートします。コンテナーレジストリーは、KafkaConnect カスタムリソースの .spec.build.output セクションで設定されます。output 設定は必須で、dockerimagestream の 2 つのタイプをサポートします。

Docker レジストリーの使用

Docker レジストリーを使用するには、typedocker として指定し、image フィールドに新しいコンテナーイメージのフルネームを指定する必要があります。フルネームには以下が含まれる必要があります。

  • レジストリーのアドレス
  • ポート番号 (標準以外のポートでリッスンしている場合)
  • 新しいコンテナーイメージのタグ

有効なコンテナーイメージ名の例:

  • docker.io/my-org/my-image/my-tag
  • quay.io/my-org/my-image/my-tag
  • image-registry.image-registry.svc:5000/myproject/kafka-connect-build:latest

Kafka Connect デプロイメントごとに個別のイメージを使用する必要があります。これは、最も基本的なレベルで異なるタグを使用する可能性があることを意味します。

レジストリーに認証が必要な場合は、pushSecret を使用してレジストリーのクレデンシャルで Secret の名前を設定します。Secret には、kubernetes .io/dockerconfigjson タイプと .dockerconfigjson ファイルを使用して Docker 認証情報を追加します。プライベートレジストリーからイメージをプルする方法の詳細は、Create a Secret based on existing Docker credentials を参照してください。

output 設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      type: docker 1
      image: my-registry.io/my-org/my-connect-cluster:latest 2
      pushSecret: my-registry-credentials 3
  #...

1
(必須) Streams for Apache Kafka で使用される出力のタイプ。
2
(必須) リポジトリーとタグを含む、使用されるイメージのフルネーム。
3
(任意) コンテナーレジストリーのクレデンシャルが含まれるシークレットの名前。

OpenShift ImageStream の使用

Docker の代わりに OpenShift ImageStream を使用して、新しいコンテナーイメージを保存できます。Kafka Connect をデプロイする前に、ImageStream を手動で作成する必要があります。ImageStream を使用するには、typeimagestream に設定し、image プロパティーを使用して ImageStream と使用するタグの名前を指定します。例: my-connect-image-stream:latest

output 設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      type: imagestream 1
      image: my-connect-build:latest 2
  #...

1
(必須) Streams for Apache Kafka で使用される出力のタイプ。
2
(必須) ImageStream およびタグの名前。

87.2. plugins

コネクタープラグインは、特定タイプの外部システムへの接続に必要な実装を定義するファイルのセットです。コンテナーイメージに必要なコネクタープラグインは、KafkaConnect カスタムリソースの .spec.build.plugins プロパティーを使用して設定する必要があります。各コネクタープラグインには、Kafka Connect デプロイメント内で一意となる名前が必要です。さらに、プラグインアーティファクトもリストする必要があります。これらのアーティファクトは、Streams for Apache Kafka によってダウンロードされ、新しいコンテナーイメージに追加され、Kafka Connect デプロイメントで使用されます。コネクタープラグインアーティファクトには、シリアライザーやデシリアライザーなどの追加のコンポーネントを含めることもできます。各コネクタープラグインは、異なるコネクターとそれらの依存関係が適切に サンドボックス化 されるように、個別のディレクトリーにダウンロードされます。各プラグインは、1 つ以上の artifact で設定する必要があります。

2 つのコネクタープラグインを持つ plugins の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins: 1
      - name: connector-1
        artifacts:
          - type: tgz
            url: <url_to_download_connector_1_artifact>
            sha512sum: <SHA-512_checksum_of_connector_1_artifact>
      - name: connector-2
        artifacts:
          - type: jar
            url: <url_to_download_connector_2_artifact>
            sha512sum: <SHA-512_checksum_of_connector_2_artifact>
  #...

1
(必須) コネクタープラグインおよびそれらのアーティファクトのリスト。

Streams for Apache Kafka は、次のタイプのアーティファクトをサポートしています。

  • 直接ダウンロードして使用する JAR ファイル
  • ダウンロードおよび解凍された TGZ アーカイブ
  • ダウンロードおよび解凍された ZIP アーカイブ
  • Maven コーディネートを使用する Maven アーティファクト
  • 直接ダウンロードおよび使用されるその他のアーティファクト
重要

Streams for Apache Kafka は、ダウンロードしたアーティファクトのセキュリティースキャンを実行しません。セキュリティー上の理由から、最初にアーティファクトを手動で検証し、チェックサムの検証を設定して、自動ビルドと Kafka Connect デプロイメントで同じアーティファクトが使用されるようにする必要があります。

JAR アーティファクトの使用

JAR アーティファクトは、コンテナーイメージにダウンロードされ、追加された JAR ファイルを表します。JAR アーティファクトを使用するには、type プロパティーを jar に設定し、url プロパティーを使用してダウンロードする場所を指定します。

さらに、アーティファクトの SHA-512 チェックサムを指定することもできます。指定すると、Streams for Apache Kafka が新しいコンテナーイメージのビルド中にアーティファクトのチェックサムを検証します。

JAR アーティファクトの例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: jar 1
            url: https://my-domain.tld/my-jar.jar 2
            sha512sum: 589...ab4 3
          - type: jar
            url: https://my-domain.tld/my-jar2.jar
  #...

1
(必須) アーティファクトのタイプ。
2
(必須) アーティファクトのダウンロード元 URL。
3
(任意) アーティファクトを検証する SHA-512 チェックサム。

TGZ アーティファクトの使用

TGZ アーティファクトは、Gzip 圧縮を使用して圧縮された TAR アーカイブをダウンロードするために使用されます。TGZ アーティファクトには、複数の異なるファイルで構成されている場合でも、Kafka Connect コネクター全体を含めることができます。TGZ アーティファクトは、新しいコンテナーイメージのビルド時に Streams for Apache Kafka によって自動的にダウンロードおよび展開されます。TGZ アーティファクトを使用するには、type プロパティーを tgz に設定し、url プロパティーを使用してダウンロードする場所を指定します。

さらに、アーティファクトの SHA-512 チェックサムを指定することもできます。指定すると、Streams for Apache Kafka がアーティファクトを展開して新しいコンテナーイメージをビルドする前に、チェックサムを検証します。

TGZ アーティファクトの例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: tgz 1
            url: https://my-domain.tld/my-connector-archive.tgz 2
            sha512sum: 158...jg10 3
  #...

1
(必須) アーティファクトのタイプ。
2
(必須) アーカイブのダウンロード元 URL。
3
(任意) アーティファクトを検証する SHA-512 チェックサム。

ZIP アーティファクトの使用

ZIP アーティファクトは ZIP 圧縮アーカイブのダウンロードに使用されます。前のセクションで説明した TGZ アーティファクトと同じ方法で ZIP アーティファクトを使用します。唯一の違いは、type: tgz ではなく type: zip を指定することです。

Maven アーティファクトの使用

Maven アーティファクトは、コネクタープラグインアーティファクトを Maven コーディネートとして指定するために使用されます。Maven コーディネートは、プラグインアーティファクトおよび依存関係を特定し、Maven リポジトリーから検索および取得できるようにします。

注記

コネクタービルドプロセスがアーティファクトをコンテナーイメージに追加するには、Maven リポジトリーへのアクセス権が必要です。

Maven アーティファクトの例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: maven 1
            repository: https://mvnrepository.com 2
            group: <maven_group> 3
            artifact: <maven_artifact> 4
            version:  <maven_version_number> 5
  #...

1
(必須) アーティファクトのタイプ。
2
(任意) アーティファクトのダウンロード元となる Maven リポジトリー。リポジトリーを指定しないと、デフォルトで Maven Central リポジトリー が使用されます。
3
(必須) Maven グループ ID。
4
(必須) Maven アーティファクトタイプ。
5
(必須) Maven バージョン番号。

other アーティファクトの使用

other アーティファクトは、コンテナーイメージにダウンロードおよび追加されたファイルの種類を表します。結果となるコンテナーイメージのアーティファクトに特定の名前を使用する場合は、fileName フィールドを使用します。ファイル名が指定されていない場合、URL ハッシュを基にファイルの名前が付けられます。

さらに、アーティファクトの SHA-512 チェックサムを指定することもできます。指定すると、Streams for Apache Kafka が新しいコンテナーイメージのビルド中にアーティファクトのチェックサムを検証します。

other アーティファクトの例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
metadata:
  name: my-connect-cluster
spec:
  #...
  build:
    output:
      #...
    plugins:
      - name: my-plugin
        artifacts:
          - type: other  1
            url: https://my-domain.tld/my-other-file.ext  2
            sha512sum: 589...ab4  3
            fileName: name-the-file.ext  4
  #...

1
(必須) アーティファクトのタイプ。
2
(必須) アーティファクトのダウンロード元 URL。
3
(任意) アーティファクトを検証する SHA-512 チェックサム。
4
(任意) 結果となるコンテナーイメージに保存されるファイルの名前。

87.3. Build スキーマのプロパティー

プロパティープロパティータイプ説明

出力 (output)

DockerOutput, ImageStreamOutput

新たにビルドされたイメージの保存先を設定します。必須。

resources

ResourceRequirements

ビルド用に予約する CPU およびメモリーリソース。

plugins

Plugin アレイ

Kafka Connect に追加する必要のあるコネクタープラグインのリスト。必須。

第88章 DockerOutput スキーマリファレンス

Build で使用

type プロパティーは、DockerOutput タイプの使用を、ImageStreamOutput と区別するための識別子です。DockerOutput タイプには docker の値が必要です。

プロパティープロパティータイプ説明

image

string

新たにビルドされたイメージのタグ付けおよびプッシュに使用されるフルネーム。例: quay.io/my-organization/my-custom-connect:latest必須。

pushSecret

string

新たにビルドされたイメージをプッシュするための、クレデンシャルが含まれる Container Registry Secret。

additionalKanikoOptions

string array

新しい Connect イメージをビルドする際に、Kaniko エグゼキューターに渡される追加オプションを設定します。指定できるオプションは --customPlatform、--insecure、--insecure-pull、--insecure-registry、--log-format、--log-timestamp、--registry-mirror、--reproducible、--single-snapshot、--skip-tls-verify、--skip-tls-verify-pull、--skip-tls-verify-registry、--verbosity、--snapshotMode、--use-new-run です。これらのオプションは、Kaniko エグゼキューターが使用される OpenShift でのみ使用されます。OpenShift では無視されます。オプションは、Kaniko GitHub repository に記載されています。このフィールドを変更しても、Kafka Connect イメージのビルドは新たにトリガーされません。

type

string

docker でなければなりません。

第89章 ImageStreamOutput スキーマリファレンス

Build で使用

type プロパティーは、ImageStreamOutput タイプの使用と、DockerOutput を区別するための識別子です。ImageStreamOutput タイプには imagestream の値が必要です。

プロパティープロパティータイプ説明

image

string

新たにビルドされたイメージがプッシュされる ImageStream の名前およびタグ。例: my-custom-connect:latest必須。

type

string

imagestream である必要があります。

第90章 Plugin スキーマリファレンス

Build で使用

プロパティープロパティータイプ説明

name

string

コネクタープラグインの一意名。コネクターアーティファクトが保存されるパスの生成に使用されます。名前は KafkaConnect リソース内で一意である必要があります。この名前は、^[a-z][-_a-z0-9]*[a-z]$ のパターンに従う必要があります。必須。

artifacts

JarArtifact, TgzArtifact, ZipArtifact, MavenArtifact, OtherArtifact アレイ

このコネクタープラグインに属するアーティファクトのリスト。必須。

第91章 JarArtifact スキーマリファレンス

Plugin で使用

プロパティープロパティータイプ説明

url

string

ダウンロードされるアーティファクトの URL。Streams for Apache Kafka は、ダウンロードしたアーティファクトのセキュリティースキャンを実行しません。セキュリティー上の理由から、最初にアーティファクトを手動で検証し、チェックサムの検証を設定して、自動ビルドで同じアーティファクトが使用されるようにする必要があります。jar, zip, tgz および other アーティファクトで必要です。maven アーティファクトタイプには該当しません。

sha512sum

string

アーティファクトの SHA512 チェックサム。任意です。指定すると、新しいコンテナーのビルド時にチェックサムが検証されます。指定のない場合は、ダウンロードしたアーティファクトは検証されません。maven アーティファクトタイプには該当しません。

insecure

boolean

デフォルトでは、TLS を使用する接続を検証して安全かどうかを確認します。使用するサーバー証明書は有効で信頼でき、サーバー名が含まれる必要があります。このオプションを true に設定すると、すべての TLS 検証が無効になり、サーバーが安全ではないと見なされる場合でもアーティファクトがダウンロードされます。

type

string

jar でなければなりません。

第92章 TgzArtifact スキーマリファレンス

Plugin で使用

プロパティープロパティータイプ説明

url

string

ダウンロードされるアーティファクトの URL。Streams for Apache Kafka は、ダウンロードしたアーティファクトのセキュリティースキャンを実行しません。セキュリティー上の理由から、最初にアーティファクトを手動で検証し、チェックサムの検証を設定して、自動ビルドで同じアーティファクトが使用されるようにする必要があります。jar, zip, tgz および other アーティファクトで必要です。maven アーティファクトタイプには該当しません。

sha512sum

string

アーティファクトの SHA512 チェックサム。任意です。指定すると、新しいコンテナーのビルド時にチェックサムが検証されます。指定のない場合は、ダウンロードしたアーティファクトは検証されません。maven アーティファクトタイプには該当しません。

insecure

boolean

デフォルトでは、TLS を使用する接続を検証して安全かどうかを確認します。使用するサーバー証明書は有効で信頼でき、サーバー名が含まれる必要があります。このオプションを true に設定すると、すべての TLS 検証が無効になり、サーバーが安全ではないと見なされる場合でもアーティファクトがダウンロードされます。

type

string

tgz でなければなりません。

第93章 ZipArtifact スキーマリファレンス

Plugin で使用

プロパティープロパティータイプ説明

url

string

ダウンロードされるアーティファクトの URL。Streams for Apache Kafka は、ダウンロードしたアーティファクトのセキュリティースキャンを実行しません。セキュリティー上の理由から、最初にアーティファクトを手動で検証し、チェックサムの検証を設定して、自動ビルドで同じアーティファクトが使用されるようにする必要があります。jar, zip, tgz および other アーティファクトで必要です。maven アーティファクトタイプには該当しません。

sha512sum

string

アーティファクトの SHA512 チェックサム。任意です。指定すると、新しいコンテナーのビルド時にチェックサムが検証されます。指定のない場合は、ダウンロードしたアーティファクトは検証されません。maven アーティファクトタイプには該当しません。

insecure

boolean

デフォルトでは、TLS を使用する接続を検証して安全かどうかを確認します。使用するサーバー証明書は有効で信頼でき、サーバー名が含まれる必要があります。このオプションを true に設定すると、すべての TLS 検証が無効になり、サーバーが安全ではないと見なされる場合でもアーティファクトがダウンロードされます。

type

string

zip でなければなりません。

第94章 MavenArtifact スキーマリファレンス

Plugin で使用

type プロパティーは、MavenArtifact タイプと JarArtifact, TgzArtifact, ZipArtifact, OtherArtifact の使用を区別するための識別子です。MavenArtifact タイプには maven の値が必要です。

プロパティープロパティータイプ説明

repository

string

アーティファクトのダウンロード元となる Maven リポジトリー。maven アーティファクトタイプにのみ適用されます。

group

string

Maven グループ ID。maven アーティファクトタイプにのみ適用されます。

artifact

string

Maven artifact ID。maven アーティファクトタイプにのみ適用されます。

version

string

Maven のバージョン番号。maven アーティファクトタイプにのみ適用されます。

insecure

boolean

デフォルトでは、TLS を使用する接続を検証して安全かどうかを確認します。使用するサーバー証明書は有効で信頼でき、サーバー名が含まれる必要があります。このオプションを true に設定すると、すべての TLS 検証が無効になり、サーバーが安全ではないと見なされる場合でもアーティファクトがダウンロードされます。

type

string

maven でなければなりません。

第95章 OtherArtifact スキーマリファレンス

Plugin で使用

プロパティープロパティータイプ説明

url

string

ダウンロードされるアーティファクトの URL。Streams for Apache Kafka は、ダウンロードしたアーティファクトのセキュリティースキャンを実行しません。セキュリティー上の理由から、最初にアーティファクトを手動で検証し、チェックサムの検証を設定して、自動ビルドで同じアーティファクトが使用されるようにする必要があります。jar, zip, tgz および other アーティファクトで必要です。maven アーティファクトタイプには該当しません。

sha512sum

string

アーティファクトの SHA512 チェックサム。任意です。指定すると、新しいコンテナーのビルド時にチェックサムが検証されます。指定のない場合は、ダウンロードしたアーティファクトは検証されません。maven アーティファクトタイプには該当しません。

fileName

string

保存されるアーティファクトの名前。

insecure

boolean

デフォルトでは、TLS を使用する接続を検証して安全かどうかを確認します。使用するサーバー証明書は有効で信頼でき、サーバー名が含まれる必要があります。このオプションを true に設定すると、すべての TLS 検証が無効になり、サーバーが安全ではないと見なされる場合でもアーティファクトがダウンロードされます。

type

string

other でなければなりません。

第96章 KafkaConnectStatus スキーマリファレンス

KafkaConnect で使用

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

url

string

Kafka Connect コネクターの管理および監視用の REST API エンドポイントの URL。

connectorPlugins

ConnectorPlugin array

この Kafka Connect デプロイメントで使用できるコネクタープラグインのリスト。

labelSelector

string

このリソースを提供する Pod のラベルセレクター。

replicas

integer

このリソースを提供するために現在使用されている Pod の数。

第97章 ConnectorPlugin スキーマリファレンス

使用先: KafkaConnectStatusKafkaMirrorMaker2Status

プロパティープロパティータイプ説明

type

string

コネクタープラグインのタイプ。sink タイプと source タイプを利用できます。

version

string

コネクタープラグインのバージョン。

class

string

コネクタープラグインのクラス。

第98章 KafkaTopic スキーマリファレンス

プロパティープロパティータイプ説明

spec

KafkaTopicSpec

トピックの仕様。

status

KafkaTopicStatus

トピックのステータス。

第99章 KafkaTopicSpec スキーマリファレンス

KafkaTopic で使用

プロパティープロパティータイプ説明

partitions

integer

トピックに存在するパーティション数。この数はトピック作成後に減らすことはできません。トピック作成後に増やすことはできますが、その影響について理解することが重要となります。特にセマンティックパーティションのあるトピックで重要となります。これがない場合、デフォルトは num.partitions のブローカー設定になります。

replicas

integer

トピックのレプリカ数。これがない場合、デフォルトは default.replication.factor のブローカー設定になります。

config

map

トピックの設定。

topicName

string

トピックの名前。これがない場合、デフォルトではトピックの metadata.name に設定されます。トピック名が有効な OpenShift リソース名ではない場合を除き、これを設定しないことが推奨されます。

第100章 KafkaTopicStatus スキーマリファレンス

KafkaTopic で使用

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

topicName

string

トピック名。

topicId

string

トピックの ID。準備完了状態の KafkaTopic の場合は、トピックが削除され、同じ名前で再作成された場合にのみ変更されます。

replicasChange

ReplicasChangeStatus

レプリケーション係数の変更ステータス。

第101章 ReplicasChangeStatus スキーマリファレンス

KafkaTopicStatus で使用

プロパティープロパティータイプ説明

targetReplicas

integer

ユーザーが要求したターゲットレプリカの値。変更が進行中の場合、これは .spec.replicas と異なる場合があります。

state

文字列 ([ongoing, pending] のいずれか)

レプリカ変更操作の現在の状態。変更がリクエストされた場合は pending、変更が Cruise Control に正常に送信された場合は ongoing になります。

message

string

レプリカの変更要求に関連するユーザーへのメッセージ。これには、定期的な調整で消える一時的なエラーメッセージが含まれる場合があります。

sessionId

string

この KafkaTopic リソースに関連するレプリカ変更リクエストのセッション識別子。これは、ステータスが ongoing のレプリカ変更操作を追跡するために Topic Operator によって使用されます。

第102章 KafkaUser スキーマリファレンス

プロパティープロパティータイプ説明

spec

KafkaUserSpec

ユーザーの仕様。

status

KafkaUserStatus

Kafka User のステータス。

第103章 KafkaUserSpec スキーマリファレンス

KafkaUser で使用

プロパティープロパティータイプ説明

認証

KafkaUserTlsClientAuthentication, KafkaUserTlsExternalClientAuthentication, KafkaUserScramSha512ClientAuthentication

この Kafka ユーザーに対して有効になっている認証メカニズム。サポートされる認証メカニズムは、scram-sha-512tls、および tls-external です。

  • SCRAM-sha-512 は、SASL SCRAM-SHA-512 認証情報でシークレットを生成します。
  • TLS は、相互 TLS 認証のユーザー証明書でシークレットを生成します。
  • TLS-external はユーザー証明書を生成しません。ただし、User Operator の外部で生成されるユーザー証明書を使用して相互 TLS 認証を使用するようにユーザーを準備します。このユーザーに設定された ACL およびクォータは CN=<username> 形式で設定されます。

認証は任意です。認証が設定されていない場合には、認証情報は生成されません。ユーザーに設定された ACL およびクォータは、SASL 認証に適した <username> 形式で設定されます。

authorization

KafkaUserAuthorizationSimple

この Kafka ユーザーの認可ルール。

quotas

KafkaUserQuotas

クライアントによって使用されるブローカーリソースを制御する要求のクォータ。ネットワーク帯域幅および要求レートクォータの適用が可能です。Kafka ユーザークォータの Kafka ドキュメントは http://kafka.apache.org/documentation/#design_quotas を参照してください。

template

KafkaUserTemplate

Kafka User Secrets の生成方法を指定するテンプレート。

第104章 KafkaUserTlsClientAuthentication スキーマリファレンス

KafkaUserSpec で使用

type プロパティーは KafkaUserTlsClientAuthentication タイプと、KafkaUserTlsExternalClientAuthentication, KafkaUserScramSha512ClientAuthentication の使用を区別するための識別子です。KafkaUserTlsClientAuthentication タイプには tls の値が必要です。

プロパティープロパティータイプ説明

type

string

tls でなければなりません。

第105章 KafkaUserTlsExternalClientAuthentication スキーマリファレンス

KafkaUserSpec で使用

type プロパティーは KafkaUserTlsExternalClientAuthentication タイプと KafkaUserTlsClientAuthentication, KafkaUserScramSha512ClientAuthentication の使用を区別するための識別子です。KafkaUserTlsExternalClientAuthentication タイプには tls-external の値が必要です。

プロパティープロパティータイプ説明

type

string

tls-external でなければなりません。

第106章 KafkaUserScramSha512ClientAuthentication スキーマリファレンス

KafkaUserSpec で使用

type プロパティーは KafkaUserScramSha512ClientAuthentication タイプと KafkaUserTlsClientAuthentication, KafkaUserTlsExternalClientAuthentication の使用を区別するための識別子です。KafkaUserScramSha512ClientAuthentication タイプには scram-sha-512 の値が必要です。

プロパティープロパティータイプ説明

password

Password

ユーザーのパスワードを指定します。設定されていない場合、新規パスワードは User Operator によって生成されます。

type

string

scram-sha-512 でなければなりません。

第107章 Password スキーマリファレンス

使用先: KafkaUserScramSha512ClientAuthentication

プロパティープロパティータイプ説明

valueFrom

PasswordSource

パスワードを読み取る必要のあるシークレット。

第108章 PasswordSource スキーマリファレンス

使用先: Password

プロパティープロパティータイプ説明

secretKeyRef

SecretKeySelector

リソースの namespace で Secret のキーを選択します。

第109章 KafkaUserAuthorizationSimple スキーマリファレンス

KafkaUserSpec で使用

type プロパティーは、KafkaUserAuthorizationSimple タイプを使用する際に、今後追加される可能性のある他のサブタイプと区別する識別子です。KafkaUserAuthorizationSimple タイプには simple の値が必要です。

プロパティープロパティータイプ説明

type

string

simple でなければなりません。

ACL

AclRule array

このユーザーに適用される必要のある ACL ルールのリスト。

第110章 AclRule スキーマリファレンス

KafkaUserAuthorizationSimple で使用

AclRule スキーマプロパティーの全リスト

110.1. AclRule スキーマのプロパティー

プロパティープロパティータイプ説明

host

string

ACL ルールに記述されているアクションを許可または拒否するホスト。

operation

string ([Read、Write、Delete、Alter、Describe、All、IdempotentWrite、ClusterAction、Create、AlterConfigs、DescribeConfigs] のいずれか)

operation プロパティーは非推奨になったため、spec.authorization.acls[*].operations を使用して設定する必要があります。許可または拒否される操作。サポートされる操作: Read、Write、Create、Delete、Alter、Describe、ClusterAction、AlterConfigs、DescribeConfigs、IdempotentWrite、All

operations

string ([Read, Write, Delete, Alter, Describe, All, IdempotentWrite, ClusterAction, Create, AlterConfigs, DescribeConfigs] のいずれか 1 つ以上) array

許可または拒否される操作の一覧。サポートされる操作: Read、Write、Create、Delete、Alter、Describe、ClusterAction、AlterConfigs、DescribeConfigs、IdempotentWrite、All

resource

AclRuleTopicResourceAclRuleGroupResourceAclRuleClusterResourceAclRuleTransactionalIdResource

指定の ACL ルールが適用されるリソースを示します。

type

string ([allow、deny] のいずれか)

ルールのタイプ。現在サポートされているタイプは allow のみです。allow タイプの ACL ルールを使用すると、ユーザーは指定した操作を実行できます。デフォルト値は allow です。

第111章 AclRuleTopicResource スキーマリファレンス

AclRule で使用

type プロパティーは、AclRuleTopicResource タイプを使用する際に AclRuleGroupResourceAclRuleClusterResourceAclRuleTransactionalIdResource タイプと区別する識別子です。AclRuleTopicResource タイプには topic の値が必要です。

プロパティープロパティータイプ説明

type

string

topic でなければなりません。

name

string

指定の ACL ルールが適用されるリソースの名前。patternType フィールドと組み合わせて、接頭辞のパターンを使用できます。

patternType

string ([prefix、literal] のいずれか)

リソースフィールドで使用されるパターンを指定します。サポートされるタイプは literalprefix です。literal パターンタイプでは、リソースフィールドは完全なトピック名の定義として使用されます。prefix パターンタイプでは、リソース名は接頭辞としてのみ使用されます。デフォルト値は literal です。

第112章 AclRuleGroupResource スキーマリファレンス

AclRule で使用

type プロパティーは、AclRuleGroupResource タイプを使用する際に AclRuleTopicResourceAclRuleClusterResourceAclRuleTransactionalIdResource タイプと区別する識別子です。AclRuleGroupResource タイプには group の値が必要です。

プロパティープロパティータイプ説明

type

string

group でなければなりません。

name

string

指定の ACL ルールが適用されるリソースの名前。patternType フィールドと組み合わせて、接頭辞のパターンを使用できます。

patternType

string ([prefix、literal] のいずれか)

リソースフィールドで使用されるパターンを指定します。サポートされるタイプは literalprefix です。literal パターンタイプでは、リソースフィールドは完全なトピック名の定義として使用されます。prefix パターンタイプでは、リソース名は接頭辞としてのみ使用されます。デフォルト値は literal です。

第113章 AclRuleClusterResource スキーマリファレンス

AclRule で使用

type プロパティーは、AclRuleClusterResource タイプを使用する際に AclRuleTopicResourceAclRuleGroupResourceAclRuleTransactionalIdResource タイプと区別する識別子です。AclRuleClusterResource タイプには cluster の値が必要です。

プロパティープロパティータイプ説明

type

string

cluster でなければなりません。

第114章 AclRuleTransactionalIdResource スキーマリファレンス

AclRule で使用

type プロパティーは、AclRuleTransactionalIdResource タイプを使用する際に AclRuleTopicResourceAclRuleGroupResourceAclRuleClusterResource タイプと区別する識別子です。AclRuleTransactionalIdResource タイプには transactionalId の値が必要です。

プロパティープロパティータイプ説明

type

string

transactionalId でなければなりません。

name

string

指定の ACL ルールが適用されるリソースの名前。patternType フィールドと組み合わせて、接頭辞のパターンを使用できます。

patternType

string ([prefix、literal] のいずれか)

リソースフィールドで使用されるパターンを指定します。サポートされるタイプは literalprefix です。literal パターンタイプでは、リソースフィールドはフルネームの定義として使用されます。prefix パターンタイプでは、リソース名は接頭辞としてのみ使用されます。デフォルト値は literal です。

第115章 KafkaUserQuotas スキーマリファレンス

KafkaUserSpec で使用

KafkaUserQuotas スキーマプロパティーの全リスト

Kafka では、ユーザーは quotas を設定してクライアントによるリソースの使用を制御できます。

115.1. quotas

クライアントを設定して、以下のタイプのクォータを使用できます。

  • ネットワーク使用率 クォータは、クォータを共有するクライアントの各グループのバイトレートしきい値を指定します。
  • CPU 使用率クォータは、クライアントからのブローカー要求のウィンドウを指定します。ウィンドウは、クライアントが要求を行う時間の割合 (パーセント) です。クライアントはブローカーの I/O スレッドおよびネットワークスレッドで要求を行います。
  • パーティション変更クォータは、クライアントが 1 秒ごとに実行できるパーティション変更の数を制限します。

パーティション変更クォータにより、Kafka クラスターが同時にトピック操作に圧倒されないようにします。パーティション変更は、次のタイプのユーザー要求に応答して発生します。

  • 新しいトピック用のパーティションの作成
  • 既存のトピックへのパーティションの追加
  • トピックからのパーティションの削除

パーティション変更クオータを設定して、ユーザー要求に対して変更が許可されるレートを制御できます。

Kafka クライアントにクォータを使用することは、さまざまな状況で役に立つ場合があります。レートが高すぎる要求を送信する Kafka プロデューサーを誤って設定したとします。このように設定が間違っていると、他のクライアントにサービス拒否を引き起こす可能性があるため、問題のあるクライアントはブロックする必要があります。ネットワーク制限クォータを使用すると、他のクライアントがこの状況の著しい影響を受けないようにすることが可能です。

Streams for Apache Kafka では、ユーザーレベルのクォータはサポートされますが、クライアントレベルのクォータはサポートされません。

Kafka ユーザークォータの設定例

spec:
  quotas:
    producerByteRate: 1048576
    consumerByteRate: 2097152
    requestPercentage: 55
    controllerMutationRate: 10

Kafka ユーザークォータの詳細は Apache Kafka ドキュメント を参照してください。

115.2. KafkaUserQuotas スキーマプロパティー

プロパティープロパティータイプ説明

consumerByteRate

integer

グループのクライアントにスロットリングが適用される前に、各クライアントグループがブローカーから取得できる最大 bps (ビット毎秒) のクオータ。ブローカーごとに定義されます。

controllerMutationRate

number

トピックの作成リクエスト、パーティションの作成リクエスト、トピックの削除リクエストで変更が受け入れられるレートのクオータ。レートは、作成または削除されたパーティション数で累積されます。

producerByteRate

integer

グループのクライアントにスロットリングが適用される前に、各クライアントグループがブローカーにパブリッシュできる最大 bps (ビット毎秒) のクオータ。ブローカーごとに定義されます。

requestPercentage

integer

各クライアントグループの最大 CPU 使用率のクォータ。ネットワークと I/O スレッドの比率 (パーセント) として指定。

第116章 KafkaUserTemplate スキーマリファレンス

KafkaUserSpec で使用

KafkaUserTemplate スキーマプロパティーの全リスト

User Operator によって作成されるシークレットの追加ラベルおよびアノテーションを指定します。

KafkaUserTemplate を示す例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaUser
metadata:
  name: my-user
  labels:
    strimzi.io/cluster: my-cluster
spec:
  authentication:
    type: tls
  template:
    secret:
      metadata:
        labels:
          label1: value1
        annotations:
          anno1: value1
  # ...

116.1. KafkaUserTemplate スキーマのプロパティー

プロパティープロパティータイプ説明

secret

ResourceTemplate

KafkaUser リソースのテンプレート。テンプレートを使用すると、ユーザーはパスワードまたは TLS 証明書のある Secret の生成方法を指定できます。

第117章 KafkaUserStatus スキーマリファレンス

KafkaUser で使用

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

username

string

ユーザー名。

secret

string

認証情報が保存される Secret の名前。

第118章 KafkaMirrorMaker スキーマリファレンス

KafkaMirrorMaker タイプが非推奨になりました。代わりに KafkaMirrorMaker2 を使用してください。

プロパティープロパティータイプ説明

spec

KafkaMirrorMakerSpec

Kafka MirrorMaker の仕様。

status

KafkaMirrorMakerStatus

Kafka MirrorMaker のステータス。

第119章 KafkaMirrorMakerSpec スキーマリファレンス

KafkaMirrorMaker で使用

KafkaMirrorMakerSpec スキーマプロパティーの全リスト

Kafka MirrorMaker を設定します。

119.1. include

include プロパティーを使用して、Kafka MirrorMaker がソースからターゲット Kafka クラスターにミラーリングするトピックのリストを設定します。

このプロパティーでは、簡単な単一のトピック名から複雑なパターンまですべての正規表現が許可されます。たとえば、A|B を使用してトピック A と B をミラーリングでき、* を使用してすべてのトピックをミラーリングできます。また、複数の正規表現をコンマで区切って Kafka MirrorMaker に渡すこともできます。

119.2. KafkaMirrorMakerConsumerSpec および KafkaMirrorMakerProducerSpec

KafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec を使用して、ソース (コンシューマー) クラスターとターゲット (プロデューサー) クラスターを設定します。

Kafka MirrorMaker は常に 2 つの Kafka クラスター (ソースおよびターゲット) と連携します。接続を確立するため、ソースおよびターゲット Kafka クラスターのブートストラップサーバーは HOSTNAME:PORT ペアのコンマ区切りリストとして指定されます。それぞれのコンマ区切りリストには、HOSTNAME:PORT ペアとして指定された 1 つ以上の Kafka ブローカーまたは Kafka ブローカーを示す 1 つの Service が含まれます。

119.3. logging

Kafka MirrorMaker には、独自の設定可能なロガーがあります。

  • mirrormaker.root.logger

MirrorMaker では Apache log4j ロガー実装が使用されます。

logging プロパティーを使用してロガーおよびロガーレベルを設定します。

ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、カスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j.properties を使用して記述されます。logging.valueFrom.configMapKeyRef.name および logging.valueFrom.configMapKeyRef.key プロパティーはいずれも必須です。Cluster Operator の実行時に、指定された正確なロギング設定を使用する ConfigMap がカスタムリソースを使用して作成され、その後は調整のたびに再作成されます。カスタム ConfigMap を指定しない場合、デフォルトのロギング設定が使用されます。特定のロガー値が設定されていない場合、上位レベルのロガー設定がそのロガーに継承されます。ログレベルの詳細は、Apache logging services を参照してください。

ここで、inline および external ロギングの例を示します。inline ロギングでは、ルートロガーレベルを指定します。特定のクラスまたはロガーを loggers プロパティーに追加することで、それらのログレベルを設定することもできます。

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker
spec:
  # ...
  logging:
    type: inline
    loggers:
      mirrormaker.root.logger: INFO
      log4j.logger.org.apache.kafka.clients.NetworkClient: TRACE
      log4j.logger.org.apache.kafka.common.network.Selector: DEBUG
  # ...
注記

ログレベルを DEBUG に設定すると、大量のログが出力され、パフォーマンスに影響を及ぼす可能性があります。

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: mirror-maker-log4j.properties
  # ...

ガベージコレクター (GC)

ガベッジコレクターのロギングは jvmOptions プロパティーを使用して 有効 (または無効) にすることもできます。

119.4. KafkaMirrorMakerSpec スキーマプロパティー

プロパティープロパティータイプ説明

version

string

Kafka MirrorMaker のバージョン。デフォルトは最新バージョンです。バージョンのアップグレードまたはダウングレードに必要なプロセスを理解するには、ドキュメントを参照してください。

replicas

integer

Deployment の Pod 数。

image

string

Kafka MirrorMaker Pod に使用されるコンテナーイメージ。イメージ名が明示的に指定されていない場合は、spec.version 設定に基づいて決定されます。イメージ名は、Cluster Operator 設定内の対応するバージョンに具体的にマッププされます。

consumer

KafkaMirrorMakerConsumerSpec

ソースクラスターの設定。

producer

KafkaMirrorMakerProducerSpec

ターゲットクラスターの設定。

resources

ResourceRequirements

予約する CPU およびメモリーリソース。

ホワイトリスト

string

whitelist プロパティーは非推奨となり、spec.include を使用して設定する必要があります。ミラーリングに含まれるトピックのリスト。このオプションは、Java スタイルの正規表現を使用するあらゆる正規表現を許可します。式 A|B を使用して、A と B という名前の 2 つのトピックをミラーリングすることができます。または、特殊なケースとして、正規表現 * を使用してすべてのトピックをミラーリングできます。複数の正規表現をコンマで区切って指定することもできます。

include

string

ミラーリングに含まれるトピックのリスト。このオプションは、Java スタイルの正規表現を使用するあらゆる正規表現を許可します。式 A|B を使用して、A と B という名前の 2 つのトピックをミラーリングすることができます。または、特殊なケースとして、正規表現 * を使用してすべてのトピックをミラーリングできます。複数の正規表現をコンマで区切って指定することもできます。

jvmOptions

JvmOptions

Pod の JVM オプション。

logging

InlineLoggingExternalLogging

MirrorMaker のロギング設定。

metricsConfig

JmxPrometheusExporterMetrics

メトリックの設定。

tracing

JaegerTracingOpenTelemetryTracing

Kafka MirrorMaker でのトレースの設定。

template

KafkaMirrorMakerTemplate

Kafka MirrorMaker のリソースである Deployments および Pods の生成方法を指定するテンプレート。

livenessProbe

Probe

Pod の liveness チェック。

readinessProbe

Probe

Pod の readiness チェック。

第120章 KafkaMirrorMakerConsumerSpec スキーマリファレンス

KafkaMirrorMakerSpec で使用

KafkaMirrorMakerConsumerSpec スキーマプロパティーの全リスト

MirrorMaker コンシューマーを設定します。

120.1. numStreams

consumer.numStreams プロパティーを使用して、コンシューマーのストリームの数を設定します。

コンシューマースレッドの数を増やすと、ミラーリングトピックのスループットを増やすことができます。コンシューマースレッドは、Kafka MirrorMaker に指定されたコンシューマーグループに属します。トピックパーティションはコンシューマースレッド全体に割り当てられ、メッセージが並行して消費されます。

120.2. offsetCommitInterval

consumer.offsetCommitInterval プロパティーを使用して、コンシューマーのオフセット自動コミット間隔を設定します。

Kafka MirrorMaker によってソース Kafka クラスターのデータが消費された後に、オフセットがコミットされる通常の間隔を指定できます。間隔はミリ秒単位で設定され、デフォルト値は 60,000 です。

120.3. config

consumer.config プロパティーを使用して、コンシューマーの Kafka オプションをキーとして設定します。

値は以下の JSON タイプのいずれかになります。

  • 文字列
  • 数値
  • ブール値

例外

コンシューマー向けの Apache Kafka 設定ドキュメント に記載されているオプションを指定および設定できます。

ただし、次の項目に関連するオプションの設定と管理は、Streams for Apache Kafka が行います。これらは変更できません。

  • Kafka クラスターブートストラップアドレス
  • セキュリティー (暗号化、認証、および認可)
  • コンシューマーグループ ID
  • インターセプター

次の接頭辞を持つプロパティーは設定できません。

  • bootstrap.servers
  • group.id
  • interceptor.classes
  • sasl.
  • security.
  • ssl.

config プロパティーに変更できないオプションが含まれている場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに記録されます。サポートされているその他のすべてのオプションは、Streams for Apache Kafka によって設定されたオプションの次の例外を含め、MirrorMaker に転送されます。

重要

提供された config オブジェクトのキーまたは値は Cluster Operator によって検証されません。無効な設定を指定すると、MirrorMaker クラスターが起動しなかったり、不安定になる可能性があります。この場合、Cluster Operator が新しい設定をすべての MirrorMaker ノードにロールアウトできるように設定を修正します。

120.4. groupId

consumer.groupId プロパティーを使用して、コンシューマーにコンシューマーグループ ID を設定します。

Kafka MirrorMaker は Kafka コンシューマーを使用してメッセージを消費し、他の Kafka コンシューマークライアントと同様に動作します。ソース Kafka クラスターから消費されるメッセージは、ターゲット Kafka クラスターにミラーリングされます。パーティションの割り当てには、コンシューマーがコンシューマーグループの一部である必要があるため、グループ ID が必要です。

120.5. KafkaMirrorMakerConsumerSpec スキーマプロパティー

プロパティープロパティータイプ説明

numStreams

integer

作成するコンシューマーストリームスレッドの数を指定します。

offsetCommitInterval

integer

オフセットの自動コミット間隔をミリ秒単位で指定します。デフォルト値は 60000 です。

bootstrapServers

string

Kafka クラスターへの最初の接続を確立するための host:port ペアのリスト。

groupId

string

このコンシューマーが属するコンシューマーグループを識別する一意の文字列。

認証

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

クラスターに接続するための認証設定。

config

map

MirrorMaker コンシューマーの設定。次の接頭辞を持つプロパティーは設定できません: ssl.、bootstrap.servers、group.id、sasl.、security.、interceptor.classes (次の例外を除く: ssl.endpoint.identification.algorithm、ssl.cipher.suites、ssl.protocol、ssl.enabled.protocols).

tls

ClientTls

MirrorMaker をクラスターに接続するための TLS 設定。

第121章 KafkaMirrorMakerProducerSpec スキーマリファレンス

KafkaMirrorMakerSpec で使用

KafkaMirrorMakerProducerSpec スキーマプロパティーの全リスト

MirrorMaker プロデューサーを設定します。

121.1. abortOnSendFailure

producer.abortOnSendFailure プロパティーを使用して、プロデューサーからメッセージ送信の失敗を処理する方法を設定します。

デフォルトでは、メッセージを Kafka MirrorMaker から Kafka クラスターに送信する際にエラーが発生した場合、以下が行われます。

  • Kafka MirrorMaker コンテナーが OpenShift で終了します。
  • その後、コンテナーが再作成されます。

abortOnSendFailure オプションを false に設定した場合、メッセージ送信エラーは無視されます。

121.2. config

producer.config プロパティーを使用して、プロデューサーの Kafka オプションをキーとして設定します。

値は以下の JSON タイプのいずれかになります。

  • 文字列
  • 数値
  • ブール値

例外

プロデューサー向けの Apache Kafka 設定ドキュメント に記載されているオプションを指定および設定できます。

ただし、次の項目に関連するオプションの設定と管理は、Streams for Apache Kafka が行います。これらは変更できません。

  • Kafka クラスターブートストラップアドレス
  • セキュリティー (暗号化、認証、および認可)
  • インターセプター

次の接頭辞を持つプロパティーは設定できません。

  • bootstrap.servers
  • interceptor.classes
  • sasl.
  • security.
  • ssl.

config プロパティーに変更できないオプションが含まれている場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに記録されます。サポートされているその他のすべてのオプションは、Streams for Apache Kafka によって設定されたオプションの次の例外を含め、MirrorMaker に転送されます。

重要

提供された config オブジェクトのキーまたは値は Cluster Operator によって検証されません。無効な設定を指定すると、MirrorMaker クラスターが起動しなかったり、不安定になる可能性があります。この場合、Cluster Operator が新しい設定をすべての MirrorMaker ノードにロールアウトできるように設定を修正します。

121.3. KafkaMirrorMakerProducerSpec スキーマプロパティー

プロパティープロパティータイプ説明

bootstrapServers

string

Kafka クラスターへの最初の接続を確立するための host:port ペアのリスト。

abortOnSendFailure

boolean

送信失敗時に MirrorMaker が終了するように設定するフラグ。デフォルト値は true です。

認証

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

クラスターに接続するための認証設定。

config

map

MirrorMaker プロデューサーの設定。次の接頭辞を持つプロパティーは設定できません: ssl.、bootstrap.servers、sasl.、security.、interceptor.classes (次の例外を除く: ssl.endpoint.identification.algorithm、ssl.cipher.suites、ssl.protocol、ssl.enabled.protocols).

tls

ClientTls

MirrorMaker をクラスターに接続するための TLS 設定。

第122章 KafkaMirrorMakerTemplate スキーマリファレンス

KafkaMirrorMakerSpec で使用

プロパティープロパティータイプ説明

deployment

DeploymentTemplate

Kafka MirrorMaker Deployment のテンプレート。

Pod

PodTemplate

Kafka MirrorMaker Pods のテンプレート。

podDisruptionBudget

PodDisruptionBudgetTemplate

Kafka MirrorMaker PodDisruptionBudget のテンプレート。

mirrorMakerContainer

ContainerTemplate

Kafka MirrorMaker コンテナーのテンプレート。

serviceAccount

ResourceTemplate

Kafka MirrorMaker サービスアカウントのテンプレート。

第123章 KafkaMirrorMakerStatus スキーマリファレンス

KafkaMirrorMaker で使用

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

labelSelector

string

このリソースを提供する Pod のラベルセレクター。

replicas

integer

このリソースを提供するために現在使用されている Pod の数。

第124章 KafkaBridge スキーマリファレンス

プロパティープロパティータイプ説明

spec

KafkaBridgeSpec

Kafka Bridge の仕様。

status

KafkaBridgeStatus

Kafka Bridge のステータス。

第125章 KafkaBridgeSpec スキーマリファレンス

KafkaBridge で使用

KafkaBridgeSpec スキーマプロパティーの全リスト

Kafka Bridge クラスターを設定します。

設定オプションは以下に関連しています。

  • Kafka クラスターブートストラップアドレス
  • セキュリティー (暗号化、認証、および認可)
  • コンシューマー設定
  • プロデューサーの設定
  • HTTP の設定

125.1. logging

Kafka Bridge には独自の設定可能なロガーがあります。

  • rootLogger.level
  • logger.<operation-id>

logger.<operation-id> ロガーの <operation-id> を置き換えると、特定の操作のログレベルを設定できます。

  • createConsumer
  • deleteConsumer
  • subscribe
  • unsubscribe
  • poll
  • assign
  • commit
  • send
  • sendToPartition
  • seekToBeginning
  • seekToEnd
  • seek
  • healthy
  • ready
  • openapi

各操作は OpenAPI 仕様にしたがって定義されます。各操作にはブリッジが HTTP クライアントから要求を受信する対象の API エンドポイントがあります。各エンドポイントのログレベルを変更すると、送信および受信 HTTP リクエストに関する詳細なログ情報を作成できます。

各ロガーはその 名前http.openapi.operation.<operation-id> として割り当てる必要があります。たとえば、send 操作ロガーのロギングレベルを設定すると、以下が定義されます。

logger.send.name = http.openapi.operation.send
logger.send.level = DEBUG

Kafka Bridge では Apache log4j2 ロガー実装が使用されます。ロガーは log4j2.properties ファイルで定義されます。このファイルには healthy および ready エンドポイントの以下のデフォルト設定が含まれています。

logger.healthy.name = http.openapi.operation.healthy
logger.healthy.level = WARN
logger.ready.name = http.openapi.operation.ready
logger.ready.level = WARN

その他すべての操作のログレベルは、デフォルトで INFO に設定されます。

logging プロパティーを使用してロガーおよびロガーレベルを設定します。

ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、カスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。logging.valueFrom.configMapKeyRef.name および logging.valueFrom.configMapKeyRef.key プロパティーはいずれも必須です。namekey が設定されていない場合は、デフォルトのロギングが使用されます。ConfigMap 内では、ロギング設定は log4j.properties を使用して記述されます。ログレベルの詳細は、Apache logging services を参照してください。

ここで、inline および external ロギングの例を示します。

inline ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
spec:
  # ...
  logging:
    type: inline
    loggers:
      rootLogger.level: INFO
      # enabling DEBUG just for send operation
      logger.send.name: "http.openapi.operation.send"
      logger.send.level: DEBUG
  # ...

外部ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
spec:
  # ...
  logging:
    type: external
    valueFrom:
      configMapKeyRef:
        name: customConfigMap
        key: bridge-logj42.properties
  # ...

設定されていない利用可能なロガーのレベルは OFF に設定されています。

Cluster Operator を使用して Kafka Bridge がデプロイされた場合、Kafka Bridge のロギングレベルの変更は動的に適用されます。

外部ロギングを使用する場合は、ロギングアペンダーが変更されるとローリング更新がトリガーされます。

ガベージコレクター (GC)

ガベッジコレクターのロギングは jvmOptions プロパティーを使用して 有効 (または無効) にすることもできます。

125.2. KafkaBridgeSpec スキーマプロパティー

プロパティープロパティータイプ説明

replicas

integer

Deployment の Pod 数。デフォルトは 1 です。

image

string

Kafka Bridge Pod に使用されるコンテナーイメージ。イメージ名が明示的に指定されていないと、イメージ名は Cluster Operator 設定で指定されたイメージに対応します。Cluster Operator 設定でイメージ名が定義されていない場合は、デフォルト値が使用されます。

bootstrapServers

string

Kafka クラスターへの最初の接続を確立するための host:port ペアのリスト。

tls

ClientTls

Kafka Bridge をクラスターに接続するための TLS 設定。

認証

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

クラスターに接続するための認証設定。

http

KafkaBridgeHttpConfig

HTTP 関連の設定。

adminClient

KafkaBridgeAdminClientSpec

Kafka AdminClient 関連の設定。

consumer

KafkaBridgeConsumerSpec

Kafka コンシューマーに関連する設定。

producer

KafkaBridgeProducerSpec

Kafka プロデューサーに関連する設定。

resources

ResourceRequirements

予約する CPU およびメモリーリソース。

jvmOptions

JvmOptions

現時点でサポートされていない Pod の JVM オプション。

logging

InlineLoggingExternalLogging

Kafka Bridge のロギング設定。

clientRackInitImage

string

client.rack の初期化に使用される init コンテナーのイメージです。

rack

Rack

client.rack コンシューマー設定として使用されるノードラベルの設定。

enableMetrics

boolean

Kafka Bridge のメトリックを有効にします。デフォルトは false です。

livenessProbe

Probe

Pod の liveness チェック。

readinessProbe

Probe

Pod の readiness チェック。

template

KafkaBridgeTemplate

Kafka Bridge リソースのテンプレート。テンプレートを使用すると、ユーザーは DeploymentPod の生成方法を指定できます。

tracing

JaegerTracingOpenTelemetryTracing

Kafka Bridge でのトレースの設定。

第126章 KafkaBridgeHttpConfig スキーマリファレンス

KafkaBridgeSpec で使用

KafkaBridgeHttpConfig スキーマプロパティーの全リスト

Kafka Bridge の Kafka クラスターへの HTTP アクセスを設定します。

デフォルトの HTTP 設定では、8080 番ポートで Kafka Bridge をリッスンします。

126.1. cors

HTTP プロパティーは、Kafka クラスターへの HTTP アクセスを有効にする他に、CORS (Cross-Origin Resource Sharing) により Kafka Bridge のアクセス制御を有効化または定義する機能を提供します。CORS は、複数のオリジンから指定のリソースにブラウザーでアクセスできるようにする HTTP メカニズムです。CORS を設定するには、許可されるリソースオリジンのリストと、HTTP のアクセス方法を定義します。オリジンには、URL または Java 正規表現を使用できます。

Kafka Bridge HTTP の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  # ...
  http:
    port: 8080
    cors:
      allowedOrigins: "https://strimzi.io"
      allowedMethods: "GET,POST,PUT,DELETE,OPTIONS,PATCH"
  # ...

126.2. KafkaBridgeHttpConfig スキーマプロパティー

プロパティープロパティータイプ説明

port

integer

サーバーがリッスンするポート。

cors

KafkaBridgeHttpCors

HTTP Bridge の CORS 設定。

第127章 KafkaBridgeHttpCors スキーマリファレンス

KafkaBridgeHttpConfig で使用

プロパティープロパティータイプ説明

allowedOrigins

string array

許可されるオリジンのリスト。Java の正規表現を使用できます。

allowedMethods

string array

許可される HTTP メソッドのリスト。

第128章 KafkaBridgeAdminClientSpec スキーマプロパティー

KafkaBridgeSpec で使用

プロパティープロパティータイプ説明

config

map

ブリッジによって作成された AdminClient インスタンスに使用される Kafka AdminClient 設定。

第129章 KafkaBridgeConsumerSpec スキーマリファレンス

KafkaBridgeSpec で使用

KafkaBridgeConsumerSpec スキーマプロパティーの全リスト

Kafka Bridge のコンシューマーオプションを鍵として設定します。

値は以下の JSON タイプのいずれかになります。

  • 文字列
  • 数値
  • ブール値

例外

コンシューマー向けの Apache Kafka 設定ドキュメント に記載されているオプションを指定および設定できます。

ただし、次の項目に関連するオプションの設定と管理は、Streams for Apache Kafka が行います。これらは変更できません。

  • Kafka クラスターブートストラップアドレス
  • セキュリティー (暗号化、認証、および認可)
  • コンシューマーグループ ID

次の接頭辞を持つプロパティーは設定できません。

  • bootstrap.servers
  • group.id
  • sasl.
  • security.
  • ssl.

config プロパティーに変更できないオプションが含まれている場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに記録されます。サポートされているその他のすべてのオプションは、Streams for Apache Kafka によって設定されたオプションの次の例外を含め、Kafka Bridge に転送されます。

Kafka Bridge コンシューマーの設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  # ...
  consumer:
    config:
      auto.offset.reset: earliest
      enable.auto.commit: true
    # ...

重要

config オブジェクトのキーまたは値は Cluster Operator によって検証されません。無効な設定を指定すると、Kafka Bridge デプロイメントが起動しなかったり、不安定になる可能性があります。この場合、Cluster Operator が新しい設定をすべての Kafka Bridge ノードにロールアウトできるように設定を修正します。

129.1. KafkaBridgeConsumerSpec スキーマプロパティー

プロパティープロパティータイプ説明

config

map

ブリッジによって作成されたコンシューマーインスタンスに使用される Kafka コンシューマーの設定。次の接頭辞を持つプロパティーは設定できません: ssl.、bootstrap.servers、group.id、sasl.、security. (次の例外を除く: ssl.endpoint.identification.algorithm、ssl.cipher.suites、ssl.protocol、ssl.enabled.protocols).

第130章 KafkaBridgeProducerSpec スキーマリファレンス

KafkaBridgeSpec で使用

KafkaBridgeProducerSpec スキーマプロパティーの全リスト

Kafka Bridge のプロデューサーオプションを鍵として設定します。

値は以下の JSON タイプのいずれかになります。

  • 文字列
  • 数値
  • ブール値

例外

プロデューサー向けの Apache Kafka 設定ドキュメント に記載されているオプションを指定および設定できます。

ただし、次の項目に関連するオプションの設定と管理は、Streams for Apache Kafka が行います。これらは変更できません。

  • Kafka クラスターブートストラップアドレス
  • セキュリティー (暗号化、認証、および認可)
  • コンシューマーグループ ID

次の接頭辞を持つプロパティーは設定できません。

  • bootstrap.servers
  • sasl.
  • security.
  • ssl.

config プロパティーに変更できないオプションが含まれている場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに記録されます。サポートされているその他のすべてのオプションは、Streams for Apache Kafka によって設定されたオプションの次の例外を含め、Kafka Bridge に転送されます。

Kafka Bridge プロデューサーの設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaBridge
metadata:
  name: my-bridge
spec:
  # ...
  producer:
    config:
      acks: 1
      delivery.timeout.ms: 300000
    # ...

重要

config オブジェクトのキーまたは値は Cluster Operator によって検証されません。無効な設定を指定すると、Kafka Bridge デプロイメントが起動しなかったり、不安定になる可能性があります。この場合、Cluster Operator が新しい設定をすべての Kafka Bridge ノードにロールアウトできるように設定を修正します。

130.1. KafkaBridgeProducerSpec スキーマプロパティー

プロパティープロパティータイプ説明

config

map

ブリッジによって作成されたプロデューサーインスタンスに使用される Kafka プロデューサーの設定。次の接頭辞を持つプロパティーは設定できません: ssl.、bootstrap.servers、sasl.、security. (次の例外を除く: ssl.endpoint.identification.algorithm、ssl.cipher.suites、ssl.protocol、ssl.enabled.protocols).

第131章 KafkaBridgeTemplate スキーマリファレンス

KafkaBridgeSpec で使用

プロパティープロパティータイプ説明

deployment

DeploymentTemplate

Kafka Bridge Deployment のテンプレート。

Pod

PodTemplate

Kafka Bridge Pod のテンプレート。

apiService

InternalServiceTemplate

Kafka Bridge API Service のテンプレート。

podDisruptionBudget

PodDisruptionBudgetTemplate

Kafka Bridge PodDisruptionBudget のテンプレート。

bridgeContainer

ContainerTemplate

Kafka Bridge コンテナーのテンプレート。

clusterRoleBinding

ResourceTemplate

Kafka Bridge ClusterRoleBinding のテンプレート。

serviceAccount

ResourceTemplate

Kafka Bridge サービスアカウントのテンプレート。

initContainer

ContainerTemplate

Kafka Bridge init コンテナーのテンプレート。

第132章 KafkaBridgeStatus スキーマリファレンス

KafkaBridge で使用

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

url

string

外部クライアントアプリケーションが Kafka Bridge にアクセスできる URL。

labelSelector

string

このリソースを提供する Pod のラベルセレクター。

replicas

integer

このリソースを提供するために現在使用されている Pod の数。

第133章 KafkaConnector スキーマリファレンス

プロパティープロパティータイプ説明

spec

KafkaConnectorSpec

Kafka Connector の仕様。

status

KafkaConnectorStatus

Kafka Connector のステータス。

第134章 KafkaConnectorSpec スキーマリファレンス

KafkaConnector で使用

プロパティープロパティータイプ説明

class

string

Kafka Connector のクラス。

tasksMax

integer

Kafka Connector のタスクの最大数。

autoRestart

AutoRestart

コネクターとタスク設定の自動再起動。

config

map

Kafka Connector の設定。次のプロパティーは設定できません: connector.class、tasks.max

pause

boolean

pause プロパティーは非推奨になりました。Streams for Apache Kafka 2.6 で非推奨になりました。代わりに state を使用してください。コネクターを一時停止するかどうか。デフォルトは false です。

state

string ([running、paused、stopped] のいずれか)

コネクターのあるべき状態。デフォルトは running です。

第135章 AutoRestart スキーマリファレンス

使用先: KafkaConnectorSpecKafkaMirrorMaker2ConnectorSpec

AutoRestart スキーマプロパティーの完全なリスト

FAILED 状態のコネクターとタスクの自動再起動を設定します。

有効にすると、バックオフアルゴリズムによって、失敗した各コネクターとそのタスクに自動再起動が適用されます。増分バックオフ間隔は、n * n + n という式を使用して計算されます。n は以前の再起動の数を表します。この間隔は、最大 60 分に制限されます。したがって、再起動はすぐに行われ、その後 2、6、12、20、30、42、56 分後に再起動され、その後は 60 分間隔で再起動されます。デフォルトでは、Streams for Apache Kafka はコネクターとそのタスクの再起動を無限に開始します。ただし、maxRestarts プロパティーを使用して、再起動の最大数を設定できます。maxRestarts が設定されており、最後の再起動試行後もコネクターがまだ失敗する場合は、コネクターを手動で再起動する必要があります。

Kafka Connect コネクターの場合、KafkaConnector リソースの autoRestart プロパティーを使用して、失敗したコネクターとタスクの自動再起動を有効にします。

Kafka Connect の失敗したコネクターの自動再起動の有効化

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
  name: my-source-connector
spec:
  autoRestart:
    enabled: true

必要に応じて、再起動の回数に最大の上限を設定することもできます。

Kafka Connect の障害が発生したコネクターの自動再起動を、再起動回数に上限を指定して有効にする

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnector
metadata:
  name: my-source-connector
spec:
  autoRestart:
    enabled: true
    maxRestarts: 10

MirrorMaker 2 の場合、KafkaMirrorMaker2 リソースのコネクターの autoRestart プロパティーを使用して、失敗したコネクターとタスクの自動再起動を有効にします。

MirrorMaker 2 の障害が発生したコネクターの自動再起動を有効にする

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaMirrorMaker2
metadata:
  name: my-mm2-cluster
spec:
  mirrors:
  - sourceConnector:
      autoRestart:
        enabled: true
      # ...
    heartbeatConnector:
      autoRestart:
        enabled: true
      # ...
    checkpointConnector:
      autoRestart:
        enabled: true
      # ...

135.1. AutoRestart スキーマプロパティー

プロパティープロパティータイプ説明

enabled

boolean

失敗したコネクターとタスクの自動再起動を有効にするか無効にするか。

maxRestarts

integer

Operator が試行するコネクターの再起動の最大数。この制限に達した後もコネクターが障害状態のままである場合は、ユーザーが手動で再起動する必要があります。デフォルトは、再起動の無制限数です。

第136章 KafkaConnectorStatus スキーマリファレンス

KafkaConnector で使用

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

autoRestart

AutoRestartStatus

自動再起動のステータス。

connectorStatus

map

Kafka Connect REST API によって報告されるコネクターのステータス。

tasksMax

integer

Kafka Connector のタスクの最大数。

topics

string array

Kafka Connector によって使用されるトピックのリスト。

第137章 AutoRestartStatus スキーマリファレンス

使用先: KafkaConnectorStatusKafkaMirrorMaker2Status

プロパティープロパティータイプ説明

count

integer

コネクターまたはタスクが再起動された回数。

connectorName

string

再始動されるコネクターの名前。

lastRestartTimestamp

string

自動再起動が最後に試行された時刻。必須形式は、UTC タイムゾーンの 'yyyy-MM-ddTHH:mm:ssZ' です。

第138章 KafkaMirrorMaker2 スキーマリファレンス

プロパティープロパティータイプ説明

spec

KafkaMirrorMaker2Spec

Kafka MirrorMaker 2 クラスターの仕様。

status

KafkaMirrorMaker2Status

Kafka MirrorMaker 2 クラスターのステータス。

第139章 KafkaMirrorMaker2Spec スキーマリファレンス

KafkaMirrorMaker2 で使用

プロパティープロパティータイプ説明

version

string

Kafka Connect のバージョン。デフォルトは最新バージョンです。バージョンのアップグレードまたはダウングレードに必要なプロセスを理解するには、ユーザードキュメントを参照してください。

replicas

integer

Kafka Connect グループの Pod 数。デフォルトは 3 です。

image

string

Kafka Connect Pod に使用されるコンテナーイメージ。イメージ名が明示的に指定されていない場合は、spec.version 設定に基づいて決定されます。イメージ名は、Cluster Operator 設定内の対応するバージョンに具体的にマッププされます。

connectCluster

string

Kafka Connect に使用されるクラスターエイリアス。値は、spec.clusters 設定で指定された ターゲット の Kafka クラスターのエイリアスと一致する必要があります。ターゲット Kafka クラスターは、内部トピックの基礎となる Kafka Connect フレームワークによって使用されます。

clusters

KafkaMirrorMaker2ClusterSpec array

ミラーリング用の Kafka クラスター。

mirrors

KafkaMirrorMaker2MirrorSpec array

MirrorMaker 2 コネクターの設定。

resources

ResourceRequirements

CPU とメモリーリソースおよび要求された初期リソースの上限。

livenessProbe

Probe

Pod の liveness チェック。

readinessProbe

Probe

Pod の readiness チェック。

jvmOptions

JvmOptions

Pod の JVM オプション。

jmxOptions

KafkaJmxOptions

JMX オプション。

logging

InlineLoggingExternalLogging

Kafka Connect のロギング設定。

clientRackInitImage

string

client.rack の初期化に使用される init コンテナーのイメージです。

rack

Rack

client.rack コンシューマー設定として使用されるノードラベルの設定。

tracing

JaegerTracingOpenTelemetryTracing

Kafka Connect でのトレースの設定。

template

KafkaConnectTemplate

Kafka Connect および Kafka Mirror Maker 2 リソースのテンプレート。このテンプレートを使用すると、ユーザーは PodsService、およびその他のサービスの生成方法を指定できます。

externalConfiguration

ExternalConfiguration

Secret または ConfigMap から Kafka Connect Pod にデータを渡し、これを使用してコネクターを設定します。

metricsConfig

JmxPrometheusExporterMetrics

メトリックの設定。

第140章 KafkaMirrorMaker2ClusterSpec スキーマリファレンス

KafkaMirrorMaker2Spec で使用

KafkaMirrorMaker2ClusterSpec スキーマプロパティーの全リスト

ミラーリング用の Kafka クラスターを設定します。

140.1. config

Kafka のオプションを設定するには、config プロパティーを使用します。

Streams for Apache Kafka によって直接管理されないプロパティーに限り、標準の Apache Kafka 設定を指定できます。

TLS バージョンの特定の 暗号スイート を使用するクライアント接続に、許可された ssl プロパティーを設定 することができます。また、ssl.endpoint.identification.algorithm プロパティーを設定して、ホスト名の検証を有効または無効にすることもできます。

140.2. KafkaMirrorMaker2ClusterSpec スキーマプロパティー

プロパティープロパティータイプ説明

alias

string

Kafka クラスターの参照に使用されるエイリアス。

bootstrapServers

string

Kafka クラスターへの接続を確立するための host:port ペアのコンマ区切りリスト。

tls

ClientTls

MirrorMaker 2 コネクターをクラスターに接続するための TLS 設定。

認証

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha256, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

クラスターに接続するための認証設定。

config

map

MirrorMaker 2 クラスター設定。次の接頭辞を持つプロパティーは設定できません: ssl.、sasl.、security.、listeners、plugin.path、rest.、bootstrap.servers、consumer.interceptor.classes、producer.interceptor.classes (ssl.endpoint.identification.algorithm、ssl.cipher.suites、ssl.protocol、ssl.enabled.protocols を除く)

第141章 KafkaMirrorMaker2MirrorSpec スキーマリファレンス

KafkaMirrorMaker2Spec で使用

プロパティープロパティータイプ説明

sourceCluster

string

Kafka MirrorMaker 2 コネクターによって使用されるソースクラスターのエイリアス。エイリアスは spec.clusters にあるリストのクラスターと一致する必要があります。

targetCluster

string

Kafka MirrorMaker 2 コネクターによって使用されるターゲットクラスターのエイリアス。エイリアスは spec.clusters にあるリストのクラスターと一致する必要があります。

sourceConnector

KafkaMirrorMaker2ConnectorSpec

Kafka MirrorMaker 2 ソースコネクターの仕様。

heartbeatConnector

KafkaMirrorMaker2ConnectorSpec

Kafka MirrorMaker 2 ハートビートコネクターの仕様。

checkpointConnector

KafkaMirrorMaker2ConnectorSpec

Kafka MirrorMaker 2 チェックポイントコネクターの仕様。

topicsPattern

string

ミラーリングするトピックに一致する正規表現 (例: "topic1|topic2|topic3")。コンマ区切りリストもサポートされます。

topicsBlacklistPattern

string

topicsBlacklistPattern プロパティーは非推奨となり、.spec.mirrors.topicsExcludePattern を使用して設定する必要があります。ミラーリングから除外するトピックに一致する正規表現。コンマ区切りリストもサポートされます。

topicsExcludePattern

string

ミラーリングから除外するトピックに一致する正規表現。コンマ区切りリストもサポートされます。

groupsPattern

string

ミラーリングされるコンシューマーグループに一致する正規表現。コンマ区切りリストもサポートされます。

groupsBlacklistPattern

string

groupsBlacklistPattern プロパティーは非推奨となり、.spec.mirrors.groupsExcludePattern を使用して設定する必要があります。ミラーリングから除外するコンシューマーグループに一致する正規表現。コンマ区切りリストもサポートされます。

groupsExcludePattern

string

ミラーリングから除外するコンシューマーグループに一致する正規表現。コンマ区切りリストもサポートされます。

第142章 KafkaMirrorMaker2ConnectorSpec スキーマリファレンス

KafkaMirrorMaker2MirrorSpec で使用

プロパティープロパティータイプ説明

tasksMax

integer

Kafka Connector のタスクの最大数。

config

map

Kafka Connector の設定。次のプロパティーは設定できません: connector.class、tasks.max

autoRestart

AutoRestart

コネクターとタスク設定の自動再起動。

pause

boolean

pause プロパティーは非推奨になりました。Streams for Apache Kafka 2.6 で非推奨になりました。代わりに state を使用してください。コネクターを一時停止するかどうか。デフォルトは false です。

state

string ([running、paused、stopped] のいずれか)

コネクターのあるべき状態。デフォルトは running です。

第143章 KafkaMirrorMaker2Status スキーマリファレンス

KafkaMirrorMaker2 で使用

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

url

string

Kafka Connect コネクターの管理および監視用の REST API エンドポイントの URL。

autoRestartStatuses

AutoRestartStatus 配列

MirrorMaker 2 コネクターの自動再起動ステータスのリスト。

connectorPlugins

ConnectorPlugin array

この Kafka Connect デプロイメントで使用できるコネクタープラグインのリスト。

connectors

map array

Kafka Connect REST API によって報告される、MirrorMaker 2 コネクターのステータスのリスト。

labelSelector

string

このリソースを提供する Pod のラベルセレクター。

replicas

integer

このリソースを提供するために現在使用されている Pod の数。

第144章 KafkaRebalance スキーマリファレンス

プロパティープロパティータイプ説明

spec

KafkaRebalanceSpec

Kafka のリバランス (再分散) の仕様。

status

KafkaRebalanceStatus

Kafka のリバランス (再分散) のステータス。

第145章 KafkaRebalanceSpec スキーマリファレンス

KafkaRebalance で使用

プロパティープロパティータイプ説明

mode

string ([remove-brokers、full、add-brokers] のいずれか)

リバランスを実行するモード。サポートされているモードは fulladd-brokersremove-brokers です。指定しない場合、full モードがデフォルトで使用されます。

  • full モードでは、クラスター内のすべてのブローカーでリバランスが実行されます。
  • add-brokers モードは、クラスターをスケールアップした後に使用して、一部のレプリカを新しく追加されたブローカーに移動できます。
  • remove-brokers モードは、クラスターをスケールダウンして削除するブローカーからレプリカを移動する前に使用できます。

brokers

整数配列

スケールアップの場合に新しく追加されたブローカーのリスト、またはリバランスに使用するためにスケールダウンの場合に削除されるブローカーのリスト。このリストは、リバランスモードの add-brokers および removed-brokers でのみ使用できます。これは、full モードで無視されます。

goals

string array

リバランスプロポーザルの生成および実行に使用されるゴールのリスト (優先度順)。サポートされるゴールは https://github.com/linkedin/cruise-control#goals を参照してください。空のゴールリストを指定すると、default.goals Cruise Control 設定パラメーターに宣言されたゴールが使用されます。

skipHardGoalCheck

boolean

最適化プロポーザルの生成で、Kafka CR に指定されたハードゴールのスキップを許可するかどうか。これは、これらのハードゴールの一部が原因で分散ソリューションが検索できない場合に便利です。デフォルトは false です。

rebalanceDisk

boolean

ブローカー内のディスク分散を有効にし、同じブローカーのディスク間でディスク領域の使用率を分散します。ディスクが複数割り当てられた JBOD ストレージを使用する Kafka デプロイメントにのみ適用されます。有効にすると、ブローカー間の分散は無効になります。デフォルトは false です。

excludedTopics

string

一致するトピックが最適化プロポーザルの計算から除外される正規表現。この正規表現は java.util.regex.Pattern クラスによって解析されます。サポートされる形式の詳細は、このクラスのドキュメントを参照してください。

concurrentPartitionMovementsPerBroker

integer

各ブローカーに出入りする継続中であるパーティションレプリカの移動の上限。デフォルトは 5 です。

concurrentIntraBrokerPartitionMovements

integer

各ブローカー内のディスク間で継続中のパーティションレプリカ移動の上限。デフォルトは 2 です。

concurrentLeaderMovements

integer

継続中のパーティションリーダーシップ移動の上限。デフォルトは 1000 です。

replicationThrottle

integer

レプリカの移動に使用される帯域幅の上限 (バイト/秒単位)。デフォルトでは制限はありません。

replicaMovementStrategies

string array

生成された最適化プロポーザルでのレプリカ移動の実行順序を決定するために使用されるストラテジークラス名のリスト。デフォルトでは、生成された順序でレプリカの移動が実行される BaseReplicaMovementStrategy が使用されます。

第146章 KafkaRebalanceStatus スキーマリファレンス

KafkaRebalance で使用

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

sessionId

string

この KafkaRebalance リソースに関する Cruise Control へのリクエストのセッション識別子。これは、継続中のリバランス操作の状態を追跡するために、Kafka Rebalance operator によって使用されます。

optimizationResult

map

最適化の結果を示す JSON オブジェクト。

第147章 KafkaNodePool スキーマリファレンス

プロパティープロパティータイプ説明

spec

KafkaNodePoolSpec

KafkaNodePool の仕様。

status

KafkaNodePoolStatus

KafkaNodePool のステータス。

第148章 KafkaNodePoolSpec スキーマリファレンス

使用場所: KafkaNodePool

プロパティープロパティータイプ説明

replicas

integer

プール内の Pod の数。

storage

EphemeralStoragePersistentClaimStorageJbodStorage

ストレージの設定 (ディスク)。更新はできません。

roles

string ([controller, broker] の 1 つ以上) array

KRaft モードが有効な場合に、このプール内のノードが持つロール。サポートされている値は 'broker' と 'controller' です。このフィールドは必須です。KRaft モードが無効な場合に使用できる値は Broker です。

resources

ResourceRequirements

予約する CPU およびメモリーリソース。

jvmOptions

JvmOptions

Pod の JVM オプション。

template

KafkaNodePoolTemplate

プールリソースのテンプレート。このテンプレートを使用すると、ユーザーはこのプールに属するリソースの生成方法を指定できます。

第149章 KafkaNodePoolTemplate スキーマリファレンス

使用場所: KafkaNodePoolSpec

プロパティープロパティータイプ説明

podSet

ResourceTemplate

Kafka StrimziPodSet リソースのテンプレート。

Pod

PodTemplate

Kafka Pod のテンプレート。

perPodService

ResourceTemplate

OpenShift の外部からアクセスするために使用される Pod ごとの Kafka Services のテンプレート。

perPodRoute

ResourceTemplate

OpenShift の外部からアクセスするために使用される Kafka の Pod ごとの Routes のテンプレート。

perPodIngress

ResourceTemplate

OpenShift の外部からアクセスするために使用される Kafka の Pod ごとの Ingress のテンプレート。

persistentVolumeClaim

ResourceTemplate

すべての Kafka PersistentVolumeClaims のテンプレート。

kafkaContainer

ContainerTemplate

Kafka ブローカーコンテナーのテンプレート。

initContainer

ContainerTemplate

Kafka init コンテナーのテンプレート。

第150章 KafkaNodePoolStatus スキーマリファレンス

使用場所: KafkaNodePool

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

nodeIds

整数配列

このプール内の Kafka ノードによって使用されるノード ID。

clusterId

string

Kafka クラスター ID。

roles

string ([controller, broker] の 1 つ以上) array

Streams for Apache Kafka 2.7 で追加されました。このプールに現在割り当てられているロール。

replicas

integer

このリソースを提供するために現在使用されている Pod の数。

labelSelector

string

このリソースを提供する Pod のラベルセレクター。

第151章 StrimziPodSet スキーマリファレンス

StrimziPodSet スキーマプロパティーの完全なリスト

重要

StrimziPodSet は、Streams for Apache Kafka の内部リソースです。情報は参照用途としてのみ提供されています。エラーが発生する可能性があるため、StrimziPodSet リソースを作成、変更、または削除しないでください。

151.1. StrimziPodSet スキーマのプロパティー

プロパティープロパティータイプ説明

spec

StrimziPodSetSpec

StrimziPodSet の仕様。

status

StrimziPodSetStatus

StrimziPodSet のステータス。

第152章 StrimziPodSetSpec スキーマリファレンス

使用場所: StrimziPodSet

プロパティープロパティータイプ説明

selector

LabelSelector

Selector は、この StrimziPodSet によって管理されるすべての Pod に一致するラベルクエリーです。matchLabels のみがサポートされます。matchExpressions が設定されている場合は無視されます。

pods

Map array

この StrimziPodSet で管理される Pod。

第153章 StrimziPodSetStatus スキーマリファレンス

使用場所: StrimziPodSet

プロパティープロパティータイプ説明

conditions

Condition array

ステータス条件のリスト。

observedGeneration

integer

最後に Operator によって調整された CRD の生成。

pods

integer

この StrimziPodSet リソースで管理される Pod の数。

readyPods

integer

この StrimziPodSet リソースで管理され、準備ができている Pod の数。

currentPods

integer

現在のリビジョンを持つ StrimziPodSet リソースで管理されている Pod の数。

付録A サブスクリプションの使用

Streams for Apache Kafka は、ソフトウェアサブスクリプションを通じて提供されます。サブスクリプションを管理するには、Red Hat カスタマーポータルでアカウントにアクセスします。

アカウントへのアクセス

  1. access.redhat.com に移動します。
  2. アカウントがない場合は作成します。
  3. アカウントにログインします。

サブスクリプションのアクティベート

  1. access.redhat.com に移動します。
  2. My Subscriptions に移動します。
  3. Activate a subscription に移動し、16 桁のアクティベーション番号を入力します。

Zip および Tar ファイルのダウンロード

zip または tar ファイルにアクセスするには、カスタマーポータルを使用して、ダウンロードする関連ファイルを検索します。RPM パッケージを使用している場合、この手順は必要ありません。

  1. ブラウザーを開き、access.redhat.com/downloads で Red Hat カスタマーポータルの Product Downloads ページにログインします。
  2. INTEGRATION AND AUTOMATION カテゴリーで、Streams for Apache Kafka エントリーを見つけます。
  3. 必要な Streams for Apache Kafka 製品を選択します。Software Downloads ページが開きます。
  4. コンポーネントの Download リンクをクリックします。

DNF を使用したパッケージのインストール

パッケージとすべてのパッケージ依存関係をインストールするには、以下を使用します。

dnf install <package_name>

ローカルディレクトリーからダウンロード済みのパッケージをインストールするには、以下を使用します。

dnf install <path_to_download_package>

改訂日時: 2024-06-26

法律上の通知

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

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

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

会社概要

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

© 2024 Red Hat, Inc.