検索

第13章 カスタムリソース API のリファレンス

download PDF

13.1. 共通の設定プロパティー

共通設定プロパティーは複数のリソースに適用されます。

13.1.1. replicas

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

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

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

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

13.1.2. bootstrapServers

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

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

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

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

13.1.3. ssl

TLS バージョンの特定の 暗号スイート を使用して、クライアント接続に許可される 3 つの ssl 設定オプションを使用します。暗号スイートは、セキュアな接続とデータ転送のためのアルゴリズムを組み合わせます。

また、ssl.endpoint.identification.algorithm プロパティーを設定して、ホスト名の検証を有効または無効にすることもできます。

SSL の設定例

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

1
TLS の暗号スイートは、ECDHE 鍵交換メカニズム、RSA 認証アルゴリズム、AES 一括暗号化アルゴリズム、および SHA384 MAC アルゴリズムの組み合わせを使用します。
2
SSI プロトコル TLSv1.2 は有効になります。
3
TLSv1.2 プロトコルを指定し、SSL コンテキスト生成します。許可される値は TLSv1.1 および TLSv1.2 です。
4
ホスト名の検証は HTTPS を設定して有効にします。空の文字列を指定すると検証が無効になります。

13.1.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: []

TLS クライアント認証の設定に関する詳細は、「KafkaClientAuthenticationTlsスキーマ参照」を参照してください。

13.1.5. resources

コンポーネントの CPU およびメモリーリソースを要求します。制限によって、指定のコンテナーが消費可能な最大リソースが指定されます。

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

reources.requests および resources.limits プロパティーを使用して、リソース要求および制限を設定します。

AMQ Streams では、デプロイされたコンテナーごとに特定のリソースを要求し、これらのリソースの最大消費を定義できます。

AMQ Streams では、以下のリソースタイプの要求および制限がサポートされます。

  • cpu
  • memory

AMQ Streams では、このようなリソースの指定に OpenShift の構文が使用されます。

OpenShift におけるコンピュートリソースの管理に関する詳細は、「Managing Compute Resources for Containers」を参照してください。

リソース要求

要求によって、指定のコンテナーに対して予約するリソースが指定されます。リソースを予約すると、リソースが常に利用できるようになります。

重要

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

1 つまたは複数のサポートされるリソースに対してリクエストを設定できます。

リソース要求の設定例

# ...
resources:
  requests:
    cpu: 12
    memory: 64Gi
# ...

リソース制限

制限によって、指定のコンテナーが消費可能な最大リソースが指定されます。制限は予約されず、常に利用できるとは限りません。コンテナーは、リソースが利用できる場合のみ、制限以下のリソースを使用できます。リソース制限は、常にリソース要求よりも高くする必要があります。

1 つまたは複数のサポートされる制限に対してリソースを設定できます。

リソース制限の設定例

# ...
resources:
  limits:
    cpu: 12
    memory: 64Gi
# ...

サポートされる CPU 形式

CPU の要求および制限は以下の形式でサポートされます。

  • 整数値 (5 CPU コア) または少数 (2.5 CPU コア) の CPU コアの数。
  • 数値または ミリ CPU / ミリコア (100m)。1000 ミリコア1 CPU コアと同じです。

CPU ユニットの例

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

注記

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

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

サポートされるメモリー形式

メモリー要求および制限は、メガバイト、ギガバイト、メビバイト、およびギビバイトで指定されます。

  • メモリーをメガバイトで指定するには、M 接尾辞を使用します。例: 1000M
  • メモリーをギガバイトで指定するには、G 接尾辞を使用します。例: 1G
  • メモリーをメビバイトで指定するには、Mi 接尾辞を使用します。例: 1000Mi
  • メモリーをギビバイトで指定するには、Gi 接尾辞を使用します。例: 1Gi

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

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

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

13.1.6. image

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

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

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

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

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

  • Kafka.spec.kafka
  • Kafka.spec.zookeeper
  • Kafka.spec.entityOperator.topicOperator
  • Kafka.spec.entityOperator.userOperator
  • Kafka.spec.entityOperator.tlsSidecar
  • KafkaConnect.spec
  • KafkaConnectS2I.spec
  • KafkaMirrorMaker.spec
  • KafkaMirrorMaker2.spec
  • KafkaBridge.spec

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

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

  • STRIMZI_KAFKA_IMAGES
  • STRIMZI_KAFKA_CONNECT_IMAGES
  • STRIMZI_KAFKA_CONNECT_S2I_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
  • Kafka Connect、Kafka Connect S2I、および Kafka MirrorMaker の場合は spec.image および spec.version
警告

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

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

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

  • Topic Operator の場合:

    1. Cluster Operator 設定から STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE 環境変数に指定されたコンテナーイメージ。
    2. registry.redhat.io/amq7/amq-streams-rhel7-operator:1.7.0 コンテナーイメージ。
  • User Operator の場合:

    1. Cluster Operator 設定から STRIMZI_DEFAULT_USER_OPERATOR_IMAGE 環境変数に指定されたコンテナーイメージ。
    2. registry.redhat.io/amq7/amq-streams-rhel7-operator:1.7.0 コンテナーイメージ。
  • Entity Operator TLS サイドカーの場合:

    1. Cluster Operator 設定から STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE 環境変数に指定されたコンテナーイメージ。
    2. registry.redhat.io/amq7/amq-streams-kafka-27-rhel7:1.7.0 コンテナーイメージ。
  • Kafka Exporter の場合:

    1. Cluster Operator 設定から STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE 環境変数に指定されたコンテナーイメージ。
    2. registry.redhat.io/amq7/amq-streams-kafka-27-rhel7:1.7.0 コンテナーイメージ。
  • Kafka Bridge の場合:

    1. Cluster Operator 設定から STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE 環境変数に指定されたコンテナーイメージ。
    2. registry.redhat.io/amq7/amq-streams-bridge-rhel7:1.7.0 コンテナーイメージ。
  • Kafka ブローカーイニシャライザーの場合:

    1. Cluster Operator 設定から STRIMZI_DEFAULT_KAFKA_INIT_IMAGE 環境変数に指定されたコンテナーイメージ。
    2. registry.redhat.io/amq7/amq-streams-rhel7-operator:1.7.0 コンテナーイメージ。

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

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

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

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

ヘルスチェックは、アプリケーションの健全性を検証する定期的なテストです。ヘルスチェックプローブが失敗すると、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 スキーマ参照」を参照してください。

13.1.8. metricsConfig

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

metricsConfig プロパティーには、Prometheus JMX エスクポーター の追加設定が含まれる ConfigMap への参照が含まれます。AMQ Streams では、Apache Kafka および ZooKeeper によってサポートされる JMX メトリクスを Prometheus メトリクスに変換するために、Prometheus 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 の設定およびデプロイに関する詳細は、『OpenShift での AMQ Streams のデプロイおよびアップグレード』の「Kafka へのメトリクスの導入」を参照してください。

13.1.9. jvmOptions

以下の AMQ Streams コンポーネントは、Java 仮想マシン (JVM) 内で実行されます。

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

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

  • Kafka.spec.kafka
  • Kafka.spec.zookeeper
  • KafkaConnect.spec
  • KafkaConnectS2I.spec
  • KafkaMirrorMaker.spec
  • KafkaMirrorMaker2.spec
  • KafkaBridge.spec

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

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

jvmOptions の完全なスキーマは、「JvmOptions スキーマ参照」に記載されています。

注記

-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 の最小メモリーは 128M に設定されます。JVM の最大メモリーは、必要に応じてメモリーを拡張するようには定義されていません。これは、テストおよび開発での単一ノード環境に適しています。

-Xmx を明示的に設定する前に、以下を考慮してください。

  • JVM のメモリー使用量の合計は、-Xmx によって設定された最大ヒープの約 4 倍になります。
  • 適切な OpenShift メモリー制限を設定せずに -Xmx が設定された場合、OpenShift ノードで、実行されている他の Pod からメモリー不足が発生するとコンテナーが強制終了される可能性があります。
  • 適切な OpenShift メモリー要求を設定せずに -Xmx が設定された場合、コンテナーはメモリー不足のノードにスケジュールされる可能性があります。この場合、-Xms-Xmx に設定されていると、コンテナーは起動せずに即座にクラッシュし、設定されていないと後でクラッシュします。

以下を行うことが推奨されます。

  • メモリー要求とメモリー制限を同じ値に設定します。
  • -Xmx の 4.5 倍以上のメモリー要求を使用します。
  • -Xms-Xmx と同じ値に設定することを検討してください。

この例では、JVM のヒープに 2 GiB (2,147,483,648 バイト) が使用されます。メモリー使用量の合計は約 8GiB です。

-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

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

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

GC ロギングの設定例

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

13.2. スキーマプロパティー

13.2.1. Kafka スキーマ参照

プロパティー説明

spec

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

KafkaSpec

status

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

KafkaStatus

13.2.2. KafkaSpec スキーマ参照

Kafka で使用

プロパティー説明

kafka

Kafka クラスターの設定。

KafkaClusterSpec

zookeeper

ZooKeeper クラスターの設定。

ZookeeperClusterSpec

topicOperator

topicOperator プロパティーは非推奨となり、spec.entityOperator.topicOperator を使用して設定する必要があります。topicOperator プロパティーは API バージョン v1beta2 で削除されます。Topic Operator の設定。

TopicOperatorSpec

entityOperator

Entity Operator の設定。

EntityOperatorSpec

clusterCa

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

CertificateAuthority

clientsCa

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

CertificateAuthority

cruiseControl

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

CruiseControlSpec

kafkaExporter

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

KafkaExporterSpec

maintenanceTimeWindows

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

string array

13.2.3. KafkaClusterSpec スキーマ参照

KafkaSpec で使用

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

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

13.2.3.1. listeners

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

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

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

13.2.3.2. config

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

標準の Apache Kafka 設定が提供されることがありますが、AMQ Streams によって直接管理されないプロパティーに限定されます。

以下に関連する設定オプションは設定できません。

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

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

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

AMQ Streams で直接管理されるオプションを除き、Apache Kafka ドキュメント に記載されているオプションを指定および設定できます。以下の文字列の 1 つと同じキーまたは以下の文字列の 1 つで始まるキーを持つ設定オプションはすべて禁止されています。

  • listeners
  • advertised.
  • broker.
  • listener.
  • host.name
  • port
  • inter.broker.listener.name
  • sasl.
  • ssl.
  • security.
  • password.
  • principal.builder.class
  • log.dir
  • zookeeper.connect
  • zookeeper.set.acl
  • authorizer.
  • super.user

禁止されているオプションが config プロパティーにある場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに出力されます。サポートされるその他すべてのオプションは Kafka に渡されます。

禁止されているオプションには例外があります。TLS バージョンに特定の 暗号スイート を使用するクライアント接続では、許可された ssl プロパティー を設定できます。zookeeper.connection.timeout.ms プロパティーを設定して、ZooKeeper 接続の確立に許可される最大時間も設定できます。

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
      ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
      ssl.enabled.protocols: "TLSv1.2"
      ssl.protocol: "TLSv1.2"
      zookeeper.connection.timeout.ms: 6000
    # ...

13.2.3.3. brokerRackInitImage

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

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

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
    # ...

注記

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

13.2.3.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 ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  kafka:
    # ...
    logging:
      type: inline
      loggers:
        kafka.root.logger.level: "INFO"
  # ...

