StrimziCon 2024番外編、KafkaのリバランスをKubernetesのオペレータで実行するCruise Controlを紹介
StrimziConはKafkaをKubernetesで稼働させるためのオペレータStrimziに特化したオンラインカンファレンスだ。この記事ではStrimziConで公開されたセッションではないが、Strimziの主なデベロッパーであるRed Hatが2023年7月に公開した動画を元に、Kafkaのリバランスの自動化を可能にするCruise Controlの解説とデモを紹介したい。
動画はRed Hat DeveloperというチャンネルのDevNation Dayというイベントで公開された動画になる。プレゼンターはRed HatのソリューションアーキテクトであるDonato Marrazzo氏だ。Marrazzo氏はIBMで15年以上テクニカルセールス、ソリューションアーキテクトなどの職を務めた後Red Hatに移り、アプリケーションデベロップメントのプリンシパルソリューションアーキテクトを8年間担っているイタリア在住のエンジニアだ。
●動画:Optimize Apache Kafka with Cruise Control
セッションのタイトルは「Optimize Apache Kafka with Cruise Control」、Kafkaのリバランス問題をCruise Controlで解決するという内容だ。
このスライドではKafkaをOpenShift上で実装したRed Hatの商用プロダクトAMQ Streamのダイアグラムを使って、ソフトウェア構成を解説。赤い四角で表現された中に今回のトピックであるCruise Controlがある。
ここでKafkaが持つ構造上の課題を列挙して運用における問題点を整理している。特にトピック、パーティション、レプリカが運用に従ってアンバランスな状態になることを指摘。Kafka自体にはそのアンバランス状態を自動的に解消する機能が備わっていないことを説明した。
アンバランスな状態は単にノードを追加しても解消せず、トピックやパーティションをリバランスすることでのみ解決されることを説明した。
そしてリバランスをするために必要な要点を解説。ここではブローカー実行中のメトリクスを収集すること、運用に最適なワークロードの分散を行うこと、その際にCPUやストレージ、ネットワークなどのデータを検討すること、ブローカーのリーダーが最適に分散されているかを確認すること、またサーバーがどのラックに配置されているのかを意識するラックアウェアネスなどを要点として挙げた。そのうえで、これらの調整をすべて手動で行うのは非常に難しいと説明した。
リバランスに関しては複数のゴールを設定するべきとして、ハードゴールとソフトゴールを説明。ハードゴールではラックアウェアネス、ブローカーの利用効率の閾値を設定し、それを守ることを挙げた。
またソフトゴールとして挙げたのは、複数のブローカー利用率のバランス、トピックのパーティションの分布、パーティション全体の分布状況などをゴールとして設定すべき要点として整理した。
リバランスを行う際のコストについて整理したスライドでは、リーダーの変更にはそれほどコストがかからないが、パーティションの変更はコストが高いことなどを解説した。
ここからはターミナルを開いて実際にOpenShift上のKafkaのリバランスを行うデモを見せた。
クラスターの状態に関しては、Grafanaのグラフィカルインターフェースを見せて各ノードの状態を解説。ここではひとつのノードに負荷が集中してアンバランスな状態になっていることを見せている。
そしてKafkaのリバランスを行うマニフェストを適用して、実際にノードがリバランスされるところを見せている。リバランスのプロポーザルが適用、それに対して許可をアノテーションの値として変更し、実際にリバランスが許可されるところまでを見せている。
そしてGrafanaでアンバランスだったノードの負荷が調整されるまでを見せた。ここまでRed Hatのデベロッパー向けのチャネルらしくOpenShiftのコマンドで実行しているが、Cruise Control自体はオペレータのひとつとしてLinkedInが開発、公開しているオープンソースソフトウェアである。OpenShift以外のKubernetesでも利用可能だろう。Kafkaの運用に多くの労力を使っているエンジニアは注目するべきプロジェクトだろう。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- Kafka on KubernetesのStrimziConから新機能を解説するセッションを紹介
- Kafka on KubernetesのStrimziConから新機能を解説するセッションを紹介
- StrimziCon 2024からブラジルのネットバンクにおけるKafkaクラスター移行のセッションを紹介
- Kafka on Kubernetesを実現するStrimziに特化したカンファレンスStrimziCon 2024からキーノートを紹介
- Kafka+Spark Streaming+Elasticserachによるシステム構築と検証の進め方
- Red Hatが提供するトレーニングの紹介
- Red Hat Summit 2018開催 ハイブリッドクラウドとVMwareからの移行をしっかり織り込んだキーノート
- KubeCon EU 2021でRed Hatが発表した複数のKubernetesを制御するkcpを紹介
- OpenShiftでデータサイエンティストとアプリ開発者が協調する流れをデモを交えて紹介
- Red Hat Summit 2024開催。キーノートから見えてきた生成AIへの熱い期待