Skip to content

Strimzi

Apache Kafka を宣言的なカスタムリソースと Operator で Kubernetes 上に構築・運用する。

  • カテゴリ: Messaging & Streaming
  • CNCF 成熟度: Incubating
  • 言語: Java 21
  • ライセンス: Apache License 2.0
  • リポジトリ: strimzi/strimzi-kafka-operator
  • ドキュメント基準コミット: 9505103 (2026-06-23)

何をするものか

Strimzi は Operator パターンで Apache Kafka を Kubernetes 上で運用する。KafkaKafkaNodePoolKafkaTopicKafkaUser といったカスタムリソースで望む状態を宣言すると、コントローラがクラスタをそれに合わせて reconcile する。これらのカスタムリソースのモデルは api/ モジュールにある Java POJO であり、CRD はそこから生成される。

中核のコントローラが Cluster Operator である。その main メソッドは環境変数から設定を構築し、監視対象 namespace ごとに 1 つの reconciler をデプロイする (cluster-operator/src/main/java/io/strimzi/operator/cluster/Main.java:62)。reconcile は標準的な Operator ループで、カスタムリソースから desired state を読み、クラスタの現状と比較し、差分を適用する。処理は冪等で、Kubernetes の watch イベントと定期的な resync の両方で動く。

対象は、すでに Kubernetes を運用していて Kafka も他のものと同じように管理したいチームである。GitOps と相性の良い YAML、ローリングアップグレード、TLS、認証を手作業ではなく Operator が扱う。Strimzi は新しいブローカではない。upstream の Apache Kafka (このコミットでは 4.3.0、pom.xml:87) をそのままパッケージし運用する。

いつ使うか

  • Kafka を Kubernetes 上で運用しており、手動のブローカ管理ではなく宣言的でバージョン管理されたクラスタ定義が欲しい。
  • カスタムリソース駆動の自動ローリングアップグレード、証明書ローテーション、ユーザ・トピック管理が必要。
  • upstream の Apache Kafka をそのまま使う、ベンダ非依存で完全オープンソースの Operator が欲しい。
  • Kubernetes を運用していない場合、または完全マネージドなクラウド Kafka サービスで運用要件を満たせる場合は不向き。

このディープダイブの構成

出典

  1. strimzi/strimzi-kafka-operator (GitHub)
  2. 固定コミット 9505103
  3. Strimzi is now a CNCF Incubating project!
  4. Strimzi joins the CNCF Incubator (CNCF)
  5. Strimzi (CNCF projects)
  6. Open innovation: Red Hat's impact on the Kafka and Strimzi ecosystem
  7. Strimzi Apache Kafka Operator joins the CNCF (2019)
  8. ADOPTERS.md
  9. Strimzi governance リポジトリ
  10. Strimzi Quickstarts
  11. CNCF Incubates Strimzi to Simplify Kafka on Kubernetes (InfoQ)