外部ロギング

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 プロパティー を使用して有効 (または無効) にすることもできます。

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

プロパティー説明

version

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

string

replicas

クラスター内の Pod 数。

integer

image

Pod の Docker イメージ。デフォルト値は、設定した Kafka.spec.kafka.version によって異なります。

string

listeners

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

GenericKafkaListener 配列または KafkaListeners

config

次の接頭辞のある Kafka ブローカーの config プロパティーは設定できません: listeners、advertised.、broker.、listener.、 host.name、port、inter.broker.listener.name、sasl.、ssl.、 security.、password.、principal.builder.class、log.dir、 zookeeper.connect、zookeeper.set.acl、zookeeper.ssl、zookeeper.clientCnxnSocket、authorizer.、super.user、cruise.control.metrics.topic、cruise.control.metrics.reporter.bootstrap.servers (次の例外を除く: zookeeper.connection.timeout.ms、ssl.cipher.suites、ssl.protocol、ssl.enabled.protocols,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)

map

storage

ストレージの設定 (ディスク)。更新はできません。タイプは、指定のオブジェクト内の storage.type プロパティーの値によって異なり、[ephemeral、persistent-claim、jbod] のいずれかでなければなりません。

EphemeralStorage, PersistentClaimStorage, JbodStorage

authorization

Kafka ブローカーの承認設定。タイプは、指定のオブジェクト内の authorization.type プロパティーの値によって異なり、[simple、opa、keycloak] のいずれかでなければなりません。

KafkaAuthorizationSimple, KafkaAuthorizationOpa, KafkaAuthorizationKeycloak

rack

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

Rack

brokerRackInitImage

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

string

affinity

affinity プロパティーは非推奨となり、spec.kafka.template.pod.affinity を使用して設定する必要があります。affinity プロパティーは API バージョン v1beta2 で削除されます。Pod のアフィニティールール。詳細は、core/v1 affinity の外部ドキュメント を参照してください。

Affinity

tolerations

tolerations プロパティーは非推奨となり、spec.kafka.template.pod.tolerations を使用して設定する必要があります。tolerations プロパティーは API バージョン v1beta2 で削除されます。Pod の許容 (Toleration)。詳細は、core/v1 toleration の外部ドキュメント を参照してください。

Toleration array

livenessProbe

Pod の liveness チェック。

Probe

readinessProbe

Pod の readiness チェック。

Probe

jvmOptions

Pod の JVM オプション。

JvmOptions

jmxOptions

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

KafkaJmxOptions

resources

予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。

ResourceRequirements

metrics

metrics プロパティーは非推奨となり、spec.kafka.metricsConfig を使用して設定する必要があります。metrics プロパティーは API バージョン v1beta2 で削除されます。Prometheus JMX エクスポーターの設定。この設定の構造に関する詳細は、https://github.com/prometheus/jmx_exporter を参照してください。

map

metricsConfig

メトリクスの設定。タイプは、指定のオブジェクト内の metricsConfig.type プロパティーの値によって異なり、[jmxPrometheusExporter] の 1 つでなければなりません。

JmxPrometheusExporterMetrics

logging

Kafka のロギング設定。タイプは、指定のオブジェクト内の logging.type プロパティーの値によって異なり、[inline、external] のいずれかでなければなりません。

InlineLogging, ExternalLogging

tlsSidecar

tlsSidecar プロパティーは非推奨となりました。tlsSidecar プロパティーは API バージョン v1beta2 で削除されます。TLS サイドカーの設定。

TlsSidecar

template

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

KafkaClusterTemplate

13.2.4. GenericKafkaListener スキーマ参照

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
    #...

13.2.4.1. listeners

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

リスナーの設定例

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

名前およびポートは Kafka クラスター内で一意である必要があります。名前は最大 25 文字で、小文字と数字で構成されます。許可されるポート番号は 9092 以上ですが、すでに Prometheus および JMX によって使用されているポート 9404 および 9999 以外になります。

各リスナーに一意の名前とポートを指定することで、複数のリスナーを設定できます。

13.2.4.2. type

タイプは internal と設定するか、外部リスナーの場合は routeloadbalancer、⁠nodeport、または ingress と設定します。

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 を公開するように外部リスナーを設定します。

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

route リスナーの設定例

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

ingress

Kubernetes Ingress および NGINX Ingress 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 を使用する外部リスナーは、現在 NGINX Ingress Controller for Kubernetes でのみテストされます。

loadbalancer

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

Kafka ブローカー Pod ごとに新しいロードバランサーサービスが作成されます。追加のロードバランサーが作成され、Kafka の ブートストラップ アドレスとして提供されます。Loadbalancer は指定のポート番号をリッスンします。これは以下の例ではポート 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 タイプの Services を使用して、Kafka を公開するように外部リスナーを設定します。

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

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

nodeport リスナーの設定例

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

注記

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

13.2.4.3. port

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

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

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

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

oc get kafka KAFKA-CLUSTER-NAME -o=jsonpath='{.status.listeners[?(@.type=="external")].bootstrapServers}{"\n"}'

注記

ブローカー間通信 (9091) およびメトリクス (9404) 用に確保されたポートを使用するようにリスナーを設定することはできません。

13.2.4.4. tls

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

デフォルトでは、TLS による暗号化は有効になっていません。これを有効にするには、tls プロパティーを true に設定します。

TLS による暗号化は、常に route リスナーと使用されます。

13.2.4.5. authentication

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

  • 相互 TLS (tls)
  • SCRAM-SHA-512 (scram-sha-512)
  • トークンベース OAuth 2.0 (oauth)

13.2.4.6. networkPolicyPeers

ネットワークレベルでリスナーへのアクセスを制限するネットワークポリシーを設定するには、networkPolicyPeers を使用します。以下に、plain および tls リスナーの networkPolicyPeers 設定の例を示します。

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
# ...

この例では以下が設定されています。

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

networkPolicyPeers フィールドの構文は、NetworkPolicy リソースの from フィールドと同じです。

KafkaListeners との後方互換性

GenericKafkaListener は、非推奨となった KafkaListeners スキーマを置き換えます。

KafkaListeners スキーマを使用して設定されたリスナーを、後方互換性を持つ GenericKafkaListener スキーマの形式に変換するには、以下の名前、ポート、およびタイプを使用します。

listeners:
  #...
  - name: plain
    port: 9092
    type: internal
    tls: false
  - name: tls
    port: 9093
    type: internal
    tls: true
  - name: external
    port: 9094
    type: EXTERNAL-LISTENER-TYPE 1
    tls: true
# ...
1
オプション: ingressloadbalancernodeportroute

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

プロパティー説明

name

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

string

port

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

integer

type

リスナーのタイプ。現在サポートされるタイプは、internalrouteloadbalancernodeport、および ingress です。

* internal タイプは、OpenShift クラスター内で Kafka を内部のみで公開します。* route タイプは OpenShift Routes を使用して Kafka を公開します。* loadbalancer タイプは LoadBalancer タイプのサービスを使用して Kafka を公開します。* nodeport タイプは NodePort タイプのサービスを使用して Kafka を公開します。* ingress タイプは OpenShift Nginx Ingress を使用して Kafka を公開します。

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

tls

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

boolean

authentication

このリスナーの認証設定。タイプは、指定のオブジェクト内の authentication.type プロパティーの値によって異なり、[tls、scram-sha-512、oauth] のいずれかでなければなりません。

KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth

configuration

追加のリスナー設定。

GenericKafkaListenerConfiguration

networkPolicyPeers

このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。

NetworkPolicyPeer array

13.2.5. KafkaListenerAuthenticationTls スキーマ参照

GenericKafkaListenerKafkaListenerExternalIngressKafkaListenerExternalLoadBalancerKafkaListenerExternalNodePortKafkaListenerExternalRouteKafkaListenerPlainKafkaListenerTls で使用

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

プロパティー説明

type

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

string

13.2.6. KafkaListenerAuthenticationScramSha512 スキーマ参照

GenericKafkaListenerKafkaListenerExternalIngressKafkaListenerExternalLoadBalancerKafkaListenerExternalNodePortKafkaListenerExternalRouteKafkaListenerPlainKafkaListenerTls で使用

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

プロパティー説明

type

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

string

13.2.7. KafkaListenerAuthenticationOAuth スキーマ参照

GenericKafkaListenerKafkaListenerExternalIngressKafkaListenerExternalLoadBalancerKafkaListenerExternalNodePortKafkaListenerExternalRouteKafkaListenerPlainKafkaListenerTls で使用

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

プロパティー説明

accessTokenIsJwt

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

boolean

checkAccessTokenType

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

boolean

checkAudience

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

boolean

checkIssuer

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

boolean

clientId

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

string

clientSecret

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

GenericSecretSource

customClaimCheck

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

string

disableTlsHostnameVerification

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

boolean

enableECDSA

BouncyCastle 暗号プロバイダーをインストールして、ECDSA サポートを有効または無効にします。デフォルト値は false です。

boolean

enableOauthBearer

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

boolean

enablePlain

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

boolean

fallbackUserNameClaim

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

string

fallbackUserNamePrefix

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

string

introspectionEndpointUri

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

string

jwksEndpointUri

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

string

jwksExpirySeconds

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

integer

jwksMinRefreshPauseSeconds

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

integer

jwksRefreshSeconds

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

integer

maxSecondsWithoutReauthentication

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

integer

tlsTrustedCertificates

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

CertSecretSource array

tokenEndpointUri

クライアントが clientId およびシークレットで認証されるときに SASL_PLAIN メカニズムで使用するトークンエンドポイントの URI。

string

type

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

string

userInfoEndpointUri

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

string

userNameClaim

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

string

validIssuerUri

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

string

validTokenType

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

string

13.2.8. GenericSecretSource スキーマ参照

KafkaClientAuthenticationOAuthKafkaListenerAuthenticationOAuth で使用

プロパティー説明

key

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

string

secretName

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

string

13.2.9. CertSecretSource スキーマ参照

KafkaAuthorizationKeycloakKafkaBridgeTlsKafkaClientAuthenticationOAuthKafkaConnectTlsKafkaListenerAuthenticationOAuthKafkaMirrorMaker2TlsKafkaMirrorMakerTls で使用

プロパティー説明

certificate

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

string

secretName

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

string

13.2.10. GenericKafkaListenerConfiguration スキーマ参照

GenericKafkaListener で使用

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

Kafka リスナーの設定。

13.2.10.1. brokerCertChainAndKey

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

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

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

13.2.10.2. externalTrafficPolicy

externalTrafficPolicy プロパティーは、loadbalancer および nodeport リスナーと使用されます。OpenShift 外部で Kafka を公開する場合、Local または Cluster を選択できます。Local は他のノードへのホップを回避し、クライアント IP を保持しますが、Cluster はホップを回避せず、クライアント IP も保持しません。デフォルトは Cluster です。

13.2.10.3. loadBalancerSourceRanges

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

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

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

13.2.10.4. class

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

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

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

13.2.10.5. preferredNodePortAddressType

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

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

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

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

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

13.2.10.6. useServiceDnsDomain

