第13章 カスタムリソース API のリファレンス
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 # ...
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
プロパティーとともに使用されます。
-
image
とversion
のどちらもカスタムリソースに指定されていない場合、version
は Cluster Operator のデフォルトの Kafka バージョンに設定され、環境変数のこのバージョンに対応するイメージが指定されます。 -
image
が指定されていてもversion
が指定されていない場合、指定されたイメージが使用され、Cluster Operator のデフォルトの Kafka バージョンがversion
であると想定されます。 -
version
が指定されていてもimage
が指定されていない場合、環境変数の指定されたバージョンに対応するイメージが使用されます。 -
version
とimage
の両方を指定すると、指定されたイメージが使用されます。このイメージには、指定のバージョンの 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 の場合:
-
Cluster Operator 設定から
STRIMZI_DEFAULT_TOPIC_OPERATOR_IMAGE
環境変数に指定されたコンテナーイメージ。 -
registry.redhat.io/amq7/amq-streams-rhel7-operator:1.7.0
コンテナーイメージ。
-
Cluster Operator 設定から
User Operator の場合:
-
Cluster Operator 設定から
STRIMZI_DEFAULT_USER_OPERATOR_IMAGE
環境変数に指定されたコンテナーイメージ。 -
registry.redhat.io/amq7/amq-streams-rhel7-operator:1.7.0
コンテナーイメージ。
-
Cluster Operator 設定から
Entity Operator TLS サイドカーの場合:
-
Cluster Operator 設定から
STRIMZI_DEFAULT_TLS_SIDECAR_ENTITY_OPERATOR_IMAGE
環境変数に指定されたコンテナーイメージ。 -
registry.redhat.io/amq7/amq-streams-kafka-27-rhel7:1.7.0
コンテナーイメージ。
-
Cluster Operator 設定から
Kafka Exporter の場合:
-
Cluster Operator 設定から
STRIMZI_DEFAULT_KAFKA_EXPORTER_IMAGE
環境変数に指定されたコンテナーイメージ。 -
registry.redhat.io/amq7/amq-streams-kafka-27-rhel7:1.7.0
コンテナーイメージ。
-
Cluster Operator 設定から
Kafka Bridge の場合:
-
Cluster Operator 設定から
STRIMZI_DEFAULT_KAFKA_BRIDGE_IMAGE
環境変数に指定されたコンテナーイメージ。 -
registry.redhat.io/amq7/amq-streams-bridge-rhel7:1.7.0
コンテナーイメージ。
-
Cluster Operator 設定から
Kafka ブローカーイニシャライザーの場合:
-
Cluster Operator 設定から
STRIMZI_DEFAULT_KAFKA_INIT_IMAGE
環境変数に指定されたコンテナーイメージ。 -
registry.redhat.io/amq7/amq-streams-rhel7-operator:1.7.0
コンテナーイメージ。
-
Cluster Operator 設定から
コンテナーイメージ設定の例
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 の仕様。 |
status | Kafka および ZooKeeper クラスター、Topic Operator のステータス。 |
13.2.2. KafkaSpec
スキーマ参照
Kafka
で使用
プロパティー | 説明 |
---|---|
kafka | Kafka クラスターの設定。 |
zookeeper | ZooKeeper クラスターの設定。 |
topicOperator |
|
entityOperator | Entity Operator の設定。 |
clusterCa | クラスター認証局の設定。 |
clientsCa | クライアント認証局の設定。 |
cruiseControl | Cruise Control デプロイメントの設定。指定時に Cruise Control インスタンスをデプロイします。 |
kafkaExporter | Kafka Exporter の設定。Kafka Exporter は追加のメトリクスを提供できます (例: トピック/パーティションでのコンシューマーグループのラグなど)。 |
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
フィールドがない場合、優先順位順に以下のイメージが使用されます。
-
Cluster Operator 設定の
STRIMZI_DEFAULT_KAFKA_INIT_IMAGE
環境変数に指定されたコンテナーイメージ。 -
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 イメージ。デフォルト値は、設定した |
string | |
listeners | Kafka ブローカーのリスナーを設定します。 |
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 |
ストレージの設定 (ディスク)。更新はできません。タイプは、指定のオブジェクト内の |
authorization |
Kafka ブローカーの承認設定。タイプは、指定のオブジェクト内の |
| |
rack |
|
brokerRackInitImage |
|
string | |
affinity |
|
tolerations |
|
Toleration array | |
livenessProbe | Pod の liveness チェック。 |
readinessProbe | Pod の readiness チェック。 |
jvmOptions | Pod の JVM オプション。 |
jmxOptions | Kafka ブローカーの JMX オプション。 |
resources | 予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。 |
metrics |
|
map | |
metricsConfig |
メトリクスの設定。タイプは、指定のオブジェクト内の |
logging |
Kafka のロギング設定。タイプは、指定のオブジェクト内の |
tlsSidecar |
|
template |
Kafka クラスターリソースのテンプレート。テンプレートを使用すると、ユーザーは |
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
と設定するか、外部リスナーの場合は route
、loadbalancer
、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
- オプション:
ingress
、loadbalancer
、nodeport
、route
13.2.4.7. GenericKafkaListener
スキーマプロパティー
プロパティー | 説明 |
---|---|
name | リスナーの名前。名前は、リスナーおよび関連する OpenShift オブジェクトの識別に使用されます。指定の Kafka クラスター内で一意となる必要があります。この名前には、小文字と数字を使用でき、最大 11 文字まで使用できます。 |
string | |
port | Kafka 内でリスナーによって使用されるポート番号。ポート番号は指定の Kafka クラスター内で一意である必要があります。許可されるポート番号は 9092 以上ですが、すでに Prometheus および JMX によって使用されているポート 9404 および 9999 以外になります。リスナーのタイプによっては、ポート番号は Kafka クライアントに接続するポート番号と同じではない場合があります。 |
integer | |
type |
リスナーのタイプ。現在サポートされるタイプは、
* |
string ([ingress、internal、route、loadbalancer、nodeport] のいずれか) | |
tls | リスナーで TLS による暗号化を有効にします。これは必須プロパティーです。 |
boolean | |
authentication |
このリスナーの認証設定。タイプは、指定のオブジェクト内の |
| |
configuration | 追加のリスナー設定。 |
networkPolicyPeers | このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。 |
NetworkPolicyPeer array |
13.2.5. KafkaListenerAuthenticationTls
スキーマ参照
GenericKafkaListener
、KafkaListenerExternalIngress
、KafkaListenerExternalLoadBalancer
、KafkaListenerExternalNodePort
、KafkaListenerExternalRoute
、KafkaListenerPlain
、KafkaListenerTls
で使用
type
プロパティーは、KafkaListenerAuthenticationTls
タイプの使用を KafkaListenerAuthenticationScramSha512
、KafkaListenerAuthenticationOAuth
と区別する識別子です。KafkaListenerAuthenticationTls
タイプには tls
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string |
13.2.6. KafkaListenerAuthenticationScramSha512
スキーマ参照
GenericKafkaListener
、KafkaListenerExternalIngress
、KafkaListenerExternalLoadBalancer
、KafkaListenerExternalNodePort
、KafkaListenerExternalRoute
、KafkaListenerPlain
、KafkaListenerTls
で使用
type
プロパティーは、KafkaListenerAuthenticationScramSha512
タイプの使用を KafkaListenerAuthenticationTls
、KafkaListenerAuthenticationOAuth
と区別する識別子です。KafkaListenerAuthenticationScramSha512
タイプには scram-sha-512
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string |
13.2.7. KafkaListenerAuthenticationOAuth
スキーマ参照
GenericKafkaListener
、KafkaListenerExternalIngress
、KafkaListenerExternalLoadBalancer
、KafkaListenerExternalNodePort
、KafkaListenerExternalRoute
、KafkaListenerPlain
、KafkaListenerTls
で使用
type
プロパティーは、KafkaListenerAuthenticationOAuth
タイプの使用を KafkaListenerAuthenticationTls
、KafkaListenerAuthenticationScramSha512
と区別する識別子です。KafkaListenerAuthenticationOAuth
タイプには oauth
の値が必要です。
プロパティー | 説明 |
---|---|
accessTokenIsJwt |
アクセストークンを JWT として処理するかどうかを設定します。承認サーバーが不透明なトークンを返す場合は、 |
boolean | |
checkAccessTokenType |
アクセストークンタイプのチェックを行うかどうかを設定します。承認サーバーの JWT トークンに 'typ' 要求が含まれない場合は、 |
boolean | |
checkAudience |
オーディエンスのチェックを有効または無効にします。オーディエンスのチェックによって、トークンの受信者が特定されます。オーディエンスのチェックが有効な場合は、 |
boolean | |
checkIssuer |
発行元のチェックを有効または無効にします。デフォルトでは、 |
boolean | |
clientId | Kafka ブローカーは、OAuth クライアント ID を使用して承認サーバーに対して認証し、イントロスペクションエンドポイント URI を使用することができます。 |
string | |
clientSecret | OAuth クライアントシークレットが含まれる OpenShift シークレットへのリンク。Kafka ブローカーは、OAuth クライアントシークレットを使用して承認サーバーに対して認証し、イントロスペクションエンドポイント URI を使用することができます。 |
customClaimCheck | JWT トークンに適用される JSONPath フィルタークエリー、または追加のトークン検証のイントロスペクションエンドポイントの応答に適用される JSONPath フィルタークエリー。デフォルトでは設定されません。 |
string | |
disableTlsHostnameVerification |
TLS ホスト名の検証を有効または無効にします。デフォルト値は |
boolean | |
enableECDSA |
BouncyCastle 暗号プロバイダーをインストールして、ECDSA サポートを有効または無効にします。デフォルト値は |
boolean | |
enableOauthBearer |
SASL_OAUTHBEARER での OAuth 認証を有効または無効にします。デフォルト値は |
boolean | |
enablePlain |
SASL_PLAIN で OAuth 認証を有効または無効にします。このメカニズムが使用される場合、再認証はサポートされません。デフォルト値は |
boolean | |
fallbackUserNameClaim |
|
string | |
fallbackUserNamePrefix |
ユーザー ID を構成するために |
string | |
introspectionEndpointUri | 不透明な JWT 以外のトークンの検証に使用できるトークンイントロスペクションエンドポイントの URI。 |
string | |
jwksEndpointUri | ローカルの JWT 検証に使用できる JWKS 証明書エンドポイントの URI。 |
string | |
jwksExpirySeconds |
JWKS 証明書が有効とみなされる頻度を設定します。期限切れの間隔は、 |
integer | |
jwksMinRefreshPauseSeconds | 連続する 2 回の更新の間に適用される最小の一時停止期間。不明な署名鍵が検出されると、更新は即座にスケジュールされますが、この最小一時停止の期間は待機します。デフォルトは 1 秒です。 |
integer | |
jwksRefreshSeconds |
JWKS 証明書が更新される頻度を設定します。更新間隔は、 |
integer | |
maxSecondsWithoutReauthentication |
再認証せずに認証されたセッションが有効な状態でいられる最大期間 (秒単位)。これにより、Apache Kafka の再認証機能が有効になり、アクセストークンの有効期限が切れるとセッションが期限切れになります。最大期間の前または最大期間の到達時にアクセストークンが期限切れになると、クライアントは再認証する必要があります。そうでないと、サーバーは接続を切断します。デフォルトでは設定されません。アクセストークンが期限切れになっても認証されたセッションは期限切れになりません。このオプションは SASL_OAUTHBEARER 認証メカニズム ( |
integer | |
tlsTrustedCertificates | OAuth サーバーへの TLS 接続の信頼済み証明書。 |
| |
tokenEndpointUri | クライアントが clientId およびシークレットで認証されるときに SASL_PLAIN メカニズムで使用するトークンエンドポイントの URI。 |
string | |
type |
|
string | |
userInfoEndpointUri | Introspection Endpoint がユーザー ID に使用できる情報を返さない場合に、ユーザー ID 取得のフォールバックとして使用する User Info Endpoint の URL。 |
string | |
userNameClaim |
ユーザー ID の取得に使用される JWT 認証トークン、Introspection Endpoint の応答、または User Info Endpoint の応答からの要求の名前。デフォルトは |
string | |
validIssuerUri | 認証に使用されるトークン発行者の URI。 |
string | |
validTokenType |
Introspection Endpoint によって返される |
string |
13.2.8. GenericSecretSource
スキーマ参照
KafkaClientAuthenticationOAuth
、KafkaListenerAuthenticationOAuth
で使用
プロパティー | 説明 |
---|---|
key | OpenShift シークレットでシークレット値が保存されるキー。 |
string | |
secretName | シークレット値が含まれる OpenShift シークレットの名前。 |
string |
13.2.9. CertSecretSource
スキーマ参照
KafkaAuthorizationKeycloak
、KafkaBridgeTls
、KafkaClientAuthenticationOAuth
、KafkaConnectTls
、KafkaListenerAuthenticationOAuth
、KafkaMirrorMaker2Tls
、KafkaMirrorMakerTls
で使用
プロパティー | 説明 |
---|---|
certificate | Secret のファイル証明書の名前。 |
string | |
secretName | 証明書が含まれる Secret の名前。 |
string |
13.2.10. GenericKafkaListenerConfiguration
スキーマ参照
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 は標準の優先順位でタイプの検索を続行します。
- ExternalDNS
- ExternalIP
- Hostname
- InternalDNS
- InternalIP
優先ノードポートアドレスタイプで設定された外部リスナーの例
listeners: #... - name: external port: 9094 type: nodeport tls: false configuration: preferredNodePortAddressType: InternalDNS # ... # ...
13.2.10.6. useServiceDnsDomain
useServiceDnsDomain
プロパティーは、internal
リスナーとのみ使用されます。クラスターサービスサフィックス (通常は .cluster.local
) を含む完全修飾 DNS 名が使用されるかどうかを定義します。useServiceDnsDomain
を false
に設定すると、サービスサフィックスのないアドバタイズされたアドレスが生成されます (例my-cluster-kafka-0.my-cluster-kafka-brokers.myproject.svc
)。useServiceDnsDomain
を true
に設定すると、サービスサフィックスのあるアドバタイズされたアドレスが生成されます (例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 |
このリスナーに使用される証明書と秘密鍵のペアを保持する |
externalTrafficPolicy |
サービスによって外部トラフィックがローカルノードのエンドポイントまたはクラスター全体のエンドポイントにルーティングされるかどうかを指定します。 |
string ([Local、Cluster] のいずれか) | |
loadBalancerSourceRanges |
クライアントがロードバランサータイプのリスナーに接続できる CIDR 形式による範囲 (例: |
string array | |
bootstrap | ブートストラップの設定。 |
brokers | ブローカーごとの設定。 |
class |
使用される |
string | |
preferredNodePortAddressType |
ノードアドレスとして使用するアドレスタイプを定義します。利用可能なタイプは、
このフィールドは、優先タイプとして使用され、最初にチェックされるアドレスタイプの選択に使用できます。このアドレスタイプのアドレスが見つからない場合は、デフォルトの順序で他のタイプが使用されます。このフィールドは、 |
string ([ExternalDNS、ExternalIP、Hostname、InternalIP、InternalDNS] のいずれか) | |
useServiceDnsDomain |
OpenShift サービス DNS ドメインを使用するべきかどうかを設定します。 |
boolean |
13.2.11. CertAndKeySecretSource
スキーマ参照
GenericKafkaListenerConfiguration
、IngressListenerConfiguration
、KafkaClientAuthenticationTls
、KafkaListenerExternalConfiguration
、NodePortListenerConfiguration
、TlsListenerConfiguration
で使用
プロパティー | 説明 |
---|---|
certificate | Secret のファイル証明書の名前。 |
string | |
key | Secret の秘密鍵の名前。 |
string | |
secretName | 証明書が含まれる Secret の名前。 |
string |
13.2.12. GenericKafkaListenerConfigurationBootstrap
スキーマ参照
GenericKafkaListenerConfiguration
で使用
GenericKafkaListenerConfigurationBootstrap
スキーマプロパティーの完全リスト
nodePort
、host
、loadBalancerIP
、および 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 リソースで使用されます。このフィールドは、 |
string | |
nodePort |
ブートストラップサービスのノードポート。このフィールドは、 |
integer | |
loadBalancerIP |
ロードバランサーは、このフィールドに指定された IP アドレスで要求されます。この機能は、ロードバランサーの作成時に、基礎となるクラウドプロバイダーが |
string | |
annotations |
|
map | |
labels |
|
map |
13.2.13. GenericKafkaListenerConfigurationBroker
スキーマ参照
GenericKafkaListenerConfiguration
で使用
GenericKafkaListenerConfigurationBroker
スキーマプロパティーの完全リスト
ブートストラップサービスのオーバーライドを設定する GenericKafkaListenerConfigurationBootstrap
スキーマ で、nodePort
、host
、loadBalancerIP
、および 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 |
ブローカーの |
string | |
advertisedPort |
ブローカーの |
integer | |
host |
ブローカーホスト。このフィールドは、ホスト名を指定するために Ingress リソースまたは Route リソースで使用されます。このフィールドは、 |
string | |
nodePort |
ブローカーごとのサービスのノードポート。このフィールドは、 |
integer | |
loadBalancerIP |
ロードバランサーは、このフィールドに指定された IP アドレスで要求されます。この機能は、ロードバランサーの作成時に、基礎となるクラウドプロバイダーが |
string | |
annotations |
|
map | |
labels |
|
map |
13.2.14. KafkaListeners
スキーマ参照
KafkaListeners
タイプは非推奨となり、API バージョン v1beta2
で削除されます。代わりに GenericKafkaListener
を使用してください。
KafkaClusterSpec
で使用
設定例は 以前のドキュメント を参照してください。
プロパティー | 説明 |
---|---|
plain | ポート 9092 でプレーンリスナーを設定します。 |
tls | ポート 9093 で TLS リスナーを設定します。 |
external |
ポート 9094 で外部リスナーを設定します。タイプは、指定のオブジェクト内の |
|
13.2.15. KafkaListenerPlain
スキーマ参照
KafkaListeners
で使用
プロパティー | 説明 |
---|---|
authentication |
このリスナーの認証設定。このリスナーは TLS トランスポートを使用しないため、 |
| |
networkPolicyPeers | このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。 |
NetworkPolicyPeer array |
13.2.16. KafkaListenerTls
スキーマ参照
KafkaListeners
で使用
プロパティー | 説明 |
---|---|
authentication |
このリスナーの認証設定。タイプは、指定のオブジェクト内の |
| |
configuration | TLS リスナーの設定。 |
networkPolicyPeers | このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。 |
NetworkPolicyPeer array |
13.2.17. TlsListenerConfiguration
スキーマ参照
KafkaListenerTls
で使用
プロパティー | 説明 |
---|---|
brokerCertChainAndKey |
証明書と秘密鍵のペアを保持する |
13.2.18. KafkaListenerExternalRoute
スキーマ参照
KafkaListeners
で使用
type
プロパティーは、KafkaListenerExternalRoute
タイプの使用を KafkaListenerExternalLoadBalancer
、KafkaListenerExternalNodePort
、および KafkaListenerExternalIngress
タイプと区別する識別子です。KafkaListenerExternalRoute
タイプには route
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
authentication |
Kafka ブローカーの認証の設定タイプは、指定のオブジェクト内の |
| |
overrides | 外部ブートストラップサービスおよびブローカーサービス、ならびに外部にアドバタイズされたアドレスの上書き。 |
configuration | 外部リスナーの設定。 |
networkPolicyPeers | このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。 |
NetworkPolicyPeer array |
13.2.19. RouteListenerOverride
スキーマ参照
KafkaListenerExternalRoute
で使用
プロパティー | 説明 |
---|---|
bootstrap | 外部ブートストラップサービスの設定。 |
brokers | 外部ブローカーサービスの設定。 |
13.2.20. RouteListenerBootstrapOverride
スキーマ参照
プロパティー | 説明 |
---|---|
address | ブートストラップサービスの追加のアドレス名。このアドレスは、TLS 証明書のサブジェクトの別名の一覧に追加されます。 |
string | |
host |
ブートストラップルートのホスト。このフィールドは OpenShift Route の |
string |
13.2.21. RouteListenerBrokerOverride
スキーマ参照
プロパティー | 説明 |
---|---|
broker | Kafka ブローカーの ID (ブローカー ID)。 |
integer | |
advertisedHost |
ブローカーの |
string | |
advertisedPort |
ブローカーの |
integer | |
host |
ブローカールートのホスト。このフィールドは OpenShift Route の |
string |
13.2.22. KafkaListenerExternalConfiguration
スキーマ参照
KafkaListenerExternalLoadBalancer
、KafkaListenerExternalRoute
で使用
プロパティー | 説明 |
---|---|
brokerCertChainAndKey |
証明書と秘密鍵のペアを保持する |
13.2.23. KafkaListenerExternalLoadBalancer
スキーマ参照
KafkaListeners
で使用
type
プロパティーは、KafkaListenerExternalLoadBalancer
タイプの使用を KafkaListenerExternalRoute
、KafkaListenerExternalNodePort
、および KafkaListenerExternalIngress
タイプと区別する識別子です。KafkaListenerExternalLoadBalancer
タイプには loadbalancer
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
authentication |
Kafka ブローカーの認証の設定タイプは、指定のオブジェクト内の |
| |
overrides | 外部ブートストラップサービスおよびブローカーサービス、ならびに外部にアドバタイズされたアドレスの上書き。 |
configuration | 外部リスナーの設定。 |
networkPolicyPeers | このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。 |
NetworkPolicyPeer array | |
tls |
リスナーで TLS による暗号化を有効にします。有効な TLS 暗号化の場合、デフォルトで |
boolean |
13.2.24. LoadBalancerListenerOverride
スキーマ参照
KafkaListenerExternalLoadBalancer
で使用
プロパティー | 説明 |
---|---|
bootstrap | 外部ブートストラップサービスの設定。 |
brokers | 外部ブローカーサービスの設定。 |
13.2.25. LoadBalancerListenerBootstrapOverride
スキーマ参照
LoadBalancerListenerOverride
で使用
プロパティー | 説明 |
---|---|
address | ブートストラップサービスの追加のアドレス名。このアドレスは、TLS 証明書のサブジェクトの別名の一覧に追加されます。 |
string | |
dnsAnnotations |
|
map | |
loadBalancerIP |
ロードバランサーは、このフィールドに指定された IP アドレスで要求されます。この機能は、ロードバランサーの作成時に、基礎となるクラウドプロバイダーが |
string |
13.2.26. LoadBalancerListenerBrokerOverride
スキーマ参照
LoadBalancerListenerOverride
で使用
プロパティー | 説明 |
---|---|
broker | Kafka ブローカーの ID (ブローカー ID)。 |
integer | |
advertisedHost |
ブローカーの |
string | |
advertisedPort |
ブローカーの |
integer | |
dnsAnnotations |
個別のブローカーの |
map | |
loadBalancerIP |
ロードバランサーは、このフィールドに指定された IP アドレスで要求されます。この機能は、ロードバランサーの作成時に、基礎となるクラウドプロバイダーが |
string |
13.2.27. KafkaListenerExternalNodePort
スキーマ参照
KafkaListeners
で使用
type
プロパティーは、KafkaListenerExternalNodePort
タイプの使用を KafkaListenerExternalRoute
、KafkaListenerExternalLoadBalancer
、および KafkaListenerExternalIngress
タイプと区別する識別子です。KafkaListenerExternalNodePort
タイプには nodeport
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
authentication |
Kafka ブローカーの認証の設定タイプは、指定のオブジェクト内の |
| |
overrides | 外部ブートストラップサービスおよびブローカーサービス、ならびに外部にアドバタイズされたアドレスの上書き。 |
configuration | 外部リスナーの設定。 |
networkPolicyPeers | このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。 |
NetworkPolicyPeer array | |
tls |
リスナーで TLS による暗号化を有効にします。有効な TLS 暗号化の場合、デフォルトで |
boolean |
13.2.28. NodePortListenerOverride
スキーマ参照
KafkaListenerExternalNodePort
で使用
プロパティー | 説明 |
---|---|
bootstrap | 外部ブートストラップサービスの設定。 |
brokers | 外部ブローカーサービスの設定。 |
13.2.29. NodePortListenerBootstrapOverride
スキーマ参照
プロパティー | 説明 |
---|---|
address | ブートストラップサービスの追加のアドレス名。このアドレスは、TLS 証明書のサブジェクトの別名の一覧に追加されます。 |
string | |
dnsAnnotations |
|
map | |
nodePort | ブートストラップサービスのノードポート。 |
integer |
13.2.30. NodePortListenerBrokerOverride
スキーマ参照
プロパティー | 説明 |
---|---|
broker | Kafka ブローカーの ID (ブローカー ID)。 |
integer | |
advertisedHost |
ブローカーの |
string | |
advertisedPort |
ブローカーの |
integer | |
nodePort | ブローカーサービスのノードポート。 |
integer | |
dnsAnnotations |
個別のブローカーの |
map |
13.2.31. NodePortListenerConfiguration
スキーマ参照
KafkaListenerExternalNodePort
で使用
プロパティー | 説明 |
---|---|
brokerCertChainAndKey |
証明書と秘密鍵のペアを保持する |
preferredAddressType |
ノードアドレスとして使用するアドレスタイプを定義します。利用可能なタイプは、 このフィールドは、優先タイプとして使用され、最初にチェックされるアドレスタイプの選択に使用できます。このアドレスタイプのアドレスが見つからない場合は、デフォルトの順序で他のタイプが使用されます。 |
string ([ExternalDNS、ExternalIP、Hostname、InternalIP、InternalDNS] のいずれか) |
13.2.32. KafkaListenerExternalIngress
スキーマ参照
KafkaListeners
で使用
type
プロパティーは、KafkaListenerExternalIngress
タイプの使用を KafkaListenerExternalRoute
、KafkaListenerExternalLoadBalancer
、および KafkaListenerExternalNodePort
タイプと区別する識別子です。KafkaListenerExternalIngress
タイプには ingress
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
authentication |
Kafka ブローカーの認証の設定タイプは、指定のオブジェクト内の |
| |
class |
使用される |
string | |
configuration | 外部リスナーの設定。 |
networkPolicyPeers | このリスナーに接続できるピアの一覧。この一覧のピアは、論理演算子 OR を使用して組み合わせます。このフィールドが空であるか、または存在しない場合、このリスナーのすべてのコネクションが許可されます。このフィールドが存在し、1 つ以上の項目が含まれる場合、リスナーはこの一覧の少なくとも 1 つの項目と一致するトラフィックのみを許可します。詳細は、networking.k8s.io/v1 networkpolicypeer の外部ドキュメントを参照してください。 |
NetworkPolicyPeer array |
13.2.33. IngressListenerConfiguration
スキーマ参照
KafkaListenerExternalIngress
で使用
プロパティー | 説明 |
---|---|
bootstrap | 外部ブートストラップ Ingress の設定。 |
brokers | 外部ブローカー Ingress の設定。 |
brokerCertChainAndKey |
証明書と秘密鍵のペアを保持する |
13.2.34. IngressListenerBootstrapConfiguration
スキーマ参照
IngressListenerConfiguration
で使用
プロパティー | 説明 |
---|---|
address | ブートストラップサービスの追加のアドレス名。このアドレスは、TLS 証明書のサブジェクトの別名の一覧に追加されます。 |
string | |
dnsAnnotations |
|
map | |
host | ブートストラップルートのホスト。このフィールドは Ingress リソースで使用されます。 |
string |
13.2.35. IngressListenerBrokerConfiguration
スキーマ参照
IngressListenerConfiguration
で使用
プロパティー | 説明 |
---|---|
broker | Kafka ブローカーの ID (ブローカー ID)。 |
integer | |
advertisedHost |
ブローカーの |
string | |
advertisedPort |
ブローカーの |
integer | |
host | ブローカー Ingress のホスト。このフィールドは Ingress リソースで使用されます。 |
string | |
dnsAnnotations |
個別のブローカーの |
map |
13.2.36. EphemeralStorage
スキーマ参照
JbodStorage
、KafkaClusterSpec
、ZookeeperClusterSpec
で使用
type
プロパティーは、EphemeralStorage
タイプの使用を PersistentClaimStorage
と区別する識別子です。EphemeralStorage
タイプには ephemeral
の値が必要です。
プロパティー | 説明 |
---|---|
id | ストレージ ID 番号。これは、'jbod' タイプのストレージで定義されるストレージボリュームのみで必須です。 |
integer | |
sizeLimit | type=ephemeral の場合、この EmptyDir ボリュームに必要なローカルストレージの合計容量を定義します (例: 1Gi)。 |
string | |
type |
|
string |
13.2.37. PersistentClaimStorage
スキーマ参照
JbodStorage
、KafkaClusterSpec
、ZookeeperClusterSpec
で使用
type
プロパティーは、PersistentClaimStorage
タイプの使用を EphemeralStorage
と区別する識別子です。PersistentClaimStorage
タイプには persistent-claim
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
size | type=persistent-claim の場合、永続ボリューム要求のサイズを定義します (例: 1Gi).。type=persistent-claim の場合には必須です。 |
string | |
selector | 使用する特定の永続ボリュームを指定します。このようなボリュームを選択するラベルを表す key:value ペアが含まれます。 |
map | |
deleteClaim | クラスターのアンデプロイ時に永続ボリューム要求を削除する必要があるかどうかを指定します。 |
boolean | |
class | 動的ボリュームの割り当てに使用するストレージクラス。 |
string | |
id | ストレージ ID 番号。これは、'jbod' タイプのストレージで定義されるストレージボリュームのみで必須です。 |
integer | |
overrides |
個々のブローカーを上書きします。 |
13.2.38. PersistentClaimStorageOverride
スキーマ参照
プロパティー | 説明 |
---|---|
class | このブローカーの動的ボリュームの割り当てに使用するストレージクラス。 |
string | |
broker | Kafka ブローカーの ID (ブローカー ID)。 |
integer |
13.2.39. JbodStorage
スキーマ参照
KafkaClusterSpec
で使用
type
プロパティーは、JbodStorage
タイプの使用を EphemeralStorage
、PersistentClaimStorage
と区別する識別子です。JbodStorage
タイプには jbod
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
volumes | JBOD ディスクアレイを表すストレージオブジェクトとしてのボリュームの一覧。 |
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.kafka
の config
プロパティーにある super.user
設定オプションは無視されます。この代わりに、authorization
プロパティーでスーパーユーザーを指定します。詳細は「Kafka ブローカーの設定」を参照してください。
13.2.40.2. KafkaAuthorizationSimple
スキーマプロパティー
type
プロパティーは、KafkaAuthorizationSimple
タイプの使用を KafkaAuthorizationOpa
、KafkaAuthorizationKeycloak
と区別する識別子です。KafkaAuthorizationSimple
タイプには simple
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
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
タイプの使用を KafkaAuthorizationSimple
、KafkaAuthorizationKeycloak
と区別する識別子です。KafkaAuthorizationOpa
タイプには opa
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
url | Open Policy Agent サーバーへの接続に使用される URL。URL には、オーソライザーによってクエリーされるポリシーが含まれる必要があります。このオプションは必須です。 |
string | |
allowOnError |
一時的に利用できない場合など、オーソライザーによる Open Policy Agent へのクエリーが失敗した場合に、デフォルトで Kafka クライアントを許可または拒否するかどうかを定義します。デフォルトは |
boolean | |
initialCacheCapacity |
すべてのリクエストに対して Open Policy Agent をクエリーしないようにするために、オーソライザーによって使用されるローカルキャッシュの初期容量。デフォルトは |
integer | |
maximumCacheSize |
すべてのリクエストに対して Open Policy Agent をクエリーしないようにするために、オーソライザーによって使用されるローカルキャッシュの最大容量。デフォルトは |
integer | |
expireAfterMs |
すべてのリクエストに対して Open Policy Agent をクエリーしないようにするために、ローカルキャッシュに保持されるレコードの有効期限。キャッシュされた承認決定が Open Policy Agent サーバーからリロードされる頻度を定義します。ミリ秒単位です。デフォルトは |
integer | |
superUsers | スーパーユーザーのリスト。これは、無制限のアクセス権限を持つユーザープリンシパルのリストです。 |
string array |
13.2.42. KafkaAuthorizationKeycloak
スキーマ参照
KafkaClusterSpec
で使用
type
プロパティーは、KafkaAuthorizationKeycloak
タイプの使用を KafkaAuthorizationSimple
、KafkaAuthorizationOpa
と区別する識別子です。KafkaAuthorizationKeycloak
タイプには keycloak
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
clientId | Kafka クライアントが OAuth サーバーに対する認証に使用し、トークンエンドポイント URI を使用することができる OAuth クライアント ID。 |
string | |
tokenEndpointUri | 承認サーバートークンエンドポイント URI。 |
string | |
tlsTrustedCertificates | OAuth サーバーへの TLS 接続の信頼済み証明書。 |
| |
disableTlsHostnameVerification |
TLS ホスト名の検証を有効または無効にします。デフォルト値は |
boolean | |
delegateToKafkaAcls |
Red Hat Single Sign-On の Authorization Services ポリシーにより DENIED となった場合に、承認の決定を 'Simple' オーソライザーに委譲すべきかどうか。デフォルト値は |
boolean | |
grantsRefreshPeriodSeconds | 連続する付与 (Grants) 更新実行の間隔 (秒単位)。デフォルト値は 60 です。 |
integer | |
grantsRefreshPoolSize | アクティブなセッションの付与(Grants) の更新に使用するスレッドの数。スレッドが多いほど並列処理多くなるため、ジョブがより早く完了します。ただし、使用するスレッドが多いほど、承認サーバーの負荷が大きくなります。デフォルト値は 5 です。 |
integer | |
superUsers | スーパーユーザーの一覧。無制限のアクセス権を取得する必要のあるユーザープリンシパルの一覧が含まれなければなりません。 |
string array |
13.2.43. Rack
スキーマ参照
KafkaClusterSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
で使用
異なるラック全体でパーティションレプリカを分散するためにラックアウェアネスを設定します。
ラックは、アベイラビリティーゾーン、データセンター、またはデータセンターの実際のラックを表すことができます。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.class
に RackAwareReplicaSelector
を指定して、デフォルト実装から切り替えます。デフォルトの実装では、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.rack
と client.rack
ID の一致を関連付けます。
図13.1 同じアベイラビリティーゾーンのレプリカから消費するクライアントの例
同じラックに複数のレプリカがある場合は、RackAwareReplicaSelector
は常に最新のレプリカを選択します。ラック ID が指定されていない場合や、同じラック ID を持つレプリカが見つからない場合は、リーダーレプリカにフォールバックします。
OpenShift ノードラベルの詳細は、「Well-Known Labels, Annotations and Taints」を参照してください。
13.2.43.1. Rack
スキーマプロパティー
プロパティー | 説明 |
---|---|
topologyKey |
OpenShift クラスターノードに割り当てられたラベルに一致するキー。ラベルの値は、Kafka Connect でブローカーの |
string |
13.2.44. Probe
スキーマ参照
CruiseControlSpec
、EntityTopicOperatorSpec
、EntityUserOperatorSpec
、KafkaBridgeSpec
、KafkaClusterSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaExporterSpec
、KafkaMirrorMaker2Spec
、KafkaMirrorMakerSpec
、TlsSidecar
、TopicOperatorSpec
、ZookeeperClusterSpec
で使用
プロパティー | 説明 |
---|---|
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
スキーマ参照
CruiseControlSpec
、EntityTopicOperatorSpec
、EntityUserOperatorSpec
、KafkaBridgeSpec
、KafkaClusterSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2Spec
、KafkaMirrorMakerSpec
、TopicOperatorSpec
、ZookeeperClusterSpec
で使用
プロパティー | 説明 |
---|---|
-XX | JVM への -XX オプションのマップ。 |
map | |
-Xms | JVM への -Xms オプション。 |
string | |
-Xmx | JVM への -Xmx オプション。 |
string | |
gcLoggingEnabled | ガベージコレクションのロギングが有効かどうかを指定します。デフォルトは false です。 |
boolean | |
javaSystemProperties |
|
|
13.2.46. SystemProperty
スキーマ参照
JvmOptions
で使用
プロパティー | 説明 |
---|---|
name | システムプロパティー名。 |
string | |
value | システムプロパティーの値。 |
string |
13.2.47. KafkaJmxOptions
スキーマ参照
KafkaClusterSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2Spec
で使用
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: # ...
その他のリソース
- JMX を使用して公開される Kafka コンポーネントメトリクスの詳細は、Apache Kafka のドキュメントを参照してください。
13.2.47.1. KafkaJmxOptions
スキーマプロパティー
プロパティー | 説明 |
---|---|
authentication |
JMX ポートに接続するための認証設定。タイプは、指定のオブジェクト内の |
13.2.48. KafkaJmxAuthenticationPassword
スキーマ参照
KafkaJmxOptions
で使用
type
プロパティーは、KafkaJmxAuthenticationPassword
タイプを使用する際に、今後追加される可能性のある他のサブタイプと区別する識別子です。KafkaJmxAuthenticationPassword
タイプには password
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string |
13.2.49. JmxPrometheusExporterMetrics
スキーマ参照
CruiseControlSpec
、KafkaClusterSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2Spec
、KafkaMirrorMakerSpec
、ZookeeperClusterSpec
で使用
type
プロパティーは、JmxPrometheusExporterMetrics
タイプを使用する際に、今後追加される可能性のある他のサブタイプと区別する識別子です。JmxPrometheusExporterMetrics
タイプには jmxPrometheusExporter
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
valueFrom | Prometheus JMX Exporter 設定が保存される ConfigMap エントリー。この設定の構造に関する詳細は、JMX Exporter のドキュメント を参照してください。 |
13.2.50. ExternalConfigurationReference
スキーマ参照
ExternalLogging
、JmxPrometheusExporterMetrics
で使用
プロパティー | 説明 |
---|---|
configMapKeyRef | 設定が含まれる ConfigMap のキーへの参照。詳細は、core/v1 configmapkeyselector の外部ドキュメントを参照してください。 |
13.2.51. InlineLogging
スキーマ参照
CruiseControlSpec
、EntityTopicOperatorSpec
、EntityUserOperatorSpec
、KafkaBridgeSpec
、KafkaClusterSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2Spec
、KafkaMirrorMakerSpec
、TopicOperatorSpec
、ZookeeperClusterSpec
で使用
type
プロパティーは、InlineLogging
タイプの使用を ExternalLogging
と区別する識別子です。InlineLogging
タイプには inline
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
loggers | ロガー名からロガーレベルへのマップ。 |
map |
13.2.52. ExternalLogging
スキーマ参照
CruiseControlSpec
、EntityTopicOperatorSpec
、EntityUserOperatorSpec
、KafkaBridgeSpec
、KafkaClusterSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2Spec
、KafkaMirrorMakerSpec
、TopicOperatorSpec
、ZookeeperClusterSpec
で使用
type
プロパティーは、ExternalLogging
タイプの使用を InlineLogging
と区別する識別子です。ExternalLogging
タイプには external
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string | |
name |
|
string | |
valueFrom |
ロギング設定が保存される |
13.2.53. TlsSidecar
スキーマ参照
CruiseControlSpec
、EntityOperatorSpec
、KafkaClusterSpec
、TopicOperatorSpec
、ZookeeperClusterSpec
で使用
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 チェック。 |
logLevel |
TLS サイドカーのログレベル。デフォルト値は |
string ([emerg、debug、crit、err、alert、warning、notice、info] のいずれか) | |
readinessProbe | Pod の readiness チェック。 |
resources | 予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。 |
13.2.54. KafkaClusterTemplate
スキーマ参照
KafkaClusterSpec
で使用
プロパティー | 説明 |
---|---|
statefulset |
Kafka |
pod |
Kafka |
bootstrapService |
Kafka ブートストラップ |
brokersService |
Kafka ブローカー |
externalBootstrapService |
Kafka 外部ブートストラップ |
perPodService |
OpenShift の外部からアクセスするために使用される Kafka の Pod ごとの |
externalBootstrapRoute |
Kafka 外部ブートストラップ |
perPodRoute |
OpenShift の外部からアクセスするために使用される Kafka の Pod ごとの |
externalBootstrapIngress |
Kafka 外部ブートストラップ |
perPodIngress |
OpenShift の外部からアクセスするために使用される Kafka の Pod ごとの |
persistentVolumeClaim |
すべての Kafka |
podDisruptionBudget |
Kafka |
kafkaContainer | Kafka ブローカーコンテナーのテンプレート。 |
tlsSidecarContainer |
|
initContainer | Kafka init コンテナーのテンプレート。 |
clusterCaCert | Kafka Cluster 証明書の公開鍵が含まれる Secret のテンプレート。 |
clusterRoleBinding | Kafka ClusterRoleBinding のテンプレート。 |
13.2.55. StatefulSetTemplate
スキーマ参照
KafkaClusterTemplate
、ZookeeperClusterTemplate
で使用
プロパティー | 説明 |
---|---|
metadata | リソースに適用済みのメタデータ。 |
podManagementPolicy |
この StatefulSet に使用される PodManagementPolicy。有効な値は |
string ([OrderedReady、Parallel] のいずれか) |
13.2.56. MetadataTemplate
スキーマ参照
DeploymentTemplate
、ExternalServiceTemplate
、PodDisruptionBudgetTemplate
、PodTemplate
、ResourceTemplate
、StatefulSetTemplate
で使用
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 |
リソーステンプレートに追加されたラベル。 |
map | |
annotations |
リソーステンプレートに追加されたアノテーション。 |
map |
13.2.57. PodTemplate
スキーマ参照
CruiseControlTemplate
、EntityOperatorTemplate
、KafkaBridgeTemplate
、KafkaClusterTemplate
、KafkaConnectTemplate
、KafkaExporterTemplate
、KafkaMirrorMakerTemplate
、ZookeeperClusterTemplate
で使用
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 | リソースに適用済みのメタデータ。 |
imagePullSecrets |
この Pod で使用されるイメージのプルに使用する同じ namespace のシークレットへの参照の一覧です。Cluster Operator の |
LocalObjectReference array | |
securityContext | Pod レベルのセキュリティー属性と共通のコンテナー設定を設定します。詳細は、core/v1 podsecuritycontext の外部ドキュメント を参照してください。 |
terminationGracePeriodSeconds | 猶予期間とは、Pod で実行されているプロセスに終了シグナルが送信されてから、kill シグナルでプロセスを強制的に終了するまでの期間 (秒単位) です。この値は、プロセスの予想されるクリーンアップ時間よりも長く設定します。値は負の値ではない整数にする必要があります。値をゼロにすると、即座に削除されます。非常に大型な Kafka クラスターの場合は、正常終了期間を延長し、Kafka ブローカーの終了前に作業を別のブローカーに転送する時間を十分確保する必要があることがあります。デフォルトは 30 秒です。 |
integer | |
affinity | Pod のアフィニティールール。詳細は、core/v1 affinity の外部ドキュメント を参照してください。 |
tolerations | Pod の許容 (Toleration)。詳細は、core/v1 toleration の外部ドキュメント を参照してください。 |
Toleration array | |
priorityClassName | 優先順位を Pod に割り当てるために使用される優先順位クラス (Priority Class) の名前。Priority Class (優先順位クラス) の詳細は、「Pod Priority and Preemption」を参照してください。 |
string | |
schedulerName |
この |
string | |
hostAliases | Pod の HostAliases。HostAliases は、指定された場合に Pod の hosts ファイルに注入されるホストおよび IP のオプションのリストです。詳細は、core/v1 HostAlias の外部ドキュメント を参照してください。 |
HostAlias array | |
topologySpreadConstraints | Pod のトポロジー分散制約。詳細は、core/v1 topologyspreadconstraint の外部ドキュメント を参照してください。 |
TopologySpreadConstraint array |
13.2.58. ResourceTemplate
スキーマ参照
CruiseControlTemplate
、EntityOperatorTemplate
、KafkaBridgeTemplate
、KafkaClusterTemplate
、KafkaConnectTemplate
、KafkaExporterTemplate
、KafkaUserTemplate
、ZookeeperClusterTemplate
で使用
プロパティー | 説明 |
---|---|
metadata | リソースに適用済みのメタデータ。 |
13.2.59. ExternalServiceTemplate
スキーマ参照
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 | リソースに適用済みのメタデータ。 |
externalTrafficPolicy |
|
string ([Local、Cluster] のいずれか) | |
loadBalancerSourceRanges |
|
string array |
13.2.60. PodDisruptionBudgetTemplate
スキーマ参照
CruiseControlTemplate
、KafkaBridgeTemplate
、KafkaClusterTemplate
、KafkaConnectTemplate
、KafkaMirrorMakerTemplate
、ZookeeperClusterTemplate
で使用
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 |
|
maxUnavailable |
自動 Pod エビクションを許可するための利用不可能な Pod の最大数。Pod エビクションは、 |
integer |
13.2.61. ContainerTemplate
スキーマ参照
CruiseControlTemplate
、EntityOperatorTemplate
、KafkaBridgeTemplate
、KafkaClusterTemplate
、KafkaConnectTemplate
、KafkaExporterTemplate
、KafkaMirrorMakerTemplate
、ZookeeperClusterTemplate
で使用
ContainerTemplate
スキーマプロパティーの完全リスト
コンテナーのカスタムのセキュリティーコンテキストおよび環境変数を設定できます。
環境変数は、env
プロパティーで name
および value
フィールドのあるオブジェクトのリストとして定義されます。以下の例は、Kafka ブローカーコンテナーに設定された 2 つのカスタム環境変数と 1 つのセキュリティーコンテキストを示しています。
# ... template: kafkaContainer: env: - name: EXAMPLE_ENV_1 value: example.env.one - name: EXAMPLE_ENV_2 value: example.env.two securityContext: runAsUser: 2000 # ...
KAFKA_
で始まる環境変数は AMQ Streams 内部となるため、使用しないようにしてください。AMQ Streams によってすでに使用されているカスタム環境変数を設定すると、その環境変数は無視され、警告がログに記録されます。
13.2.61.1. ContainerTemplate
スキーマプロパティー
プロパティー | 説明 |
---|---|
env | コンテナーに適用する必要のある環境変数。 |
| |
securityContext | コンテナーのセキュリティーコンテキスト。詳細は、core/v1 securitycontext の外部ドキュメント を参照してください。 |
13.2.62. ContainerEnvVar
スキーマ参照
プロパティー | 説明 |
---|---|
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 |
ストレージの設定 (ディスク)。更新はできません。タイプは、指定のオブジェクト内の |
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 |
|
tolerations |
|
Toleration array | |
livenessProbe | Pod の liveness チェック。 |
readinessProbe | Pod の readiness チェック。 |
jvmOptions | Pod の JVM オプション。 |
resources | 予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。 |
metrics |
|
map | |
metricsConfig |
メトリクスの設定。タイプは、指定のオブジェクト内の |
logging |
ZooKeeper のロギング設定。タイプは、指定のオブジェクト内の |
template |
ZooKeeper クラスターリソースのテンプレート。テンプレートを使用すると、ユーザーは |
tlsSidecar |
|
13.2.64. ZookeeperClusterTemplate
スキーマ参照
プロパティー | 説明 |
---|---|
statefulset |
ZooKeeper |
pod |
ZooKeeper |
clientService |
ZooKeeper クライアント |
nodesService |
ZooKeeper ノード |
persistentVolumeClaim |
すべての ZooKeeper |
podDisruptionBudget |
ZooKeeper |
zookeeperContainer | ZooKeeper コンテナーのテンプレート。 |
tlsSidecarContainer |
|
13.2.65. TopicOperatorSpec
スキーマ参照
TopicOperatorSpec
タイプは非推奨となり、API バージョン v1beta2
で削除されます。代わりに EntityTopicOperatorSpec
を使用してください。
KafkaSpec
で使用
プロパティー | 説明 |
---|---|
watchedNamespace | Topic Operator が監視する必要のある namespace。 |
string | |
image | Topic Operator に使用するイメージ。 |
string | |
reconciliationIntervalSeconds | 定期的な調整の間隔。 |
integer | |
zookeeperSessionTimeoutSeconds | ZooKeeper セッションのタイムアウト。 |
integer | |
affinity |
|
resources | 予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。 |
topicMetadataMaxAttempts | トピックメタデータの取得を試行する回数。 |
integer | |
tlsSidecar |
|
logging |
ロギング設定。タイプは、指定のオブジェクト内の |
jvmOptions | Pod の JVM オプション。 |
livenessProbe | Pod の liveness チェック。 |
readinessProbe | Pod の readiness チェック。 |
startupProbe | Pod の起動チェック。 |
13.2.66. EntityOperatorSpec
スキーマ参照
KafkaSpec
で使用
プロパティー | 説明 |
---|---|
topicOperator | Topic Operator の設定。 |
userOperator | User Operator の設定。 |
affinity |
|
tolerations |
|
Toleration array | |
tlsSidecar | TLS サイドカーの設定。 |
template |
Entity Operator リソースのテンプレート。テンプレートを使用すると、ユーザーは |
13.2.67. EntityTopicOperatorSpec
スキーマ参照
EntityTopicOperatorSpec
スキーマプロパティーの完全リスト
Topic Operator を設定します。
13.2.67.1. logging
Topic Operator には設定可能なロガーがあります。
-
rootLogger.level
Topic Operator では Apache log4j2
ロガー実装が使用されます。
Kafka リソース Kafka
の entityOperator.topicOperator
フィールドの logging
プロパティーを使用して、ロガーおよびロガーレベルを設定します。
ログレベルを設定するには、ロガーとレベルを直接指定 (インライン) するか、またはカスタム (外部) ConfigMap を使用します。ConfigMap を使用する場合、logging.valueFrom.configMapKeyRef.name
プロパティーを外部ロギング設定が含まれる ConfigMap の名前に設定します。ConfigMap 内では、ロギング設定は log4j2.properties
を使用して記述されます。logging.valueFrom.configMapKeyRef.name
および logging.valueFrom.configMapKeyRef.key
プロパティーはいずれも必須です。Cluster Operator の実行時に、指定された正確なロギング設定を使用する ConfigMap がカスタムリソースを使用して作成され、その後は調整のたびに再作成されます。カスタム ConfigMap を指定しない場合、デフォルトのロギング設定が使用されます。特定のロガー値が設定されていない場合、上位レベルのロガー設定がそのロガーに継承されます。ログレベルの詳細は、「Apache logging services」を参照してください。
inline
および external
ロギングの例は次のとおりです。
inline ロギング
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 の起動チェック。 |
livenessProbe | Pod の liveness チェック。 |
readinessProbe | Pod の readiness チェック。 |
resources | 予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。 |
topicMetadataMaxAttempts | トピックメタデータの取得を試行する回数。 |
integer | |
logging |
ロギング設定。タイプは、指定のオブジェクト内の |
jvmOptions | Pod の JVM オプション。 |
13.2.68. EntityUserOperatorSpec
スキーマ参照
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 チェック。 |
readinessProbe | Pod の readiness チェック。 |
resources | 予約する CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。 |
logging |
ロギング設定。タイプは、指定のオブジェクト内の |
jvmOptions | Pod の JVM オプション。 |
13.2.69. EntityOperatorTemplate
スキーマ参照
プロパティー | 説明 |
---|---|
deployment |
Entity Operator |
pod |
Entity Operator |
tlsSidecarContainer | Entity Operator TLS サイドカーコンテナーのテンプレート。 |
topicOperatorContainer | Entity Topic Operator コンテナーのテンプレート。 |
userOperatorContainer | Entity User Operator コンテナーのテンプレート。 |
13.2.70. CertificateAuthority
スキーマ参照
KafkaSpec
で使用
TLS 証明書のクラスター内での使用方法の設定。これは、クラスター内の内部通信に使用される証明書および Kafka.spec.kafka.listeners.tls
を介したクライアントアクセスに使用される証明書の両方に適用されます。
プロパティー | 説明 |
---|---|
generateCertificateAuthority | true の場合、認証局の証明書が自動的に生成されます。それ以外の場合は、ユーザーは CA 証明書で Secret を提供する必要があります。デフォルトは true です。 |
boolean | |
generateSecretOwnerReference |
|
boolean | |
validityDays | 生成される証明書の有効日数。デフォルトは 365 です。 |
integer | |
renewalDays |
証明書更新期間の日数。これは、証明書の期限が切れるまでの日数です。この間に、更新アクションを実行することができます。 |
integer | |
certificateExpirationPolicy |
|
string ([replace-key、renew-certificate] のいずれか) |
13.2.71. CruiseControlSpec
スキーマ参照
KafkaSpec
で使用
プロパティー | 説明 |
---|---|
image | Pod の Docker イメージ。 |
string | |
tlsSidecar | TLS サイドカーの設定。 |
resources | Cruise Control コンテナー用に予約された CPU およびメモリーリソース。詳細は、core/v1 resourcerequirements の外部ドキュメント を参照してください。 |
livenessProbe | Cruise Control コンテナーの Pod liveness チェック |
readinessProbe | Cruise Control コンテナーの Pod readiness チェック |
jvmOptions | Cruise Control コンテナーの JVM オプション |
logging |
Cruise Control のロギング設定 (Log4j 2)。タイプは、指定のオブジェクト内の |
template |
Cruise Control のリソースである |
brokerCapacity |
Cruise Control |
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 |
|
map | |
metricsConfig |
メトリクスの設定。タイプは、指定のオブジェクト内の |
13.2.72. CruiseControlTemplate
スキーマ参照
プロパティー | 説明 |
---|---|
deployment |
Cruise Control |
pod |
Cruise Control |
apiService |
Cruise Control API |
podDisruptionBudget |
Cruise Control |
cruiseControlContainer | Cruise Control コンテナーのテンプレート。 |
tlsSidecarContainer | Cruise Control TLS サイドカーコンテナーのテンプレート。 |
13.2.73. BrokerCapacity
スキーマ参照
プロパティー | 説明 |
---|---|
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 の外部ドキュメント を参照してください。 |
logging |
指定の重大度以上のログメッセージのみ。有効な値は [ |
string | |
enableSaramaLogging | Kafka Exporter によって使用される Go クライアントライブラリーである Sarama ロギングを有効にします。 |
boolean | |
template | デプロイメントテンプレートおよび Pod のカスタマイズ。 |
livenessProbe | Pod の liveness チェック。 |
readinessProbe | Pod の readiness チェック。 |
13.2.75. KafkaExporterTemplate
スキーマ参照
プロパティー | 説明 |
---|---|
deployment |
Kafka Exporter |
pod |
Kafka Exporter |
service |
Kafka Exporter |
container | Kafka Exporter コンテナーのテンプレート。 |
13.2.76. KafkaStatus
スキーマ参照
Kafka
で使用
プロパティー | 説明 |
---|---|
conditions | ステータス条件の一覧。 |
| |
observedGeneration | 最後に Operator によって調整された CRD の生成。 |
integer | |
listeners | 内部リスナーおよび外部リスナーのアドレス。 |
| |
clusterId | Kafka クラスター ID。 |
string |
13.2.77. Condition
スキーマ参照
KafkaBridgeStatus
、KafkaConnectorStatus
、KafkaConnectS2IStatus
、KafkaConnectStatus
、KafkaMirrorMaker2Status
、KafkaMirrorMakerStatus
、KafkaRebalanceStatus
、KafkaStatus
、KafkaTopicStatus
、KafkaUserStatus
で使用
プロパティー | 説明 |
---|---|
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 つのタイプのいずれかになります: |
string | |
addresses | このリスナーのアドレス一覧。 |
| |
bootstrapServers |
このリスナーを使用して Kafka クラスターに接続するための |
string | |
certificates |
指定のリスナーへの接続時に、サーバーのアイデンティティーを検証するために使用できる TLS 証明書の一覧。 |
string array |
13.2.79. ListenerAddress
スキーマ参照
ListenerStatus
で使用
プロパティー | 説明 |
---|---|
host | Kafka ブートストラップサービスの DNS 名または IP アドレス。 |
string | |
port | Kafka ブートストラップサービスのポート。 |
integer |
13.2.80. KafkaConnect
スキーマ参照
プロパティー | 説明 |
---|---|
spec | Kafka Connect クラスターの仕様。 |
status | Kafka Connect クラスターのステータス。 |
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 設定。 |
authentication |
Kafka Connect の認証設定。タイプは、指定のオブジェクト内の |
| |
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 の外部ドキュメント を参照してください。 |
livenessProbe | Pod の liveness チェック。 |
readinessProbe | Pod の readiness チェック。 |
jvmOptions | Pod の JVM オプション。 |
jmxOptions | JMX オプション。 |
affinity |
|
tolerations |
|
Toleration array | |
logging |
Kafka Connect のロギング設定。タイプは、指定のオブジェクト内の |
metrics |
|
map | |
tracing |
Kafka Connect でのトレーシングの設定。タイプは、指定のオブジェクト内の |
template |
Kafka Connect および Kafka Connect S2I リソースのテンプレート。テンプレートを使用すると、ユーザーは |
externalConfiguration | Secret または ConfigMap から Kafka Connect Pod にデータを渡し、これを使用してコネクターを設定します。 |
build | Connect コンテナーイメージを構築する方法を設定します。任意設定。 |
clientRackInitImage |
|
string | |
metricsConfig |
メトリクスの設定。タイプは、指定のオブジェクト内の |
rack | client.rack コンシューマー設定として使用されるノードラベルの設定。 |
13.2.82. KafkaConnectTls
スキーマ参照
KafkaConnectS2ISpec
、KafkaConnectSpec
で使用
KafkaConnectTls
スキーマプロパティーの完全リスト
Kafka Connect をクラスターに接続するために TLS で信頼される証明書を設定します。
13.2.82.1. trustedCertificates
trustedCertificates
プロパティー を使用してシークレットのリストを提供します。
13.2.82.2. KafkaConnectTls
スキーマプロパティー
プロパティー | 説明 |
---|---|
trustedCertificates | TLS 接続の信頼済み証明書。 |
|
13.2.83. KafkaClientAuthenticationTls
スキーマ参照
KafkaBridgeSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2ClusterSpec
、KafkaMirrorMakerConsumerSpec
、KafkaMirrorMakerProducerSpec
で使用
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
タイプの使用を KafkaClientAuthenticationScramSha512
、KafkaClientAuthenticationPlain
、および KafkaClientAuthenticationOAuth
と区別する識別子です。KafkaClientAuthenticationTls
タイプには tls
の値が必要です。
プロパティー | 説明 |
---|---|
certificateAndKey |
証明書と秘密鍵のペアを保持する |
type |
|
string |
13.2.84. KafkaClientAuthenticationScramSha512
スキーマ参照
KafkaBridgeSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2ClusterSpec
、KafkaMirrorMakerConsumerSpec
、KafkaMirrorMakerProducerSpec
で使用
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
タイプの使用を KafkaClientAuthenticationTls
、KafkaClientAuthenticationPlain
、および KafkaClientAuthenticationOAuth
と区別する識別子です。KafkaClientAuthenticationScramSha512
タイプには scram-sha-512
の値が必要です。
プロパティー | 説明 |
---|---|
passwordSecret |
パスワードを保持する |
type |
|
string | |
username | 認証に使用されるユーザー名。 |
string |
13.2.85. PasswordSecretSource
スキーマ参照
KafkaClientAuthenticationPlain
、KafkaClientAuthenticationScramSha512
で使用
プロパティー | 説明 |
---|---|
password | パスワードが保存される Secret のキーの名前。 |
string | |
secretName | パスワードを含むシークレットの名前。 |
string |
13.2.86. KafkaClientAuthenticationPlain
スキーマ参照
KafkaBridgeSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2ClusterSpec
、KafkaMirrorMakerConsumerSpec
、KafkaMirrorMakerProducerSpec
で使用
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
タイプの使用を KafkaClientAuthenticationTls
、KafkaClientAuthenticationScramSha512
、および KafkaClientAuthenticationOAuth
と区別する識別子です。KafkaClientAuthenticationPlain
タイプには plain
の値が必要です。
プロパティー | 説明 |
---|---|
passwordSecret |
パスワードを保持する |
type |
|
string | |
username | 認証に使用されるユーザー名。 |
string |
13.2.87. KafkaClientAuthenticationOAuth
スキーマ参照
KafkaBridgeSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2ClusterSpec
、KafkaMirrorMakerConsumerSpec
、KafkaMirrorMakerProducerSpec
で使用
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
タイプの使用を KafkaClientAuthenticationTls
、KafkaClientAuthenticationScramSha512
、および KafkaClientAuthenticationPlain
と区別する識別子です。KafkaClientAuthenticationOAuth
タイプには oauth
の値が必要です。
プロパティー | 説明 |
---|---|
accessToken | 承認サーバーから取得したアクセストークンが含まれる OpenShift シークレットへのリンク。 |
accessTokenIsJwt |
アクセストークンを JWT として処理すべきかどうかを設定します。承認サーバーが不透明なトークンを返す場合は |
boolean | |
clientId | Kafka クライアントが OAuth サーバーに対する認証に使用し、トークンエンドポイント URI を使用することができる OAuth クライアント ID。 |
string | |
clientSecret | Kafka クライアントが OAuth サーバーに対する認証に使用し、トークンエンドポイント URI を使用することができる OAuth クライアントシークレットが含まれる OpenShift シークレットへのリンク。 |
disableTlsHostnameVerification |
TLS ホスト名の検証を有効または無効にします。デフォルト値は |
boolean | |
maxTokenExpirySeconds | アクセストークンの有効期間を指定の秒数に設定または制限します。これは、承認サーバーが不透明なトークンを返す場合に設定する必要があります。 |
integer | |
refreshToken | 承認サーバーからアクセストークンを取得するために使用できる更新トークンが含まれる OpenShift シークレットへのリンク。 |
scope |
承認サーバーに対して認証を行うときに使用する OAuth スコープ。一部の承認サーバーでこれを設定する必要があります。許可される値は、承認サーバーの設定によります。デフォルトでは、トークンエンドポイントリクエストを実行する場合は |
string | |
tlsTrustedCertificates | OAuth サーバーへの TLS 接続の信頼済み証明書。 |
| |
tokenEndpointUri | 承認サーバートークンエンドポイント URI。 |
string | |
type |
|
string |
13.2.88. JaegerTracing
スキーマ参照
KafkaBridgeSpec
、KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2Spec
、KafkaMirrorMakerSpec
で使用
type
プロパティーは、JaegerTracing
タイプの使用を、今後追加される可能性のある他のサブタイプと区別する識別子です。JaegerTracing
タイプには jaeger
の値が必要です。
プロパティー | 説明 |
---|---|
type |
|
string |
13.2.89. KafkaConnectTemplate
スキーマ参照
KafkaConnectS2ISpec
、KafkaConnectSpec
、KafkaMirrorMaker2Spec
で使用
プロパティー | 説明 |
---|---|
deployment |
Kafka Connect |
pod |
Kafka Connect |
apiService |
Kafka Connect API |
buildConfig | 新しいコンテナーイメージをビルドするために使用される Kafka Connect BuildConfig のテンプレート。BuildConfig は OpenShift でのみ使用されます。 |
buildContainer | Kafka Connect Build コンテナーのテンプレート。build コンテナーは OpenShift でのみ使用されます。 |
buildPod |
Kafka Connect Build |
clusterRoleBinding | Kafka Connect ClusterRoleBinding のテンプレート。 |
connectContainer | Kafka Connect コンテナーのテンプレート。 |
initContainer | Kafka init コンテナーのテンプレート。 |
podDisruptionBudget |
Kafka Connect |