KubeCon+CloudNativeCon Europe 2025開幕、Kafkaのリバランス問題を解決するセッションを紹介

2025年最初のKubeCon+CloudNativeConが2025年4月1日から4日にかけてロンドンで開催された。過去最大規模のオープンソースカンファレンスとなったKubeCon+CloudNativeCon Europeだが、この記事ではKafkaのワークロードを平準化させるソリューションのセッションを紹介する。KubeCon+CloudNativeConは参加者の増加に従って共催のミニカンファレンスの数も増えており、このセッションはData on Kubernetes DayというKubernetes上のデータベースや分散メッセージングについて解説するミニカンファレンスの中で実施された。Red Hatのエンジニアが解説するKafkaのワークロードをリバランスさせるソリューションを解説したセッションである。タイトルは「Mastering Kafka workload balancing with Strimzi's Cruise Control Integration」だ。
セッションを担当したのは、ナポリ在住のRed HatのエンジニアであるPaolo Patierno氏だ。彼は、Kubernetes上でKafkaを稼働させるためのオペレーターであるStrimziのコミッターである。
Kafkaの分散メッセージはブローカーと呼ばれるメッセージを中継するアプリケーションタスクで処理されるが、複数のブローカーが複数のノードにおいて分散処理を行うことで大量のメッセージを捌くことが可能になり、障害時のデータリカバリーも可能になる。しかし必ずしもすべてのブローカー/ノードが均一にワークロードを処理することは保証されておらず、メッセージ量の変化に従ってノード上の負荷に偏りが生じうる。その際にどうやってそのアンバランスを解消するのか? というのが命題だ。
その際、単にノードを増やしてスケールアウトしたとしても負荷が偏在する問題は解消されず、ブローカーのリバランスが必要となる。
そのためにワークロードの配置を変えるリバランス機能が必要だというのが答えである。
その際に必要なソフトウェアがCruise Controlであると紹介。
ここではCruise ControlがLinkedInで開発されたソフトウェアであると解説した。実際にはKafka自体もLinkedInで開発されたオープンソースソフトウェアであるため、本家本元が必要に応じて開発したと想像できる。
このスライドではCruise Controlのリバランスの機能を簡単に紹介している。必ず守らないといけないハードなゴールとベストエフォートで良いソフトなゴールが設定可能で、ディスク使用量やネットワーク、CPUなどの使用率などが属性として設定の対象であると説明した。
その結果として、アンバランスな負荷の状態がうまくバランスのとれた状態に変化することをグラフによって説明した。
そしてCruise Controlのシステムの概要として、Kafkaのブローカー上にその状態を検知するMetrics Reporterというプロセスが常駐することで負荷をモニタリングし、ゴール設定に従ってバランスを変更する仕組みを解説した。
そしてKafkaをKubernetes上に実装するオペレーターのStrimziとの連携についてここから解説した。
Cruise ControlをKafkaのカスタムリソースを使って実装。Kafkaとは別のDeploymentとして実行され、Kafkaのブローカー上にMetrics Reporterが構成される。
StrimziがKubernetes上にKafkaの実装することを、オペレーターフレームワークの仕組みで実装したことと同様に、Cruise Controlもオペレーターから実装される。
プロトコル的にはStrimziがKubernetesのAPIを経由して、Cruise ControlにはREST APIで連携する仕組みであると説明。
カスタムリソースについても紹介。KafkaRebalanceという名称のカスタムリソースが使われている。
より詳細なシステム構成図を使ってCruise Controlを解説。ここではCruise Controlが使うさまざまなコンポーネントが紹介されている。
アノテーションを使ってリバランスを行うことやリバランスのモードなども併せて説明。
そしてKubernetesのクラスターがスケールアップする仕組みと自動でリバランスする機能によって、相乗的にバランスの取れたワークロードが実行できることを紹介。
ここではブローカーの追加/削除の際に、クラスターのオートスケーリングが起動されることを解説した。
結果的にKafkaクラスターの自動修復機能(セルフヒーリング)がCruise Controlによって可能になることを説明した。
最後に2025年6月4日にオンラインイベントとして開催されるStrimziConを紹介して、セッションを終えた。これは2025年1月にStrimziのブログ記事として公開されているバーチャルカンファレンスだが、Kubernetesでデータストリーミングを計画しているエンジニアにとっては有用なイベントとなるだろう。以下のブログ記事を参考にして欲しい。
リレーショナルなデータベースなどよりも瞬時に大量のメッセージが発生するようなユースケースにおいては、クラウドネイティブなシステムであるKubernetesは向いているだろう。分散されたKafkaノード間でロードバランスするような場合、単純なレプリカセットとロードバランサーでは解決しないKafka特有の問題点を、LinkedInが解決するために開発したのがCruise Control、Red Hatが開発したオペレーターフレームワークを使ってKafkaをKubernetes上に実装するStrimziという組み合わせを解説する内容となった。
Java(JVM)で開発されたKafkaの欠点を補うべくC++で開発されたRedpandaというソフトウェア/サービスも存在しており、後付けでリバランスなどを行うのではなくプラットフォーム自体を切り替えるという発想もあり得るだろう。Redpandaに関しては以下の記事を参考にして欲しい。
●参考:KafkaにWASMモジュールを組み込んでリアルタイムで機械学習を実行するRedpandaのデモセッションを解説
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- StrimziCon 2024番外編、KafkaのリバランスをKubernetesのオペレータで実行するCruise Controlを紹介
- Kafka on KubernetesのStrimziConから新機能を解説するセッションを紹介
- Kafka on Kubernetesを実現するStrimziに特化したカンファレンスStrimziCon 2024からキーノートを紹介
- Kafka on KubernetesのStrimziConから新機能を解説するセッションを紹介
- KubeCon Europe 2025から、Red Hatが生成AIのプラットフォームについて解説したセッションを紹介
- StrimziCon 2024からブラジルのネットバンクにおけるKafkaクラスター移行のセッションを紹介
- Cloud Native Wasm DayからKafkaの拡張にWasmを使うRedpandaのセッションを紹介
- KubeCon+CloudNativeCon North America 2023のキーノートとショーケースを紹介
- KubeCon NA 2024開催、前日の共催カンファレンスからAIワークロードのスケジューリングに関するセッションを紹介
- KubeCon Europe 2025、3日目のキーノートでGoogleとByteDanceが行ったセッションを紹介