第6章 Streams for Apache Kafka Operator
Operator は、OpenShift アプリケーションをパッケージ化、デプロイ、および管理する方法です。これらは、Kubernetes API を拡張し、特定のアプリケーションに関連付けられた管理タスクを簡素化する方法を提供します。
Streams for Apache Kafka Operator は、Kafka デプロイメントに関連するタスクをサポートします。Streams for Apache Kafka カスタムリソースはデプロイメント設定を提供します。これには、Kafka クラスター、トピック、ユーザー、およびその他のコンポーネントの設定が含まれます。カスタムリソース設定を活用し、Streams for Apache Kafka Operator は OpenShift 環境内で Kafka コンポーネントを作成、設定、管理します。Operator を使用すると、手動介入の必要性が減り、OpenShift クラスターで Kafka を管理するプロセスが合理化されます。
Streams for Apache Kafka は、OpenShift クラスター内で実行されている Kafka クラスターを管理するための以下の Operator を提供します。
- Cluster Operator
- Apache Kafka クラスター、Kafka Connect、Kafka MirrorMaker、Kafka Bridge、Kafka Exporter、Cruise Control、および Entity Operator をデプロイおよび管理します。
- Entitiy Operator
- Topic Operator および User Operator を設定します。
- Topic Operator
- Kafka トピックを管理します。
- User Operator
- Kafka ユーザーを管理します。
Cluster Operator は、Kafka クラスターと同時に、Topic Operator および User Operator を Entity Operator 設定の一部としてデプロイできます。
Streams for Apache Kafka アーキテクチャー内の Operator
6.1. Cluster Operator
Streams for Apache Kafka は、Cluster Operator を使用してクラスターをデプロイおよび管理します。デフォルトでは、Streams for Apache Kafka をデプロイすると、単一の Cluster Operator レプリカがデプロイされます。リーダーの選択でレプリカを追加し、中断が発生した場合に追加の Cluster Operator がスタンバイ状態になるようにすることができます。
Cluster Operator は、以下の Kafka コンポーネントのクラスターを管理します。
- Kafka (ZooKeeper、Entity Operator、Kafka Exporter、Cruise Control を含む)
- Kafka Connect
- Kafka MirrorMaker
- Kafka Bridge
クラスターは、カスタムリソースを使用してデプロイされます。
たとえば、以下のように Kafka クラスターをデプロイします。
-
クラスター設定のある
Kafka
リソースが OpenShift クラスター内で作成されます。 -
Kafka
リソースに宣言された内容を基にして、該当する Kafka クラスターが Cluster Operator によってデプロイされます。
Cluster Operator は、Kafka
リソースの設定を通じて、以下の Streams for Apache Kafka Operator をデプロイすることもできます。
-
KafkaTopic
カスタムリソースを介して Operator スタイルのトピック管理を提供する Topic Operator -
KafkaUser
カスタムリソースを介して Operator スタイルのユーザー管理を提供する User Operator
Topic Operator および User Operator は、デプロイメントの Entity Operator 内で機能します。
Streams for Apache Kafka Drain Cleaner のデプロイメントで Cluster Operator を使用すると、Pod のエビクションに役立ちます。Streams for Apache Kafka Drain Cleaner をデプロイすることで、Cluster Operator を使用して OpenShift ではなく Kafka Pod を移動できます。Streams for Apache Kafka Drain Cleaner は、エビクトされる Pod にローリング更新のアノテーションを付けます。このアノテーションは、Cluster Operator にローリング更新を実行するように通知します。
Cluster Operator のアーキテクチャー例