3.9. デプロイメントのカスタマイズ
AMQ Streams では、OpenShift の operator によって管理される Deployments
、StatefulSets
、Pods
、Services
などの複数の OpenShift リソースが作成されます。特定の OpenShift リソースの管理を担当する operator のみがそのリソースを変更できます。operator によって管理される OpenShift リソースを手動で変更しようとすると、operator はその変更を元に戻します。
しかし、オペレーターが管理する OpenShift リソースの変更は、以下のような特定のタスクを実行する場合に役立ちます。
-
Pod
が Istio またはその他のサービスによって処理される方法を制御するカスタムラベルまたはアノテーションを追加する場合。 -
Loadbalancer
タイプのサービスがクラスターによって作成される方法を管理する場合。
このような変更は、AMQ Streams カスタムリソースの template
プロパティーを使用して追加します。
3.9.1. テンプレートプロパティー
template
プロパティーを使用すると、リソース作成プロセスの内容を設定できます。以下のリソースおよびプロパティーに追加できます。
-
Kafka.spec.kafka
-
Kafka.spec.zookeeper
-
Kafka.spec.entityOperator
-
Kafka.spec.kafkaExporter
-
KafkaConnect.spec
-
KafkaConnectS2I.spec
-
KafkaMirrorMakerSpec
-
KafkaBridge.spec
以下の例では、template
プロパティーを使用して Kafka ブローカーの StatefulSet
のラベルを変更します。
apiVersion: kafka.strimzi.io/v1beta1 kind: Kafka metadata: name: my-cluster labels: app: my-cluster spec: kafka: # ... template: statefulset: metadata: labels: mylabel: myvalue # ...
3.9.1.1. Kafka クラスターでサポートされるテンプレートプロパティー
statefulset
-
Kafka ブローカーによって使用される
StatefulSet
を設定します。 pod
-
StatefulSet
によって作成された Kafka ブローカーPod
を設定します。 bootstrapService
- OpenShift 内で実行中のクライアントによって使用されるブートストラップサービスを設定し、Kafka ブローカーに接続します。
brokersService
- ヘッドレスサービスを設定します。
externalBootstrapService
- OpenShift の外部から Kafka ブローカーに接続するクライアントによって使用されるブートストラップサービスを設定します。
perPodService
- OpenShift の外部から Kafka ブローカーに接続しているクライアントによって使用される Pod ごとのサービスを設定し、個別のブローカーにアクセスします。
externalBootstrapRoute
-
OpenShift
Routes
を使用して OpenShift の外部から Kafka ブローカーに接続するクライアントによって使用されるブートストラップルートを設定します。 perPodRoute
-
OpenShift の外部から Kafka ブローカーに接続するクライアントによって使用される Pod ごとのルートを設定し、OpenShift
Routes
を使用して個別のブローカーにアクセスします。 podDisruptionBudget
-
Kafka ブローカー
StatefulSet
の Pod の Disruption Budget を設定します。 kafkaContainer
- カスタム環境変数を含む、Kafka ブローカーの実行に使用されるコンテナーを設定します。
tlsSidecarContainer
- カスタム環境変数を含む、TLS サイドカーコンテナーを設定します。
initContainer
- ブローカーの初期化に使用されるコンテナーを設定します。
persistentVolumeClaim
-
Kafka
PersistentVolumeClaims
のメタデータを設定します。
3.9.1.2. ZooKeeper クラスターでサポートされるテンプレートプロパティー
statefulset
-
ZooKeeper の
StatefulSet
を設定します。 pod
-
StatefulSet
によって作成される ZooKeeperPod
を設定します。 clientsService
- ZooKeeper にアクセスするためにクライアントによって使用されるサービスを設定します。
nodesService
- ヘッドレスサービスを設定します。
podDisruptionBudget
-
ZooKeeper
StatefulSet
の Pod の Disruption Budget を設定します。 zookeeperContainer
- カスタム環境変数を含む、ZooKeeper ノードの実行に使用されるコンテナーを設定します。
tlsSidecarContainer
- カスタム環境変数を含む、TLS サイドカーコンテナーを設定します。
persistentVolumeClaim
-
ZooKeeper
PersistentVolumeClaims
のメタデータを設定します。
3.9.1.3. Entity Operator でサポートされるテンプレートプロパティー
deployment
- Entity Operator によって使用されるデプロイメントを設定します。
pod
-
Deployment
によって作成された Entity OperatorPod
を設定します。 topicOperatorContainer
- カスタム環境変数を含む、Topic Operator の実行に使用されるコンテナーを設定します。
userOperatorContainer
- カスタム環境変数を含む、User Operator の実行に使用されるコンテナーを設定します。
tlsSidecarContainer
- カスタム環境変数を含む、TLS サイドカーコンテナーを設定します。
3.9.1.4. Kafka Exporter でサポートされるテンプレートプロパティー
deployment
- Kafka Exporter によって使用されるデプロイメントを設定します。
pod
-
Deployment
によって作成された Kafka ExporterPod
を設定します。 services
- Kafka Exporter サービスを設定します。
container
- カスタム環境変数を含む、Kafka Exporter の実行に使用されるコンテナーを設定します。
3.9.1.5. Kafka Connect および Source2Image がサポートされる Kafka Connect でサポートされるテンプレート。
deployment
-
Kafka Connect の
Deployment
を設定します。 pod
-
Deployment
によって作成された Kafka ConnectPods
を設定します。 apiService
- Kafka Connect REST API で使用されるサービスを設定します。
podDisruptionBudget
-
Kafka Connect
Deployment
の Pod の Disruption Budget を設定します。 connectContainer
- カスタム環境変数を含む、Kafka Connect の実行に使用されるコンテナーを設定します。
3.9.1.6. Kafka MirrorMaker でサポートされるテンプレートプロパティー
deployment
-
Kafka MirrorMaker の
Deployment
を設定します。 pod
-
Deployment
によって作成された Kafka MirrorMakerPods
を設定します。 podDisruptionBudget
-
Kafka MirrorMaker
Deployment
の Pod の Disruption Budget を設定します。 mirrorMakerContainer
- カスタム環境変数を含む、Kafka MirrorMaker の実行に使用されるコンテナーを設定します。