useServiceDnsDomain プロパティーは、internal リスナーとのみ使用されます。クラスターサービスサフィックス (通常は .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 環境変数を使用してサフィックスを設定できます。詳細は 「Cluster Operator の設定」 を参照してください。

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

プロパティー説明

brokerCertChainAndKey

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

CertAndKeySecretSource

externalTrafficPolicy

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

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

loadBalancerSourceRanges

クライアントがロードバランサータイプのリスナーに接続できる CIDR 形式による範囲 (例: 10.0.0.0/8130.211.204.1/32) の一覧。プラットフォームでサポートされる場合、ロードバランサー経由のトラフィックは指定された CIDR 範囲に制限されます。このフィールドは、ロードバランサータイプのサービスのみに適用され、クラウドプロバイダーがこの機能をサポートしない場合は無視されます。詳細は「https://v1-17.docs.kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/」を参照してください。このフィールドは、loadbalancer タイプリスナーとのみ使用できます。

string array

bootstrap

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

GenericKafkaListenerConfigurationBootstrap

brokers

ブローカーごとの設定。

GenericKafkaListenerConfigurationBroker 配列

class

使用される Ingress コントローラーを定義する Ingress クラスを設定します。このフィールドは、ingress タイプリスナーとのみ使用できます。指定されていない場合、デフォルトの Ingress コントローラーが使用されます。

string

preferredNodePortAddressType

ノードアドレスとして使用するアドレスタイプを定義します。利用可能なタイプは、ExternalDNSExternalIPInternalDNSInternalIP、および Hostname です。デフォルトでは、アドレスは以下の順序で使用されます (最初に見つかったアドレスが使用されます): * ExternalDNS * ExternalIP * InternalDNS * InternalIP * Hostname

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

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

useServiceDnsDomain

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

boolean

13.2.11. CertAndKeySecretSource スキーマ参照

GenericKafkaListenerConfigurationIngressListenerConfigurationKafkaClientAuthenticationTlsKafkaListenerExternalConfigurationNodePortListenerConfigurationTlsListenerConfiguration で使用

プロパティー説明

certificate

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

string

key

Secret の秘密鍵の名前。

string

secretName

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

string

13.2.12. GenericKafkaListenerConfigurationBootstrap スキーマ参照

GenericKafkaListenerConfiguration で使用

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

nodePorthostloadBalancerIP、および annotations プロパティーに相当するブローカーサービスは、GenericKafkaListenerConfigurationBroker スキーマ で設定されます。

13.2.12.1. alternativeNames

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

追加のブートストラップアドレスが設定された外部 route リスナーの例

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

13.2.12.2. host

host プロパティーは、ブートストラップおよびブローカーごとのサービスによって使用されるホスト名を指定するために route および ingress リスナーと使用されます。

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

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

listeners:
  #...
  - name: external
    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 によって自動的に割り当てられます。ただし、ホストを指定して、割り当てられたルートをオーバーライドすることができます。

AMQ Streams では、要求されたホストが利用可能であることを検証しません。ホストが使用可能であることを確認する必要があります。

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

# ...
listeners:
  #...
  - name: external
    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
# ...

13.2.12.3. nodePort

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

AMQ Streams は要求されたポートの検証を行いません。ポートが使用できることを確認する必要があります。

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

# ...
listeners:
  #...
  - name: external
    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
# ...

13.2.12.4. loadBalancerIP

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

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

# ...
listeners:
  #...
  - name: external
    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
# ...

13.2.12.5. annotations

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

annotations を使用するタイプ loadbalancer の外部リスナーの例

# ...
listeners:
  #...
  - name: external
    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"
# ...

13.2.12.6. GenericKafkaListenerConfigurationBootstrap スキーマプロパティー

プロパティー説明

alternativeNames

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

string array

host

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

string

nodePort

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

integer

loadBalancerIP

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

string

annotations

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

map

labels

IngressRoute、または Service リソースに追加されるラベル。このフィールドは、loadbalancernodeportroute、または ingress タイプのリスナーとのみ使用できます。

map

13.2.13. GenericKafkaListenerConfigurationBroker スキーマ参照

GenericKafkaListenerConfiguration で使用

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

ブートストラップサービスのオーバーライドを設定する GenericKafkaListenerConfigurationBootstrap スキーマ で、nodePorthostloadBalancerIP、および annotations プロパティーの設定例を参照できます。

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

デフォルトでは、AMQ Streams は Kafka クラスターがそのクライアントにアドバタイズするホスト名とポートを自動的に決定しようとします。AMQ Streams が稼働しているインフラストラクチャーでは Kafka にアクセスできる正しいホスト名やポートを提供しない可能性があるため、デフォルトの動作はすべての状況に適しているわけではありません。

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

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

listeners:
  #...
  - name: external
    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
# ...

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

プロパティー説明

broker

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

integer

advertisedHost

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

string

advertisedPort

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

integer

host

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

string

nodePort

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

integer

loadBalancerIP

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

string

annotations

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

map

labels

IngressRoute、または Service リソースに追加されるラベル。このフィールドは、loadbalancernodeportroute、または ingress タイプのリスナーとのみ使用できます。

map

13.2.14. KafkaListeners スキーマ参照

KafkaListeners タイプは非推奨となり、API バージョン v1beta2 で削除されます。代わりに GenericKafkaListener を使用してください。

KafkaClusterSpec で使用

設定例は 以前のドキュメント を参照してください。

プロパティー説明

plain

ポート 9092 でプレーンリスナーを設定します。

KafkaListenerPlain

tls

ポート 9093 で TLS リスナーを設定します。

KafkaListenerTls

external

ポート 9094 で外部リスナーを設定します。タイプは、指定のオブジェクト内の external.type プロパティーの値によって異なり、[route、loadbalancer、nodeport、ingress] のいずれかでなければなりません。

KafkaListenerExternalRoute, KafkaListenerExternalLoadBalancer, KafkaListenerExternalNodePort, KafkaListenerExternalIngress

13.2.15. KafkaListenerPlain スキーマ参照

KafkaListeners で使用

プロパティー説明

authentication

このリスナーの認証設定。このリスナーは TLS トランスポートを使用しないため、type: tls で認証を設定することはできません。タイプは、指定のオブジェクト内の authentication.type プロパティーの値によって異なり、[tls、scram-sha-512、oauth] のいずれかでなければなりません。

KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth

networkPolicyPeers

このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。

NetworkPolicyPeer array

13.2.16. KafkaListenerTls スキーマ参照

KafkaListeners で使用

プロパティー説明

authentication

このリスナーの認証設定。タイプは、指定のオブジェクト内の authentication.type プロパティーの値によって異なり、[tls、scram-sha-512、oauth] のいずれかでなければなりません。

KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth

configuration

TLS リスナーの設定。

TlsListenerConfiguration

networkPolicyPeers

このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。

NetworkPolicyPeer array

13.2.17. TlsListenerConfiguration スキーマ参照

KafkaListenerTls で使用

プロパティー説明

brokerCertChainAndKey

証明書と秘密鍵のペアを保持する Secret への参照。証明書には、任意でチェーン全体を含めることができます。

CertAndKeySecretSource

13.2.18. KafkaListenerExternalRoute スキーマ参照

KafkaListeners で使用

type プロパティーは、KafkaListenerExternalRoute タイプの使用を KafkaListenerExternalLoadBalancerKafkaListenerExternalNodePort、および KafkaListenerExternalIngress タイプと区別する識別子です。KafkaListenerExternalRoute タイプには route の値が必要です。

プロパティー説明

type

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

string

authentication

Kafka ブローカーの認証の設定タイプは、指定のオブジェクト内の authentication.type プロパティーの値によって異なり、[tls、scram-sha-512、oauth] のいずれかでなければなりません。

KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth

overrides

外部ブートストラップサービスおよびブローカーサービス、ならびに外部にアドバタイズされたアドレスの上書き。

RouteListenerOverride

configuration

外部リスナーの設定。

KafkaListenerExternalConfiguration

networkPolicyPeers

このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。

NetworkPolicyPeer array

13.2.19. RouteListenerOverride スキーマ参照

KafkaListenerExternalRoute で使用

プロパティー説明

bootstrap

外部ブートストラップサービスの設定。

RouteListenerBootstrapOverride

brokers

外部ブローカーサービスの設定。

RouteListenerBrokerOverride array

13.2.20. RouteListenerBootstrapOverride スキーマ参照

RouteListenerOverride で使用

プロパティー説明

address

ブートストラップサービスの追加のアドレス名。このアドレスは、TLS 証明書のサブジェクトの別名の一覧に追加されます。

string

host

ブートストラップルートのホスト。このフィールドは OpenShift Route の spec.host フィールドで使用されます。

string

13.2.21. RouteListenerBrokerOverride スキーマ参照

RouteListenerOverride で使用

プロパティー説明

broker

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

integer

advertisedHost

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

string

advertisedPort

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

integer

host

ブローカールートのホスト。このフィールドは OpenShift Route の spec.host フィールドで使用されます。

string

13.2.22. KafkaListenerExternalConfiguration スキーマ参照

KafkaListenerExternalLoadBalancerKafkaListenerExternalRoute で使用

プロパティー説明

brokerCertChainAndKey

証明書と秘密鍵のペアを保持する Secret への参照。証明書には、任意でチェーン全体を含めることができます。

CertAndKeySecretSource

13.2.23. KafkaListenerExternalLoadBalancer スキーマ参照

KafkaListeners で使用

type プロパティーは、KafkaListenerExternalLoadBalancer タイプの使用を KafkaListenerExternalRouteKafkaListenerExternalNodePort、および KafkaListenerExternalIngress タイプと区別する識別子です。KafkaListenerExternalLoadBalancer タイプには loadbalancer の値が必要です。

プロパティー説明

type

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

string

authentication

Kafka ブローカーの認証の設定タイプは、指定のオブジェクト内の authentication.type プロパティーの値によって異なり、[tls、scram-sha-512、oauth] のいずれかでなければなりません。

KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth

overrides

外部ブートストラップサービスおよびブローカーサービス、ならびに外部にアドバタイズされたアドレスの上書き。

LoadBalancerListenerOverride

configuration

外部リスナーの設定。

KafkaListenerExternalConfiguration

networkPolicyPeers

このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。

NetworkPolicyPeer array

tls

リスナーで TLS による暗号化を有効にします。有効な TLS 暗号化の場合、デフォルトで true に設定されます。

boolean

13.2.24. LoadBalancerListenerOverride スキーマ参照

KafkaListenerExternalLoadBalancer で使用

プロパティー説明

bootstrap

外部ブートストラップサービスの設定。

LoadBalancerListenerBootstrapOverride

brokers

外部ブローカーサービスの設定。

LoadBalancerListenerBrokerOverride array

13.2.25. LoadBalancerListenerBootstrapOverride スキーマ参照

LoadBalancerListenerOverride で使用

プロパティー説明

address

ブートストラップサービスの追加のアドレス名。このアドレスは、TLS 証明書のサブジェクトの別名の一覧に追加されます。

string

dnsAnnotations

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

map

loadBalancerIP

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

string

13.2.26. LoadBalancerListenerBrokerOverride スキーマ参照

LoadBalancerListenerOverride で使用

プロパティー説明

broker

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

integer

advertisedHost

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

string

advertisedPort

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

integer

dnsAnnotations

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

map

loadBalancerIP

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

string

13.2.27. KafkaListenerExternalNodePort スキーマ参照

KafkaListeners で使用

type プロパティーは、KafkaListenerExternalNodePort タイプの使用を KafkaListenerExternalRouteKafkaListenerExternalLoadBalancer、および KafkaListenerExternalIngress タイプと区別する識別子です。KafkaListenerExternalNodePort タイプには nodeport の値が必要です。

プロパティー説明

type

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

string

authentication

Kafka ブローカーの認証の設定タイプは、指定のオブジェクト内の authentication.type プロパティーの値によって異なり、[tls、scram-sha-512、oauth] のいずれかでなければなりません。

KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth

overrides

外部ブートストラップサービスおよびブローカーサービス、ならびに外部にアドバタイズされたアドレスの上書き。

NodePortListenerOverride

configuration

外部リスナーの設定。

NodePortListenerConfiguration

networkPolicyPeers

このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。

NetworkPolicyPeer array

tls

リスナーで TLS による暗号化を有効にします。有効な TLS 暗号化の場合、デフォルトで true に設定されます。

boolean

13.2.28. NodePortListenerOverride スキーマ参照

KafkaListenerExternalNodePort で使用

プロパティー説明

bootstrap

外部ブートストラップサービスの設定。

NodePortListenerBootstrapOverride

brokers

外部ブローカーサービスの設定。

NodePortListenerBrokerOverride array

13.2.29. NodePortListenerBootstrapOverride スキーマ参照

NodePortListenerOverride で使用

プロパティー説明

address

ブートストラップサービスの追加のアドレス名。このアドレスは、TLS 証明書のサブジェクトの別名の一覧に追加されます。

string

dnsAnnotations

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

map

nodePort

ブートストラップサービスのノードポート。

integer

13.2.30. NodePortListenerBrokerOverride スキーマ参照

NodePortListenerOverride で使用

プロパティー説明

broker

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

integer

advertisedHost

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

string

advertisedPort

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

integer

nodePort

ブローカーサービスのノードポート。

integer

dnsAnnotations

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

map

13.2.31. NodePortListenerConfiguration スキーマ参照

KafkaListenerExternalNodePort で使用

プロパティー説明

brokerCertChainAndKey

証明書と秘密鍵のペアを保持する Secret への参照。証明書には、任意でチェーン全体を含めることができます。

CertAndKeySecretSource

preferredAddressType

ノードアドレスとして使用するアドレスタイプを定義します。利用可能なタイプは、ExternalDNSExternalIPInternalDNSInternalIP、および Hostname です。デフォルトでは、アドレスは以下の順序で使用されます (最初に見つかったアドレスが使用されます): * ExternalDNS * ExternalIP * InternalDNS * InternalIP * Hostname

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

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

13.2.32. KafkaListenerExternalIngress スキーマ参照

KafkaListeners で使用

type プロパティーは、KafkaListenerExternalIngress タイプの使用を KafkaListenerExternalRouteKafkaListenerExternalLoadBalancer、および KafkaListenerExternalNodePort タイプと区別する識別子です。KafkaListenerExternalIngress タイプには ingress の値が必要です。

プロパティー説明

type

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

string

authentication

Kafka ブローカーの認証の設定タイプは、指定のオブジェクト内の authentication.type プロパティーの値によって異なり、[tls、scram-sha-512、oauth] のいずれかでなければなりません。

KafkaListenerAuthenticationTls, KafkaListenerAuthenticationScramSha512, KafkaListenerAuthenticationOAuth

class

使用される Ingress コントローラーを定義する Ingress クラスを設定します。

string

configuration

外部リスナーの設定。

IngressListenerConfiguration

networkPolicyPeers

このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。

NetworkPolicyPeer array

13.2.33. IngressListenerConfiguration スキーマ参照

KafkaListenerExternalIngress で使用

プロパティー説明

bootstrap

外部ブートストラップ Ingress の設定。

IngressListenerBootstrapConfiguration

brokers

外部ブローカー Ingress の設定。

IngressListenerBrokerConfiguration array

brokerCertChainAndKey

証明書と秘密鍵のペアを保持する Secret への参照。証明書には、任意でチェーン全体を含めることができます。

CertAndKeySecretSource

13.2.34. IngressListenerBootstrapConfiguration スキーマ参照

IngressListenerConfiguration で使用

プロパティー説明

address

ブートストラップサービスの追加のアドレス名。このアドレスは、TLS 証明書のサブジェクトの別名の一覧に追加されます。

string

dnsAnnotations

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

map

host

ブートストラップルートのホスト。このフィールドは Ingress リソースで使用されます。

string

13.2.35. IngressListenerBrokerConfiguration スキーマ参照

IngressListenerConfiguration で使用

プロパティー説明

broker

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

integer

advertisedHost

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

string

advertisedPort

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

integer

host

ブローカー Ingress のホスト。このフィールドは Ingress リソースで使用されます。

string

dnsAnnotations

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

map

13.2.36. EphemeralStorage スキーマ参照

JbodStorageKafkaClusterSpecZookeeperClusterSpec で使用

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

プロパティー説明

id

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

integer

sizeLimit

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

string

type

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

string

13.2.37. PersistentClaimStorage スキーマ参照

JbodStorageKafkaClusterSpecZookeeperClusterSpec で使用

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

プロパティー説明

type

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

string

size

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

string

selector

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

map

deleteClaim

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

boolean

class

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

string

id

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

integer

overrides

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

PersistentClaimStorageOverride array

13.2.38. PersistentClaimStorageOverride スキーマ参照

PersistentClaimStorage で使用

プロパティー説明

class

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

string

broker

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

integer

13.2.39. JbodStorage スキーマ参照

KafkaClusterSpec で使用

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

プロパティー説明

type

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

string

volumes

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

EphemeralStorage, PersistentClaimStorage 配列

13.2.40. KafkaAuthorizationSimple スキーマ参照

KafkaClusterSpec で使用

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

AMQ Streams の簡易承認では、AclAuthorizer プラグインが使用されます。これは、Apache Kafka で提供されるデフォルトのアクセス制御リスト (ACL) 承認プラグインです。ACL を使用すると、ユーザーがアクセスできるリソースを細かく定義できます。

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

ACLRule スキーマ参照」の説明にあるように、アクセスルールは KafkaUser に対して設定されます。

13.2.40.1. superUsers

スーパーユーザーとして扱われるユーザープリンシパルのリスト。このリストのユーザープリンシパルは、ACL ルールをクエリーしなくても常に許可されます。詳細は「Kafka の承認」を参照してください。

簡易承認の設定例

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 ブローカーの設定」を参照してください。

13.2.40.2. KafkaAuthorizationSimple スキーマプロパティー

type プロパティーは、KafkaAuthorizationSimple タイプの使用を KafkaAuthorizationOpaKafkaAuthorizationKeycloak と区別する識別子です。KafkaAuthorizationSimple タイプには simple の値が必要です。

プロパティー説明

type

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

string

superUsers

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

string array

13.2.41. KafkaAuthorizationOpa スキーマ参照

KafkaClusterSpec で使用

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

Open Policy Agent 承認を使用するには、authorization セクションの type プロパティーを値 opa に設定し、必要に応じて OPA プロパティーを設定します。

13.2.41.1. url

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

13.2.41.2. allowOnError

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

13.2.41.3. initialCacheCapacity

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

13.2.41.4. maximumCacheSize

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

13.2.41.5. expireAfterMs

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

13.2.41.6. superUsers

スーパーユーザーとして扱われるユーザープリンシパルのリスト。このリストのユーザープリンシパルは、Open Policy Agent ポリシーをクエリーしなくても常に許可されます。詳細は「Kafka の承認」を参照してください。

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
    # ...

13.2.41.7. KafkaAuthorizationOpa スキーマプロパティー

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

プロパティー説明

type

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

string

url

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

string

allowOnError

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

boolean

initialCacheCapacity

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

integer

maximumCacheSize

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

integer

expireAfterMs

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

integer

superUsers

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

string array

13.2.42. KafkaAuthorizationKeycloak スキーマ参照

KafkaClusterSpec で使用

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

プロパティー説明

type

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

string

clientId

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

string

tokenEndpointUri

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

string

tlsTrustedCertificates

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

CertSecretSource array

disableTlsHostnameVerification

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

boolean

delegateToKafkaAcls

Red Hat Single Sign-On の Authorization Services ポリシーにより DENIED となった場合に、承認の決定を 'Simple' オーソライザーに委譲すべきかどうか。デフォルト値は false です。

boolean

grantsRefreshPeriodSeconds

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

integer

grantsRefreshPoolSize

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

integer

superUsers

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

string array

13.2.43. Rack スキーマ参照

KafkaClusterSpecKafkaConnectS2ISpecKafkaConnectSpec で使用

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

異なるラック全体でパーティションレプリカを分散するためにラックアウェアネスを設定します。

ラックは、アベイラビリティーゾーン、データセンター、またはデータセンターの実際のラックを表すことができます。Kafka クラスターの rack を設定すると、コンシューマーは最も近いレプリカからデータを取得できます。これは、Kafka クラスターが複数のデータセンターにまたがる場合に、ネットワークの負荷を軽減するのに役立ちます。

ラックアウェアネス (Rack Awareness) に Kafka ブローカーを設定するには、Kafka ブローカー Pod をノードに対してスケジュールする際に OpenShift によって使用されるクラスターノードのラベルと一致する topologyKey の値を指定します。

OpenShift クラスターがクラウドプロバイダープラットフォームで稼働している場合、ラベルはノードが稼働している可用性ゾーンを表す必要があります。通常、ノードには topologyKey の値として使用できる topology.kubernetes.io/zone ラベル (または古い OpenShift バージョンでは failure-domain.beta.kubernetes.io/zone) が付けられます。

ラックアウェアネスの設定によってブローカー Pod およびパーティションレプリカがゾーン全体に分散され、耐障害性が向上されます。また、各 Kafka ブローカーに broker.rack 設定も設定されます。broker.rack 設定によって、ラック ID が各ブローカーに割り当てられます。

ノードがデプロイされたゾーンやラックを表すノードラベルについては、OpenShift 管理者に相談します。

Kafka の 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 ReplicaSelector プラグインに RackAwareReplicaSelector 実装を使用します。ReplicaSelector プラグインは、クライアントが最も近いレプリカから消費できるようにするロジックを提供します。replica.selector.classRackAwareReplicaSelector を指定して、デフォルト実装から切り替えます。デフォルトの実装では、LeaderSelector を使用してクライアントのリーダーレプリカを常に選択します。リーダーレプリカからレプリカフォロワーに切り替えると、遅延のコストが発生します。必要に応じて、独自の実装をカスタマイズすることもできます。

Kafka Connect を含むクライアントでは、クライアントがメッセージを消費するために使用するブローカーと同じトポロジーキーを指定します。

Kafka Connect の rack 設定例

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

クライアントには client.rack ID が割り当てられます。

RackAwareReplicaSelector は、クライアントが最も近いレプリカから消費できるようにするため、broker.rackclient.rack ID の一致を関連付けます。

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

consuming from replicas in the same availability zone

同じラックに複数のレプリカがある場合は、RackAwareReplicaSelector は常に最新のレプリカを選択します。ラック ID が指定されていない場合や、同じラック ID を持つレプリカが見つからない場合は、リーダーレプリカにフォールバックします。

OpenShift ノードラベルの詳細は、「Well-Known Labels, Annotations and Taints」を参照してください。

13.2.43.1. Rack スキーマプロパティー

プロパティー説明

topologyKey

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

string

13.2.44. Probe スキーマ参照

CruiseControlSpecEntityTopicOperatorSpecEntityUserOperatorSpecKafkaBridgeSpecKafkaClusterSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaExporterSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpecTlsSidecarTopicOperatorSpecZookeeperClusterSpec で使用

プロパティー説明

failureThreshold

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

integer

initialDelaySeconds

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

integer

periodSeconds

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

integer

successThreshold

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

integer

timeoutSeconds

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

integer

13.2.45. JvmOptions スキーマ参照

CruiseControlSpecEntityTopicOperatorSpecEntityUserOperatorSpecKafkaBridgeSpecKafkaClusterSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpecTopicOperatorSpecZookeeperClusterSpec で使用

プロパティー説明

-XX

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

map

-Xms

JVM への -Xms オプション。

string

-Xmx

JVM への -Xmx オプション。

string

gcLoggingEnabled

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

boolean

javaSystemProperties

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

SystemProperty array

13.2.46. SystemProperty スキーマ参照

JvmOptions で使用

プロパティー説明

name

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

string

value

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

string

13.2.47. KafkaJmxOptions スキーマ参照

KafkaClusterSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2Spec で使用

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

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

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

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

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

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

パスワードで保護された JMX の設定例

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

次に、対応するブローカーを指定して、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 ポートから読み取ることができます。

オープンポート JMX 設定の例

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

その他のリソース

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

プロパティー説明

authentication

JMX ポートに接続するための認証設定。タイプは、指定のオブジェクト内の authentication.type プロパティーの値によって異なり、[password] の 1 つでなければなりません。

KafkaJmxAuthenticationPassword

13.2.48. KafkaJmxAuthenticationPassword スキーマ参照

KafkaJmxOptions で使用

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

プロパティー説明

type

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

string

13.2.49. JmxPrometheusExporterMetrics スキーマ参照

CruiseControlSpecKafkaClusterSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpecZookeeperClusterSpec で使用

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

プロパティー説明

type

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

string

valueFrom

Prometheus JMX Exporter 設定が保存される ConfigMap エントリー。この設定の構造に関する詳細は、JMX Exporter のドキュメント を参照してください。

ExternalConfigurationReference

13.2.50. ExternalConfigurationReference スキーマ参照

ExternalLoggingJmxPrometheusExporterMetrics で使用

プロパティー説明

configMapKeyRef

設定が含まれる ConfigMap のキーへの参照。詳細は、core/v1 configmapkeyselector の外部ドキュメントを参照してください。

ConfigMapKeySelector

13.2.51. InlineLogging スキーマ参照

CruiseControlSpecEntityTopicOperatorSpecEntityUserOperatorSpecKafkaBridgeSpecKafkaClusterSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpecTopicOperatorSpecZookeeperClusterSpec で使用

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

プロパティー説明

type

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

string

loggers

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

map

13.2.52. ExternalLogging スキーマ参照

CruiseControlSpecEntityTopicOperatorSpecEntityUserOperatorSpecKafkaBridgeSpecKafkaClusterSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpecTopicOperatorSpecZookeeperClusterSpec で使用

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

プロパティー説明

type

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

string

name

name プロパティーは非推奨となり、valueFrom を使用して設定する必要があります。name プロパティーは API バージョン v1beta2 で削除されます。ロギング設定の取得元となる ConfigMap の名前。

string

valueFrom

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

ExternalConfigurationReference

13.2.53. TlsSidecar スキーマ参照

CruiseControlSpecEntityOperatorSpecKafkaClusterSpecTopicOperatorSpecZookeeperClusterSpec で使用

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

Pod で実行されるコンテナーである TLS サイドカーを設定しますが、サポートの目的で提供されます。。AMQ Streams では、TLS サイドカーは TLS を使用して、コンポーネントと ZooKeeper との間の通信を暗号化および復号化します。

TLS サイドカーは以下で使用されます。

  • Entitiy Operator
  • Cruise Control

TLS サイドカーは、以下で tlsSidecar プロパティーを使用して設定されます。

  • Kafka.spec.entityOperator
  • Kafka.spec.cruiseControl

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
    # ...
  cruiseControl:
    # ...
    tlsSidecar:
      image: my-org/my-image:latest
      resources:
        requests:
          cpu: 200m
          memory: 64Mi
        limits:
          cpu: 500m
          memory: 128Mi
      logLevel: debug
      readinessProbe:
        initialDelaySeconds: 15
        timeoutSeconds: 5
      livenessProbe:
        initialDelaySeconds: 15
        timeoutSeconds: 5
    # ...

13.2.53.1. TlsSidecar スキーマプロパティー

プロパティー説明

image

コンテナーの Docker イメージ。

string

livenessProbe

Pod の liveness チェック。

Probe

logLevel

TLS サイドカーのログレベル。デフォルト値は notice です。

string ([emerg、debug、crit、err、alert、warning、notice、info] のいずれか)

readinessProbe

Pod の readiness チェック。

Probe

resources

予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。

ResourceRequirements

13.2.54. KafkaClusterTemplate スキーマ参照

KafkaClusterSpec で使用

プロパティー説明

statefulset

Kafka StatefulSet のテンプレート。

StatefulSetTemplate

pod

Kafka Pods のテンプレート。

PodTemplate

bootstrapService

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

ResourceTemplate

brokersService

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

ResourceTemplate

externalBootstrapService

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

ExternalServiceTemplate

perPodService

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

ExternalServiceTemplate

externalBootstrapRoute

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

ResourceTemplate

perPodRoute

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

ResourceTemplate

externalBootstrapIngress

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

ResourceTemplate

perPodIngress

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

ResourceTemplate

persistentVolumeClaim

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

ResourceTemplate

podDisruptionBudget

Kafka PodDisruptionBudget のテンプレート。

PodDisruptionBudgetTemplate

kafkaContainer

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

ContainerTemplate

tlsSidecarContainer

tlsSidecarContainer プロパティーは非推奨となりました。tlsSidecarContainer プロパティーは API バージョン v1beta2 で削除されます。Kafka ブローカー TLS サイドカーコンテナーのテンプレート。

ContainerTemplate

initContainer

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

ContainerTemplate

clusterCaCert

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

ResourceTemplate

clusterRoleBinding

Kafka ClusterRoleBinding のテンプレート。

ResourceTemplate

13.2.55. StatefulSetTemplate スキーマ参照

KafkaClusterTemplateZookeeperClusterTemplate で使用

プロパティー説明

metadata

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

MetadataTemplate

podManagementPolicy

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

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

13.2.56. MetadataTemplate スキーマ参照

DeploymentTemplateExternalServiceTemplatePodDisruptionBudgetTemplatePodTemplateResourceTemplateStatefulSetTemplate で使用

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

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

以下に例を示します。

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

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

13.2.56.1. MetadataTemplate スキーマプロパティー

プロパティー説明

labels

リソーステンプレートに追加されたラベル。StatefulSetsDeploymentsPods、および Services などの異なるリソースに適用できます。

map

annotations

リソーステンプレートに追加されたアノテーション。StatefulSetsDeploymentsPods、および Services などの異なるリソースに適用できます。

map

13.2.57. PodTemplate スキーマ参照

CruiseControlTemplateEntityOperatorTemplateKafkaBridgeTemplateKafkaClusterTemplateKafkaConnectTemplateKafkaExporterTemplateKafkaMirrorMakerTemplateZookeeperClusterTemplate で使用

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
# ...

13.2.57.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"
      #...

13.2.57.2. PodTemplate スキーマプロパティー

プロパティー説明

metadata

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

MetadataTemplate

imagePullSecrets

この Pod で使用されるイメージのプルに使用する同じ namespace のシークレットへの参照の一覧です。Cluster Operator の STRIMZI_IMAGE_PULL_SECRETS 環境変数と imagePullSecrets オプションが指定されると、imagePullSecrets 変数のみが使用され、STRIMZI_IMAGE_PULL_SECRETS 変数は無視されます。詳細は、core/v1 localobjectreference の外部ドキュメント を参照してください。

LocalObjectReference array

securityContext

Pod レベルのセキュリティー属性と共通のコンテナー設定を設定します。詳細は、core/v1 podsecuritycontext の外部ドキュメント を参照してください。

PodSecurityContext

terminationGracePeriodSeconds

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

integer

affinity

Pod のアフィニティールール。詳細は、core/v1 affinity の外部ドキュメント を参照してください。

Affinity

tolerations

Pod の許容 (Toleration)。詳細は、core/v1 toleration の外部ドキュメント を参照してください。

Toleration array

priorityClassName

優先順位を Pod に割り当てるために使用される優先順位クラス (Priority Class) の名前。Priority Class (優先順位クラス) の詳細は、「Pod Priority and Preemption」を参照してください。

string

schedulerName

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

string

hostAliases

Pod の HostAliases。HostAliases は、指定された場合に Pod の hosts ファイルに注入されるホストおよび IP のオプションのリストです。詳細は、core/v1 HostAlias の外部ドキュメント を参照してください。

HostAlias array

topologySpreadConstraints

Pod のトポロジー分散制約。詳細は、core/v1 topologyspreadconstraint の外部ドキュメント を参照してください。

TopologySpreadConstraint array

13.2.58. ResourceTemplate スキーマ参照

CruiseControlTemplateEntityOperatorTemplateKafkaBridgeTemplateKafkaClusterTemplateKafkaConnectTemplateKafkaExporterTemplateKafkaUserTemplateZookeeperClusterTemplate で使用

プロパティー説明

metadata

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

MetadataTemplate

13.2.59. ExternalServiceTemplate スキーマ参照

KafkaClusterTemplate で使用

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

ロードバランサーまたはノードポートを使用して OpenShift 外部で Kafka を公開する場合、ラベルとアノテーションの他にプロパティーを使用してサービスの作成をカスタマイズできます。

カスタマイズした外部サービスの例

# ...
template:
  externalBootstrapService:
    externalTrafficPolicy: Local
    loadBalancerSourceRanges:
      - 10.0.0.0/8
      - 88.208.76.87/32
  perPodService:
    externalTrafficPolicy: Local
    loadBalancerSourceRanges:
      - 10.0.0.0/8
      - 88.208.76.87/32
# ...

13.2.59.1. ExternalServiceTemplate スキーマプロパティー

プロパティー説明

metadata

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

MetadataTemplate

externalTrafficPolicy

externalTrafficPolicy プロパティーは非推奨となり、spec.kafka.listeners[].configuration を使用して設定する必要があります。externalTrafficPolicy プロパティーは API バージョン v1beta2 で削除されます。サービスによって外部トラフィックがローカルノードのエンドポイントまたはクラスター全体のエンドポイントにルーティングされるかどうかを指定します。Cluster を指定すると、別のノードへの 2 回目のホップが発生し、クライアントソースの IP が特定しにくくなる可能性があります。Local を指定すると、LoadBalancer および Nodeport タイプのサービスに対して 2 回目のホップが発生しないようにし、クライアントソースの IP を維持します (インフラストラクチャーでサポートされる場合)。指定されていない場合、OpenShift は Cluster をデフォルトとして使用します。

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

loadBalancerSourceRanges

loadBalancerSourceRanges プロパティーは非推奨となり、spec.kafka.listeners[].configuration を使用して設定する必要があります。loadBalancerSourceRanges プロパティーは API バージョン v1beta2 で削除されます。クライアントがロードバランサータイプのリスナーに接続できる CIDR 形式による範囲 (例: 10.0.0.0/8130.211.204.1/32) の一覧。プラットフォームでサポートされる場合、ロードバランサー経由のトラフィックは指定された CIDR 範囲に制限されます。このフィールドは、ロードバランサータイプのサービスのみに適用され、クラウドプロバイダーがこの機能をサポートしない場合は無視されます。詳細は「https://v1-17.docs.kubernetes.io/docs/tasks/access-application-cluster/configure-cloud-provider-firewall/」を参照してください。

string array

13.2.60. PodDisruptionBudgetTemplate スキーマ参照

CruiseControlTemplateKafkaBridgeTemplateKafkaClusterTemplateKafkaConnectTemplateKafkaMirrorMakerTemplateZookeeperClusterTemplate で使用

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

AMQ Streams は、新しい StatefulSet または Deployment ごとに PodDisruptionBudget を作成します。デフォルトでは、Pod の Disruption Budget (停止状態の予算) は単一の Pod を指定時に利用不可能にすることのみ許可します。PodDisruptionBudget.spec リソースの maxUnavailable プロパティーのデフォルト値を変更することで、許容される利用不可能な Pod の数を増やすことができます。

PodDisruptionBudget テンプレートの例

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

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

プロパティー説明

metadata

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

MetadataTemplate

maxUnavailable

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

integer

13.2.61. ContainerTemplate スキーマ参照

CruiseControlTemplateEntityOperatorTemplateKafkaBridgeTemplateKafkaClusterTemplateKafkaConnectTemplateKafkaExporterTemplateKafkaMirrorMakerTemplateZookeeperClusterTemplate で使用

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_ で始まる環境変数は AMQ Streams 内部となるため、使用しないようにしてください。AMQ Streams によってすでに使用されているカスタム環境変数を設定すると、その環境変数は無視され、警告がログに記録されます。

13.2.61.1. ContainerTemplate スキーマプロパティー

プロパティー説明

env

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

ContainerEnvVar array

securityContext

コンテナーのセキュリティーコンテキスト。詳細は、core/v1 securitycontext の外部ドキュメント を参照してください。

SecurityContext

13.2.62. ContainerEnvVar スキーマ参照

ContainerTemplate で使用

プロパティー説明

name

環境変数のキー。

string

value

環境変数の値。

string

13.2.63. ZookeeperClusterSpec スキーマ参照

KafkaSpec で使用

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

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

13.2.63.1. config

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

標準の Apache ZooKeeper 設定が提供されることがあり、AMQ Streams によって直接管理されないプロパティーに限定されます。

以下に関連する設定オプションは設定できません。

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

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

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

AMQ Streams で直接管理されるオプション以外の、ZooKeeper ドキュメント に記載されているオプションを指定および設定できます。以下の文字列の 1 つと同じキーまたは以下の文字列の 1 つで始まるキーを持つ設定オプションはすべて禁止されています。

  • server.
  • dataDir
  • dataLogDir
  • clientPort
  • authProvider
  • quorum.auth
  • requireClientAuthScheme

禁止されているオプションが config プロパティーにある場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに出力されます。サポートされるその他すべてのオプションは ZooKeeper に渡されます。

禁止されているオプションには例外があります。TLS バージョンに特定の 暗号スイート を使用するクライアント接続では、許可された ssl プロパティー を設定できます。

ZooKeeper の設定例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  kafka:
    # ...
  zookeeper:
    # ...
    config:
      autopurge.snapRetainCount: 3
      autopurge.purgeInterval: 1
      ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
      ssl.enabled.protocols: "TLSv1.2"
      ssl.protocol: "TLSv1.2"
    # ...

13.2.63.2. logging

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

  • zookeeper.root.logger

ZooKeeper では 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 ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
spec:
  # ...
  zookeeper:
    # ...
    logging:
      type: inline
      loggers:
        zookeeper.root.logger: "INFO"
    # ...

外部ロギング

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

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

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

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

プロパティー説明

replicas

クラスター内の Pod 数。

integer

image

Pod の Docker イメージ。

string

storage

ストレージの設定 (ディスク)。更新はできません。タイプは、指定のオブジェクト内の storage.type プロパティーの値によって異なり、[ephemeral、persistent-claim] のいずれかでなければなりません。

EphemeralStorage, PersistentClaimStorage

config

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)

