BT

KubernetesでのKafkaクラスタの管理と運用

| 作者: Srini Penchikala フォローする 36 人のフォロワー , 翻訳者 編集部T フォローする 1 人のフォロワー 投稿日 2018年2月20日. 推定読書時間: 3 分 |

原文(投稿日:2018/02/06)へのリンク

読者の皆様へ:お客様のご要望に応じて、重要なものを逃すことなく、ノイズを低減できる一連の機能を開発しました。興味のあるトピックを選択して、電子メールとWeb通知を入手してください

Amadeus社のプラットフォームソリューションアーキテクトであるNenad Bogojevic氏は最近のKubeCon + CloudNativeCon North America 2017 Conferenceで、Kubernetes環境でKafkaクラスタを実行および管理する方法について講演した

Kafkaはログとイベントの収集のためだけでなく、ストリーミングプラットフォームののために使われる。Kafkaクラスタ内の各ブローカには、クラスタ内の他のブローカを見つけるために使用できるIDがある。ブローカには、パーティションログを格納するためのデータベースも必要である。Kafkaのための永続ボリュームを設定することは重要である。そうでないとログが失われる。

彼はKafkaクラスタのプロビジョニングと設定について説明した。設定は、名前、パーティション数、レプリケーションファクタ、ミリ秒単位での保持時間などのトピックプロパティを記述するKubernetes ConfigMapまたはCustomResourceを使って行われる。これは、トピックのプロビジョニングとアンプロビジョニングを自動化するのに役立つ。また、開発や運用の段階でも、クラスタの再起動でも一貫した構成を保証する。

Bogojevic氏は、KubernetesのStatefulSet機能を使用してkafkaとzookeeperのクラスタ要素を設定する方法について説明した。これにより、以下の機能が提供される。

  • 不変のポッドのID
  • 不変のストレージ
  • 順序付き起動、シャットダウン
  • ローリングアップデート

彼らのソリューションアーキテクチャにはKafkaとZooKeeper Statefulsetが含まれており、それはヘッドレスサービスとして動作する。また、クライアントアプリケーションがクラスタ内でKafkaノードを見つけるために使用するディスカバリサービスもある。彼は、優れたハードウェア(SSDなど)を備えたマシン上にインスタンスを乗せるために使われるノードセレクタについて説明した。また、異なる物理マシン間でインスタンスを分散させるためのアンチ・アフィニティについて説明した。

Kubernetesの監視は、このアーキテクチャのもう1つの重要なコンポーネントである。それは、サーバが準備ができており、接続を受け入れることができるかどうかのチェックに使用できる。監視は、JMXツールとPrometheusツールを使用して行われる。

Bogojevic氏は、SRE/Operationチームのドメイン知識を実行可能コードに変換するために使用できるKafka演算子について説明した。彼らは次のような異なるコンポーネントに対して演算子を使用する。

  • Prometheus
  • Redisクラスタ
  • Workflow
  • Kafka

自動スクリプトを使用してKafka Topicsを作成することはよいプラクティスである。メッセージングソリューションでは、「Topics as a code」アプローチを検討すべきである。Kafkaクラスタでトピックを操作する際のベストプラクティスには、他に次のものがある。

  • トピックがターゲット環境に存在することを確認する
  • トピックが使用されなくなったら削除されていることを確認する
  • 環境間で同じ設定を伝播させる
  • 使用可能なディスクスペースに基づいてリテンションを設定する
  • 認証情報でクライアントを構成する
  • 設定と要件をコードとして提供する

Bogojevic氏は、Kafkaのアップグレードを実施する必要があるときのベストプラクティスについて説明した。例えば、プロトコルバージョンを最新に設定し、Kafkaブローカを1つずつアップグレードした後、プロトコルバージョンを新しいものに設定する。ストレージのフォーマットに関しては、利用者に最新バージョンを提供し、フォーマットバージョンを新しいものに更新する。

Rate this Article

Adoption Stage
Style

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT