第6章 AMQ Streams の Operator
Operator は、OpenShift アプリケーションをパッケージ化、デプロイ、および管理する方法です。これらは、Kubernetes API を拡張し、特定のアプリケーションに関連付けられた管理タスクを簡素化する方法を提供します。
AMQ Streams operatro は、Kafka デプロイメントに関連するタスクをサポートします。AMQ Streams カスタムリソースはデプロイメント設定を提供します。これには、Kafka クラスター、トピック、ユーザー、およびその他のコンポーネントの設定が含まれます。AMQ Streams operator は、カスタムリソース設定を利用して、OpenShift 環境内で Kafka コンポーネントを作成、設定、管理します。Operator を使用すると、手動介入の必要性が減り、OpenShift クラスターで Kafka を管理するプロセスが合理化されます。
AMQ Streams は、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 設定の一部としてデプロイできます。
AMQ Streams アーキテクチャー内の Operator
6.1. Cluster Operator
AMQ Streams では、Cluster Operator を使用してクラスターをデプロイおよび管理します。デフォルトでは、AMQ Streams をデプロイすると、単一の 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
リソースの設定を通じて、以下の AMQ StreamsOperator をデプロイすることもできます。
-
KafkaTopic
カスタムリソースを介して Operator スタイルのトピック管理を提供する Topic Operator -
KafkaUser
カスタムリソースを介して Operator スタイルのユーザー管理を提供する User Operator
Topic Operator および User Operator は、デプロイメントの Entity Operator 内で機能します。
AMQ Streams Drain Cleaner のデプロイメントで Cluster Operator を使用すると、Pod のエビクションを支援できます。AMQ Streams Drain Cleaner をデプロイすることで、Cluster Operator を使用して OpenShift ではなく Kafka Pod を移動できます。AMQ Streams Drain Cleaner は、エビクトされる Pod に、ローリング更新のアノテーションを付けます。このアノテーションは、Cluster Operator にローリング更新を実行するように通知します。
Cluster Operator のアーキテクチャー例