map

affinity

affinity プロパティーは非推奨となり、spec.zookeeper.template.pod.affinity を使用して設定する必要があります。affinity プロパティーは API バージョン v1beta2 で削除されます。Pod のアフィニティールール。詳細は、core/v1 affinity の外部ドキュメント を参照してください。

Affinity

tolerations

tolerations プロパティーは非推奨となり、spec.zookeeper.template.pod.tolerations を使用して設定する必要があります。tolerations プロパティーは API バージョン v1beta2 で削除されます。Pod の許容 (Toleration)。詳細は、core/v1 toleration の外部ドキュメント を参照してください。

Toleration array

livenessProbe

Pod の liveness チェック。

Probe

readinessProbe

Pod の readiness チェック。

Probe

jvmOptions

Pod の JVM オプション。

JvmOptions

resources

予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。

ResourceRequirements

metrics

metrics プロパティーは非推奨となり、spec.zookeeper.metricsConfig を使用して設定する必要があります。metrics プロパティーは API バージョン v1beta2 で削除されます。Prometheus JMX エクスポーターの設定。この設定の構造に関する詳細は、https://github.com/prometheus/jmx_exporter を参照してください。

map

metricsConfig

メトリクスの設定。タイプは、指定のオブジェクト内の metricsConfig.type プロパティーの値によって異なり、[jmxPrometheusExporter] の 1 つでなければなりません。

