2017-12-23 21 views
2

大規模なオンラインアプリケーションの場合は、k8sを使用して実行します。このスケールは、毎日の活動ユーザー500,000であってもよい。KubernetesでKafkaを実行するのは良い方法ですか?

K8S内部アプリケーションメッセージング機能必要 - パブ/サブを、これらのオプションがあります

  • カフカ
  • RabbitMQの
  • Redisの

カフカ

それは飼育係が必要ですosで実行するとディスクI/Oに依存します。だからk8sクラスタにインストールすれば、どうですか?パフォーマンスは悪くなりますか?

kafkaをk8sクラスタの外側に置いておくと、k8sクラスタ内のアプリケーションからKafkaを接続すると、そのパフォーマンスはどうですか?彼らは別の層にあり、遅くなることはありませんか?

RabbitMQの

それはカフカよりも遅いですが、日々の活動のユーザー50万アプリケーション、それは十分ですか!もしそうなら、多分それは良い選択です。

レディス

これは別のオプションです。おそらく最も単純なものでしょう。しかし、インターネットから私は時々メッセージを失うことになる。本当なら、それはひどいです。


ので、最も重要なことは、このユースケースで良いかどうか、K8Sに(また、飼育係と)カフカを使うのか?

答えて

2

はい、Kafka on Kubernetesを実行しています。この例を確認してください:https://github.com/Yolean/kubernetes-kafka。 ZooKeeperとKafkaにはStatefulSetが含まれています。


PS。 Kubernetesであなたの質問にあるサービスを実行することは楽しいでしょう。サービスの名前と "kubernetes"をGoogleに表示して、マニフェストの例を見つけることができます。多くの例がここにあります:https://github.com/kubernetes/charts

+0

ありがとうございました。私が尋ねると心配したように、純粋なOSを使用するのと同じ性能と、ドッカーとのk8sの性能は同じですか? – online

+0

私はkubernetesには常にオーバーヘッドがあると思います。私はそれをベンチマークしていないが、私はkubernetesがオーバーヘッドと一緒に来るのを読む。私はそれをgoogleするだろう。個人的には、しかし、私はオーバーヘッドが利便性を犠牲にすることはできません見つける。 –

+0

Kafka Streamsも素晴らしいです。 –

1

カフカについては、いくつかの提案hereがあります。 Kubernetes 1.7+はlocal persistent volumeをサポートしています。これはKafkaの展開に適しています。

1

また、次のプロジェクトに見てみることができます。

https://github.com/EnMasseProject/barnabas

それは同様にKubernetesとOpenShift上カフカを実行していることです。これは、永続的なボリュームを持つステートフルセットまたはメモリ内に(目的の開発または単なるテストのための)ステートフルセットを使用したデプロイメントを提供します。 Kafka ConnectとPrometheusのメトリックにもデプロイメントを提供します。

関連する問題