9.16. OpenShift リソースのカスタマイズ
Streams for Apache Kafka のデプロイメントは、Deployment
、Pod
、Service
リソースなどの OpenShift リソースを作成します。これらのリソースは、Streams for Apache Kafka Operator によって管理されます。特定の OpenShift リソースの管理を担当する operator のみがそのリソースを変更できます。operator によって管理される OpenShift リソースを手動で変更しようとすると、operator はその変更を元に戻します。
operator が管理する OpenShift リソースの変更は、以下のような特定のタスクを実行する場合に役立ちます。
-
Pod
が Istio またはその他のサービスによって処理される方法を制御するカスタムラベルまたはアノテーションの追加 -
Loadbalancer
-type サービスがクラスターによって作成される方法の管理
OpenShift リソースに変更を加えるには、さまざまな Streams for Apache Kafka カスタムリソースの spec
セクション内の template
プロパティーを使用できます。
変更を適用できるカスタムリソースのリストは次のとおりです。
-
Kafka.spec.kafka
-
Kafka.spec.zookeeper
-
Kafka.spec.entityOperator
-
Kafka.spec.kafkaExporter
-
Kafka.spec.cruiseControl
-
KafkaNodePool.spec
-
KafkaConnect.spec
-
KafkaMirrorMaker.spec
-
KafkaMirrorMaker2.spec
-
KafkaBridge.spec
-
KafkaUser.spec
これらのプロパティーの詳細は、Streams for Apache Kafka カスタムリソース API リファレンス を参照してください。
カスタマイズ可能なフィールドの詳細は、「Streams for Apache Kafka カスタムリソース API リファレンス」を参照してください。
以下の例では、template
プロパティーを使用して Kafka ブローカーの Pod のラベルを変更します。
テンプレートのカスタマイズ例
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster labels: app: my-cluster spec: kafka: # ... template: pod: metadata: labels: mylabel: myvalue # ...
9.16.1. イメージプルポリシーのカスタマイズ
Streams for Apache Kafka では、Cluster Operator によってデプロイされた全 Pod のコンテナーのイメージプルポリシーをカスタマイズできます。イメージプルポリシーは、Cluster Operator デプロイメントの環境変数 STRIMZI_IMAGE_PULL_POLICY
を使用して設定されます。STRIMZI_IMAGE_PULL_POLICY
環境変数に設定できる値は 3 つあります。
Always
- Pod が起動または再起動されるたびにコンテナーイメージがレジストリーからプルされます。
IfNotPresent
- 以前プルされたことのないコンテナーイメージのみがレジストリーからプルされます。
Never
- コンテナーイメージはレジストリーからプルされることはありません。
現在、イメージプルポリシーは、すべての Kafka、Kafka Connect、および Kafka MirrorMaker クラスターに対して一度にのみカスタマイズできます。ポリシーを変更すると、すべての Kafka、Kafka Connect、および Kafka MirrorMaker クラスターのローリング更新が実行されます。
関連情報
- 中断。
9.16.2. 終了時の猶予期間の適用
終了時の猶予期間を適用し、Kafka クラスターが正常にシャットダウンされるように十分な時間を確保します。
terminationGracePeriodSeconds
プロパティーを使用して時間を指定します。プロパティーを Kafka
カスタムリソースの template.pod
設定に追加します。
追加する時間は Kafka クラスターのサイズによって異なります。終了猶予期間の OpenShift のデフォルト値は 30 秒です。クラスターが正常にシャットダウンしていないことが判明した場合には、終了までの猶予期間を増やすことができます。
終了時の猶予期間は、Pod が再起動されるたびに適用されます。この期間は、OpenShift が Pod で実行されているプロセスに term (中断) シグナルを送信すると開始します。この期間は、終了する Pod のプロセスを、停止する前に別の Pod に転送するのに必要な時間を反映する必要があります。期間の終了後、kill シグナルにより、Pod で実行中のプロセスはすべて停止します。
以下の例では、終了猶予期間 120 秒を Kafka
カスタムリソースに追加します。他の Kafka コンポーネントのカスタムリソースで設定を指定することもできます。
終了猶予期間の設定例
apiVersion: kafka.strimzi.io/v1beta2 kind: Kafka metadata: name: my-cluster spec: kafka: # ... template: pod: terminationGracePeriodSeconds: 120 # ... # ...