JmxPrometheusExporterMetrics

logging

ZooKeeper のロギング設定。タイプは、指定のオブジェクト内の logging.type プロパティーの値によって異なり、[inline、external] のいずれかでなければなりません。

InlineLogging, ExternalLogging

template

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

ZookeeperClusterTemplate

tlsSidecar

tlsSidecar プロパティーは非推奨となりました。tlsSidecar プロパティーは API バージョン v1beta2 で削除されます。TLS サイドカーの設定。TLS サイドカーは使用されなくなりました。このオプションは無視されます。

TlsSidecar

13.2.64. ZookeeperClusterTemplate スキーマ参照

ZookeeperClusterSpec で使用

プロパティー説明

statefulset

ZooKeeper StatefulSet のテンプレート。

StatefulSetTemplate

pod

ZooKeeper Pods のテンプレート。

PodTemplate

clientService

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

ResourceTemplate

nodesService

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

ResourceTemplate

persistentVolumeClaim

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

ResourceTemplate

podDisruptionBudget

ZooKeeper PodDisruptionBudget のテンプレート。

PodDisruptionBudgetTemplate

zookeeperContainer

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

ContainerTemplate

tlsSidecarContainer

tlsSidecarContainer プロパティーは非推奨となりました。tlsSidecarContainer プロパティーは API バージョン v1beta2 で削除されます。ZooKeeper サーバーの TLS サイドカーコンテナーのテンプレート。TLS サイドカーは使用されなくなりました。このオプションは無視されます。

