第6章 AMQ Streams の Operator
AMQ Streams では Operator を使用して Kafka をサポートし、Kafka のコンポーネントおよび依存関係を OpenShift にデプロイして管理します。
Operator は、OpenShift アプリケーションのパッケージ化、デプロイメント、および管理を行う方法です。AMQ Streams Operator は OpenShift の機能を拡張し、Kafka デプロイメントに関連する共通タスクや複雑なタスクを自動化します。Kafka 操作の情報をコードに実装することで、Kafka の管理タスクは簡素化され、人の介入が少なくなります。
Operator
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 のアーキテクチャー例