KubernetesでのKafkaクラスタの管理と運用
- 共有
-
- |
後で読む
マイリーディングリスト
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つずつアップグレードした後、プロトコルバージョンを新しいものに設定する。ストレージのフォーマットに関しては、利用者に最新バージョンを提供し、フォーマットバージョンを新しいものに更新する。
- イベントはいかに現代のシステムを変えたか - Jonas Boner氏の講演より 2017年12月18日
- Kubernetesによる最新のビッグデータパイプライン 2018年2月14日
- ビッグデータ/マシンラーニングおよびAIにおけるバイアスの影響 - Leslie Miley氏のQCon San Franciscoでの基調講演より 2018年1月24日
- ConfluentがApache Kafka用分散ストリーミングSQLエンジンのKSQLをリリース 2017年12月6日
- DatameerのAndrew Brust氏に聞く - AIにおけるビッグデータの役割とは 2017年9月8日
- 研究者グループが3億件のデータセットを用いてイメージ認識の最先端技術を更新 2017年9月4日
- Rustでインクリメンタルコンパイラと標準コードフォーマッタが利用可能に 2018年2月20日
- オラクルがJava 8の無償サポート期限を延長 2018年2月20日
- DevOpsの原則をネットワークに適用するには 2018年2月20日
サイト全般について
|
バグ
|
広告
|
記事
|
Marketing
|
InfoQ.com and all content copyright © 2006-2017 C4Media Inc. InfoQ.com and 株式会社豆蔵 InfoQ Japan hosted at Contegix, the best ISP we've ever worked with. プライバシー |
お気に入りのトピックや著者をフォローする
業界やサイト内で一番重要な見出しを閲覧する
より多いシグナル、より少ないノイズ
お気に入りのトピックと著者を選択して自分のフィードを作る
最新情報をすぐ手に入れるようにしよう
通知設定をして、お気に入りコンテンツを見逃さないようにしよう!
こんにちは
コメントするには InfoQアカウントの登録 または ログイン が必要です。InfoQ に登録するとさまざまなことができます。アカウント登録をしてInfoQをお楽しみください。
あなたの意見をお聞かせください。