4.2. Operator デプロイメントのベストプラクティス
特に異なるバージョンを使用している場合、同じ OpenShift クラスターに複数の Streams for Apache Kafka Operator をインストールすると、問題が発生する可能性があります。各 Streams for Apache Kafka Operator は、OpenShift クラスター内のリソースのセットを管理します。複数の Streams for Apache Kafka Operator をインストールすると、それらが同じリソースを同時に管理しようとする場合があります。これにより、クラスター内で競合や予期しない動作が発生する可能性があります。同じ OpenShift クラスター内の異なる namespace に Streams for Apache Kafka Operator をデプロイした場合でも、競合が発生する可能性があります。namespace はある程度リソースを分離しますが、カスタムリソース定義 (CRD) やロールなど、Streams for Apache Kafka Operator によって管理される一部のリソースのスコープは、クラスター全体となっています。
さらに、バージョンが異なる複数の Operator をインストールすると、Operator と Operator が管理する Kafka クラスター間の互換性の問題が発生する可能性があります。Streams for Apache Kafka Operator の各バージョンで、下位互換性のない変更、バグ修正、または改善が導入される場合があります。
OpenShift クラスターに複数の Streams for Apache Kafka Operator をインストールする際に発生する問題を回避するには、次のガイドラインに従うことを推奨します。
- Streams for Apache Kafka Operator を、Kafka クラスターおよび Operator が管理するその他の Kafka コンポーネントとは別の namespace にインストールして、リソースと設定を明確に分離します。
- 1 つの Streams for Apache Kafka Operator を使用して、OpenShift クラスター内のすべての Kafka インスタンスを管理します。
- Streams for Apache Kafka Operator とサポートされる Kafka バージョンをできるだけ頻繁に更新、最新の機能と拡張機能を反映します。
これらのベストプラクティスに従い、1 つの Streams for Apache Kafka Operator を一貫して更新することで、OpenShift クラスター内の Kafka インスタンス管理の安定性を向上させることができます。このアプローチにより、Streams for Apache Kafka の最新機能を最大限に活用することもできます。
Streams for Apache Kafka は Strimzi をベースとしているため、OpenShift クラスターで Streams for Apache Kafka Operator と Strimzi Operator を組み合わせた場合にも、同じ問題が発生する可能性があります。