ContainerTemplate

13.2.65. TopicOperatorSpec スキーマ参照

TopicOperatorSpec タイプは非推奨となり、API バージョン v1beta2 で削除されます。代わりに EntityTopicOperatorSpec を使用してください。

KafkaSpec で使用

プロパティー説明

watchedNamespace

Topic Operator が監視する必要のある namespace。

string

image

Topic Operator に使用するイメージ。

string

reconciliationIntervalSeconds

定期的な調整の間隔。

integer

zookeeperSessionTimeoutSeconds

ZooKeeper セッションのタイムアウト。

integer

affinity

affinity プロパティーは非推奨となり、spec.entityOperator.template.pod.affinity を使用して設定する必要があります。affinity プロパティーは API バージョン v1beta2 で削除されます。Pod のアフィニティールール。詳細は、core/v1 affinity の外部ドキュメント を参照してください。

Affinity

resources

予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。

ResourceRequirements

topicMetadataMaxAttempts

トピックメタデータの取得を試行する回数。

integer

tlsSidecar

tlsSidecar プロパティーは非推奨となり、spec.entityOperator.tlsSidecar を使用して設定する必要があります。tlsSidecar プロパティーは API バージョン v1beta2 で削除されます。TLS サイドカーの設定。

TlsSidecar

logging

ロギング設定。タイプは、指定のオブジェクト内の logging.type プロパティーの値によって異なり、[inline、external] のいずれかでなければなりません。

InlineLogging, ExternalLogging

jvmOptions

Pod の JVM オプション。

JvmOptions

livenessProbe

Pod の liveness チェック。

Probe

readinessProbe

Pod の readiness チェック。

Probe

startupProbe

Pod の起動チェック。

Probe

13.2.66. EntityOperatorSpec スキーマ参照

KafkaSpec で使用

プロパティー説明

topicOperator

Topic Operator の設定。

EntityTopicOperatorSpec

userOperator

User Operator の設定。

EntityUserOperatorSpec

affinity

affinity プロパティーは非推奨となり、spec.entityOperator.template.pod.affinity を使用して設定する必要があります。affinity プロパティーは API バージョン v1beta2 で削除されます。Pod のアフィニティールール。詳細は、core/v1 affinity の外部ドキュメント を参照してください。

Affinity

tolerations

tolerations プロパティーは非推奨となり、spec.entityOperator.template.pod.tolerations を使用して設定する必要があります。tolerations プロパティーは API バージョン v1beta2 で削除されます。Pod の許容 (Toleration)。詳細は、core/v1 toleration の外部ドキュメント を参照してください。

Toleration array

tlsSidecar

TLS サイドカーの設定。

TlsSidecar

template

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

EntityOperatorTemplate

13.2.67. EntityTopicOperatorSpec スキーマ参照

EntityOperatorSpec で使用

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

Topic Operator を設定します。

13.2.67.1. logging

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

  • rootLogger.level

Topic Operator では Apache log4j2 ロガー実装が使用されます。

Kafka リソース KafkaentityOperator.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 ロギング

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
  # ...

外部ロギング

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 プロパティー を使用して有効 (または無効) にすることもできます。

13.2.67.2. EntityTopicOperatorSpec スキーマプロパティー

プロパティー説明

watchedNamespace

Topic Operator が監視する必要のある namespace。

string

image

Topic Operator に使用するイメージ。

string

reconciliationIntervalSeconds

定期的な調整の間隔。

integer

zookeeperSessionTimeoutSeconds

ZooKeeper セッションのタイムアウト。

integer

startupProbe

Pod の起動チェック。

Probe

livenessProbe

Pod の liveness チェック。

Probe

readinessProbe

Pod の readiness チェック。

Probe

resources

予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。

ResourceRequirements

topicMetadataMaxAttempts

トピックメタデータの取得を試行する回数。

integer

logging

ロギング設定。タイプは、指定のオブジェクト内の logging.type プロパティーの値によって異なり、[inline、external] のいずれかでなければなりません。

InlineLogging, ExternalLogging

jvmOptions

Pod の JVM オプション。

JvmOptions

13.2.68. EntityUserOperatorSpec スキーマ参照

EntityOperatorSpec で使用

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

User Operator を設定します。

13.2.68.1. logging

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

  • rootLogger.level

User Operator では Apache log4j2 ロガー実装が使用されます。

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 ロギング

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
  # ...

外部ロギング

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 プロパティー を使用して有効 (または無効) にすることもできます。

13.2.68.2. EntityUserOperatorSpec スキーマプロパティー

プロパティー説明

watchedNamespace

User Operator が監視する必要のある namespace。

string

image

User Operator に使用するイメージ。

string

reconciliationIntervalSeconds

定期的な調整の間隔。

integer

zookeeperSessionTimeoutSeconds

ZooKeeper セッションのタイムアウト。

integer

secretPrefix

KafkaUser 名に追加され、Secret 名として使用されるプレフィックス。

string

livenessProbe

Pod の liveness チェック。

Probe

readinessProbe

Pod の readiness チェック。

Probe

resources

予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。

ResourceRequirements

logging

ロギング設定。タイプは、指定のオブジェクト内の logging.type プロパティーの値によって異なり、[inline、external] のいずれかでなければなりません。

InlineLogging, ExternalLogging

jvmOptions

Pod の JVM オプション。

JvmOptions

13.2.69. EntityOperatorTemplate スキーマ参照

EntityOperatorSpec で使用

プロパティー説明

deployment

Entity Operator Deployment のテンプレート。

ResourceTemplate

pod

Entity Operator Pods のテンプレート。

PodTemplate

tlsSidecarContainer

Entity Operator TLS サイドカーコンテナーのテンプレート。

ContainerTemplate

topicOperatorContainer

Entity Topic Operator コンテナーのテンプレート。

ContainerTemplate

userOperatorContainer

Entity User Operator コンテナーのテンプレート。

ContainerTemplate

13.2.70. CertificateAuthority スキーマ参照

KafkaSpec で使用

TLS 証明書のクラスター内での使用方法の設定。これは、クラスター内の内部通信に使用される証明書および Kafka.spec.kafka.listeners.tls を介したクライアントアクセスに使用される証明書の両方に適用されます。

プロパティー説明

generateCertificateAuthority

true の場合、認証局の証明書が自動的に生成されます。それ以外の場合は、ユーザーは CA 証明書で Secret を提供する必要があります。デフォルトは true です。

boolean

generateSecretOwnerReference

true の場合、クラスターおよびクライアント CA Secret は Kafka リソースに設定された ownerReference で設定されます。true の場合、Kafka リソースが削除されると、CA Secret も削除されます。false の場合、ownerReference は無効になります。false の場合、Kafka リソースが削除されると、CA Secret は保持され、再利用できます。デフォルトは true です。

boolean

validityDays

生成される証明書の有効日数。デフォルトは 365 です。

integer

renewalDays

証明書更新期間の日数。これは、証明書の期限が切れるまでの日数です。この間に、更新アクションを実行することができます。generateCertificateAuthority が true の場合、新しい証明書が生成されます。generateCertificateAuthority が true の場合、保留中の証明書の有効期限に関する追加のロギングが WARN レベルで実行されます。デフォルトは 30 です。

integer

certificateExpirationPolicy

generateCertificateAuthority=true の場合に CA 証明書の有効期限を処理する方法。デフォルトでは、既存の秘密鍵を再度使用して新規の CA 証明書が生成されます。

string ([replace-key、renew-certificate] のいずれか)

13.2.71. CruiseControlSpec スキーマ参照

KafkaSpec で使用

プロパティー説明

image

Pod の Docker イメージ。

string

tlsSidecar

TLS サイドカーの設定。

TlsSidecar

resources

Cruise Control コンテナー用に予約された CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。

ResourceRequirements

livenessProbe

Cruise Control コンテナーの Pod liveness チェック

Probe

readinessProbe

Cruise Control コンテナーの Pod readiness チェック

Probe

jvmOptions

Cruise Control コンテナーの JVM オプション

JvmOptions

logging

Cruise Control のロギング設定 (Log4j 2)。タイプは、指定のオブジェクト内の logging.type プロパティーの値によって異なり、[inline、external] のいずれかでなければなりません。

InlineLogging, ExternalLogging

template

Cruise Control のリソースである Deployments および Pods の生成方法を指定するテンプレート。

CruiseControlTemplate

brokerCapacity

Cruise Control brokerCapacity の設定。

BrokerCapacity

config

Cruise Control の設定。設定オプションの完全リストは、https://github.com/linkedin/cruise-control/wiki/Configurations を参照してください。次のプレフィックスのあるプロパティーは設定できません: bootstrap.servers、client.id、zookeeper.、network.、security.、failed.brokers.zk.path、webserver.http.、 webserver.api.urlprefix、webserver.session.path、webserver.accesslog.、two.step.、request.reason.required、metric.reporter.sampler.bootstrap.servers、 metric.reporter.topic、partition.metric.sample.store.topic、broker.metric.sample.store.topic、capacity.config.file、self.healing.、anomaly.detection.、ssl (例外は ssl.cipher.suites、ssl.protocol、ssl.enabled.protocols、webserver.http.cors.enabled、webserver.http.cors.origin、webserver.http.cors.exposeheaders)

map

metrics

metrics プロパティーは非推奨となり、spec.cruiseControl.metricsConfig を使用して設定する必要があります。metrics プロパティーは API バージョン v1beta2 で削除されます。Prometheus JMX エクスポーターの設定。この設定の構造に関する詳細は、https://github.com/prometheus/jmx_exporter を参照してください。

map

metricsConfig

メトリクスの設定。タイプは、指定のオブジェクト内の metricsConfig.type プロパティーの値によって異なり、[jmxPrometheusExporter] の 1 つでなければなりません。

JmxPrometheusExporterMetrics

13.2.72. CruiseControlTemplate スキーマ参照

CruiseControlSpec で使用

プロパティー説明

deployment

Cruise Control Deployment のテンプレート。

ResourceTemplate

pod

Cruise Control Pods のテンプレート。

PodTemplate

apiService

Cruise Control API Service のテンプレート。

ResourceTemplate

podDisruptionBudget

Cruise Control PodDisruptionBudget のテンプレート。

PodDisruptionBudgetTemplate

cruiseControlContainer

Cruise Control コンテナーのテンプレート。

ContainerTemplate

tlsSidecarContainer

Cruise Control TLS サイドカーコンテナーのテンプレート。

ContainerTemplate

13.2.73. BrokerCapacity スキーマ参照

CruiseControlSpec で使用

プロパティー説明

disk

ディスクのバイト単位のブローカー容量 (例: 100Gi)

string

cpuUtilization

パーセントで表された CPU リソース使用率のブローカー容量 (0 - 100)。

integer

inboundNetwork

バイト毎秒単位のインバウンドネットワークスループットのブローカー容量 (例: 10000KB/s)。

string

outboundNetwork

バイト毎秒単位のアウトバウンドネットワークスループットのブローカー容量 (例: 10000KB/s)。

string

13.2.74. KafkaExporterSpec スキーマ参照

KafkaSpec で使用

プロパティー説明

image

Pod の Docker イメージ。

string

groupRegex

収集するコンシューマーグループを指定する正規表現。デフォルト値は .* です。

string

topicRegex

収集するトピックを指定する正規表現。デフォルト値は .* です。

string

resources

予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。

ResourceRequirements

logging

指定の重大度以上のログメッセージのみ。有効な値は [debuginfowarnerrorfatal] です。デフォルトのログレベルは info です。

string

enableSaramaLogging

Kafka Exporter によって使用される Go クライアントライブラリーである Sarama ロギングを有効にします。

boolean

template

デプロイメントテンプレートおよび Pod のカスタマイズ。

KafkaExporterTemplate

livenessProbe

Pod の liveness チェック。

Probe

readinessProbe

Pod の readiness チェック。

Probe

13.2.75. KafkaExporterTemplate スキーマ参照

KafkaExporterSpec で使用

プロパティー説明

deployment

Kafka Exporter Deployment のテンプレート。

ResourceTemplate

pod

Kafka Exporter Pods のテンプレート。

PodTemplate

service

Kafka Exporter Service のテンプレート。

ResourceTemplate

container

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

ContainerTemplate

13.2.76. KafkaStatus スキーマ参照

Kafka で使用

プロパティー説明

conditions

ステータス条件の一覧。

Condition array

observedGeneration

最後に Operator によって調整された CRD の生成。

integer

listeners

内部リスナーおよび外部リスナーのアドレス。

ListenerStatus array

clusterId

Kafka クラスター ID。

string

13.2.77. Condition スキーマ参照

KafkaBridgeStatusKafkaConnectorStatusKafkaConnectS2IStatusKafkaConnectStatusKafkaMirrorMaker2StatusKafkaMirrorMakerStatusKafkaRebalanceStatusKafkaStatusKafkaTopicStatusKafkaUserStatus で使用

プロパティー説明

type

リソース内の他の条件と区別するために使用される条件の固有識別子。

string

status

条件のステータス (True、False、または Unknown のいずれか)。

string

lastTransitionTime

タイプの条件がある状態から別の状態へと最後に変更した時間。必須形式は、UTC タイムゾーンの 'yyyy-MM-ddTHH:mm:ssZ' です。

string

reason

条件の最後の遷移の理由 (CamelCase の単一の単語)。

string

message

条件の最後の遷移の詳細を示す、人間が判読できるメッセージ。

string

13.2.78. ListenerStatus スキーマ参照

KafkaStatus で使用

プロパティー説明

type

リスナーのタイプ。次の 3 つのタイプのいずれかになります: plaintls、または external

string

addresses

このリスナーのアドレス一覧。

ListenerAddress array

bootstrapServers

このリスナーを使用して Kafka クラスターに接続するための host:port ペアのコンマ区切りリスト。

string

certificates

指定のリスナーへの接続時に、サーバーのアイデンティティーを検証するために使用できる TLS 証明書の一覧。tls および external リスナーにのみ設定。

string array

13.2.79. ListenerAddress スキーマ参照

ListenerStatus で使用

プロパティー説明

host

Kafka ブートストラップサービスの DNS 名または IP アドレス。

string

port

Kafka ブートストラップサービスのポート。

integer

13.2.80. KafkaConnect スキーマ参照

プロパティー説明

spec

Kafka Connect クラスターの仕様。

KafkaConnectSpec

status

Kafka Connect クラスターのステータス。

KafkaConnectStatus

13.2.81. KafkaConnectSpec スキーマ参照

KafkaConnect で使用

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

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

13.2.81.1. config

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

標準の Apache Kafka Connect 設定が提供されることがありますが、AMQ Streams によって直接管理されないプロパティーに限定されます。

以下に関連する設定オプションは設定できません。

  • Kafka クラスターブートストラップアドレス
  • セキュリティー (暗号化、認証、および承認)
  • リスナー / REST インターフェースの設定
  • プラグインパスの設定

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

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

AMQ Streams で直接管理されるオプションを除き、Apache Kafka ドキュメント に記載されているオプションを指定および設定できます。以下の文字列の 1 つと同じキーまたは以下の文字列の 1 つで始まるキーを持つ設定オプションは禁止されています。

  • ssl.
  • sasl.
  • security.
  • listeners
  • plugin.path
  • rest.
  • bootstrap.servers

禁止されているオプションが config プロパティーにある場合、そのオプションは無視され、警告メッセージが Cluster Operator ログファイルに出力されます。その他のオプションはすべて Kafka Connect に渡されます。

重要

提供された config オブジェクトのキーまたは値は Cluster Operator によって検証されません。無効な設定を指定すると、Kafka Connect クラスターが起動しなかったり、不安定になる可能性があります。この状況で、KafkaConnect.spec.config または KafkaConnectS2I.spec.config オブジェクトの設定を修正すると、Cluster Operator は新しい設定をすべての Kafka Connect ノードにロールアウトできます。

以下のオプションにはデフォルト値があります。

  • 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 または KafkaConnectS2I.spec.config プロパティーになかった場合に自動的に設定されます。

禁止されているオプションには例外があります。TLS バージョンの特定の 暗号スイート を使用して、クライアント接続に許可される 3 つの ssl 設定オプションを使用します。暗号スイートは、セキュアな接続とデータ転送のためのアルゴリズムを組み合わせます。また、ssl.endpoint.identification.algorithm プロパティーを設定して、ホスト名の検証を有効または無効にすることもできます。

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
    ssl.cipher.suites: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
    ssl.enabled.protocols: "TLSv1.2"
    ssl.protocol: "TLSv1.2"
    ssl.endpoint.identification.algorithm: HTTPS
  # ...

TLS バージョンに特定の 暗号スイート を使用するクライアント接続では、許可された ssl プロパティー を設定できます。また、ssl.endpoint.identification.algorithm プロパティーを設定して、 ホスト名の検証を有効または無効にすることもできます。

13.2.81.2. logging

Kafka Connect (および Source2Image サポートのある 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 ロギング

apiVersion: kafka.strimzi.io/v1beta2
kind: KafkaConnect
spec:
  # ...
  logging:
    type: inline
    loggers:
      connect.root.logger.level: "INFO"
  # ...

外部ロギング

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 プロパティー を使用して有効 (または無効) にすることもできます。

13.2.81.3. KafkaConnectSpec スキーマプロパティー

プロパティー説明

version

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

string

replicas

Kafka Connect グループの Pod 数。

integer

image

Pod の Docker イメージ。

string

bootstrapServers

接続するブートストラップサーバー。これは <hostname>:‍<port> ペアのコンマ区切りリストとして指定する必要があります。

string

tls

TLS 設定。

KafkaConnectTls

authentication

Kafka Connect の認証設定。タイプは、指定のオブジェクト内の authentication.type プロパティーの値によって異なり、[tls、scram-sha-512、plain、oauth] のいずれかでなければなりません。

KafkaClientAuthenticationTls, KafkaClientAuthenticationScramSha512, KafkaClientAuthenticationPlain, KafkaClientAuthenticationOAuth

config

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 を除く)

map

resources

CPU とメモリーリソースおよび要求された初期リソースの上限。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。

ResourceRequirements

livenessProbe

Pod の liveness チェック。

Probe

readinessProbe

Pod の readiness チェック。

Probe

jvmOptions

Pod の JVM オプション。

JvmOptions

jmxOptions

JMX オプション。

KafkaJmxOptions

affinity

affinity プロパティーは非推奨となり、spec.template.pod.affinity を使用して設定する必要があります。affinity プロパティーは API バージョン v1beta2 で削除されます。Pod のアフィニティールール。詳細は、core/v1 affinity の外部ドキュメント を参照してください。

Affinity

tolerations

tolerations プロパティーは非推奨となり、spec.template.pod.tolerations を使用して設定する必要があります。tolerations プロパティーは API バージョン v1beta2 で削除されます。Pod の許容 (Toleration)。詳細は、core/v1 toleration の外部ドキュメント を参照してください。

Toleration array

logging

Kafka Connect のロギング設定。タイプは、指定のオブジェクト内の logging.type プロパティーの値によって異なり、[inline、external] のいずれかでなければなりません。

InlineLogging, ExternalLogging

metrics

metrics プロパティーは非推奨となり、spec.metricsConfig を使用して設定する必要があります。metrics プロパティーは API バージョン v1beta2 で削除されます。Prometheus JMX エクスポーターの設定。この設定の構造に関する詳細は、https://github.com/prometheus/jmx_exporter を参照してください。

map

tracing

Kafka Connect でのトレーシングの設定。タイプは、指定のオブジェクト内の tracing.type プロパティーの値によって異なり、[jaeger] の 1 つでなければなりません。

JaegerTracing

template

Kafka Connect および Kafka Connect S2I リソースのテンプレート。テンプレートを使用すると、ユーザーは DeploymentPods、および Service の生成方法を指定できます。

KafkaConnectTemplate

externalConfiguration

Secret または ConfigMap から Kafka Connect Pod にデータを渡し、これを使用してコネクターを設定します。

ExternalConfiguration

build

Connect コンテナーイメージを構築する方法を設定します。任意設定。

Build

clientRackInitImage

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

string

metricsConfig

メトリクスの設定。タイプは、指定のオブジェクト内の metricsConfig.type プロパティーの値によって異なり、[jmxPrometheusExporter] の 1 つでなければなりません。

JmxPrometheusExporterMetrics

rack

client.rack コンシューマー設定として使用されるノードラベルの設定。

Rack

13.2.82. KafkaConnectTls スキーマ参照

KafkaConnectS2ISpecKafkaConnectSpec で使用

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

Kafka Connect をクラスターに接続するために TLS で信頼される証明書を設定します。

13.2.82.1. trustedCertificates

trustedCertificates プロパティー を使用してシークレットのリストを提供します。

13.2.82.2. KafkaConnectTls スキーマプロパティー

プロパティー説明

trustedCertificates

TLS 接続の信頼済み証明書。

CertSecretSource array

13.2.83. KafkaClientAuthenticationTls スキーマ参照

KafkaBridgeSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec で使用

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

TLS クライアント認証を設定するには、type プロパティーを tls の値に設定します。TLS クライアント認証は TLS 証明書を使用して認証します。

13.2.83.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
注記

TLS クライアント認証は TLS 接続でのみ使用できます。

TLS クライアント認証の設定例

authentication:
  type: tls
  certificateAndKey:
    secretName: my-secret
    certificate: my-public-tls-certificate-file.crt
    key: private.key

13.2.83.2. KafkaClientAuthenticationTls スキーマプロパティー

type プロパティーは、KafkaClientAuthenticationTls タイプの使用を KafkaClientAuthenticationScramSha512KafkaClientAuthenticationPlain、および KafkaClientAuthenticationOAuth と区別する識別子です。KafkaClientAuthenticationTls タイプには tls の値が必要です。

プロパティー説明

certificateAndKey

証明書と秘密鍵のペアを保持する Secret への参照。

CertAndKeySecretSource

type

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

string

13.2.84. KafkaClientAuthenticationScramSha512 スキーマ参照

KafkaBridgeSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec で使用

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

SASL ベースの SCRAM-SHA-512 認証を設定するには、type プロパティーを scram-sha-512 に設定します。SCRAM-SHA-512 認証メカニズムには、ユーザー名とパスワードが必要です。

13.2.84.1. username

username プロパティーでユーザー名を指定します。

13.2.84.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

13.2.84.3. KafkaClientAuthenticationScramSha512 スキーマプロパティー

type プロパティーは、KafkaClientAuthenticationScramSha512 タイプの使用を KafkaClientAuthenticationTlsKafkaClientAuthenticationPlain、および KafkaClientAuthenticationOAuth と区別する識別子です。KafkaClientAuthenticationScramSha512 タイプには scram-sha-512 の値が必要です。

プロパティー説明

passwordSecret

パスワードを保持する Secret への参照。

PasswordSecretSource

type

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

string

username

認証に使用されるユーザー名。

string

13.2.85. PasswordSecretSource スキーマ参照

KafkaClientAuthenticationPlainKafkaClientAuthenticationScramSha512 で使用

プロパティー説明

password

パスワードが保存される Secret のキーの名前。

string

secretName

パスワードを含むシークレットの名前。

string

13.2.86. KafkaClientAuthenticationPlain スキーマ参照

KafkaBridgeSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec で使用

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

SASL ベースの PLAIN 認証を設定するには、type プロパティーを plain に設定します。SASL PLAIN 認証メカニズムには、ユーザー名とパスワードが必要です。

警告

SASL PLAIN メカニズムは、クリアテキストでユーザー名とパスワードをネットワーク全体に転送します。TLS による暗号化が有効になっている場合にのみ SASL PLAIN 認証を使用します。

13.2.86.1. username

username プロパティーでユーザー名を指定します。

13.2.86.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

13.2.86.3. KafkaClientAuthenticationPlain スキーマプロパティー

type プロパティーは、KafkaClientAuthenticationPlain タイプの使用を KafkaClientAuthenticationTlsKafkaClientAuthenticationScramSha512、および KafkaClientAuthenticationOAuth と区別する識別子です。KafkaClientAuthenticationPlain タイプには plain の値が必要です。

プロパティー説明

passwordSecret

パスワードを保持する Secret への参照。

PasswordSecretSource

type

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

string

username

認証に使用されるユーザー名。

string

13.2.87. KafkaClientAuthenticationOAuth スキーマ参照

KafkaBridgeSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2ClusterSpecKafkaMirrorMakerConsumerSpecKafkaMirrorMakerProducerSpec で使用

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

クライアント 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

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

13.2.87.1. KafkaClientAuthenticationOAuth スキーマプロパティー

type プロパティーは、KafkaClientAuthenticationOAuth タイプの使用を KafkaClientAuthenticationTlsKafkaClientAuthenticationScramSha512、および KafkaClientAuthenticationPlain と区別する識別子です。KafkaClientAuthenticationOAuth タイプには oauth の値が必要です。

プロパティー説明

accessToken

承認サーバーから取得したアクセストークンが含まれる OpenShift シークレットへのリンク。

GenericSecretSource

accessTokenIsJwt

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

boolean

clientId

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

string

clientSecret

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

GenericSecretSource

disableTlsHostnameVerification

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

boolean

maxTokenExpirySeconds

アクセストークンの有効期間を指定の秒数に設定または制限します。これは、承認サーバーが不透明なトークンを返す場合に設定する必要があります。

integer

refreshToken

承認サーバーからアクセストークンを取得するために使用できる更新トークンが含まれる OpenShift シークレットへのリンク。

GenericSecretSource

scope

承認サーバーに対して認証を行うときに使用する OAuth スコープ。一部の承認サーバーでこれを設定する必要があります。許可される値は、承認サーバーの設定によります。デフォルトでは、トークンエンドポイントリクエストを実行する場合は scope は指定されません。

string

tlsTrustedCertificates

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

CertSecretSource array

tokenEndpointUri

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

string

type

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

string

13.2.88. JaegerTracing スキーマ参照

KafkaBridgeSpecKafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2SpecKafkaMirrorMakerSpec で使用

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

プロパティー説明

type

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

string

13.2.89. KafkaConnectTemplate スキーマ参照

KafkaConnectS2ISpecKafkaConnectSpecKafkaMirrorMaker2Spec で使用

プロパティー説明

deployment

Kafka Connect Deployment のテンプレート。

DeploymentTemplate

pod

Kafka Connect Pods のテンプレート。

PodTemplate

apiService

Kafka Connect API Service のテンプレート。

ResourceTemplate

buildConfig

新しいコンテナーイメージをビルドするために使用される Kafka Connect BuildConfig のテンプレート。BuildConfig は OpenShift でのみ使用されます。

ResourceTemplate

buildContainer

Kafka Connect Build コンテナーのテンプレート。build コンテナーは OpenShift でのみ使用されます。

ContainerTemplate

buildPod

Kafka Connect Build Pods のテンプレート。build Pod は OpenShift でのみ使用されます。

PodTemplate

clusterRoleBinding

Kafka Connect ClusterRoleBinding のテンプレート。

ResourceTemplate

connectContainer

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

ContainerTemplate

initContainer

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

ContainerTemplate

podDisruptionBudget

Kafka Connect PodDisruptionBudget のテンプレート。

PodDisruptionBudgetTemplate

13.2.90. DeploymentTemplate スキーマ参照

KafkaBridgeTemplateKafkaConnectTemplate