Azureでホストされているkubernetesクラスタにマルチブローカーkafkaを設定しようとしています。私は1つのブローカセットアップが動作しています。マルチブローカーの設定では、カフカサービスを管理する飼育係ノード(3)のアンサンブルがあります。私はkafkaクラスターを複製係数3の複製コントローラーとして展開しています。それは3つのブローカーです。 3つのブローカーをZookeeperに登録するにはどうすればZookeeperと異なるIPアドレスを登録するのですか?kubernetes上のKafkaマルチブローカーのセットアップのために宣伝されたリスナーを指定する方法と、そのクラスターを経験的に公開する方法はありますか?
サービスの展開後にレプリケーションコントローラを起動し、レプリケーションコントローラのyamlファイルでCluster IPを使用して、SSL用とPLAINTEXTの2つのadvertised.listenersを指定します。ただし、このシナリオでは、すべてのブローカーが同じIPで登録し、レプリカへの書き込みに失敗します。スケーラビリティが問題になるため、各ブローカを個別のレプリケーションコントローラ/ポッドとサービスとして展開する必要はありません。私は本当にこれに関する考え/アイデアを感謝します。
編集1:
私はさらに、クラウド内の別のVPCにクラスタを公開しようとしています。私は、advertized.listenersを使ってクライアントにSSLとPLAINTEXTポートを公開する必要があります。複製ファクタが3のステートフルセットを使用し、kubernetesがポッドの正規のホスト名をホスト名として公開する場合、これらは外部クライアントからは解決できません。私がこの作業を行う唯一の方法は、各ブローカに対応する外部サービスを使用/公開することです。しかし、これはスケールされません。
この問題を解決できましたか? –
こんにちはマイク、私はカフカの "スケーラビリティの容易さ"の問題を解決していません。私は、ブローカーごとに異なるポートを持つingress-IP-address(私のkubernetesクラスター):portとして、アドバタイズされたホストでステートフルセット(一貫性のあるボリューム用)で各ブローカーを使用しています。これは、新しいポートをより多くのブローカのために開く必要があり、broker.yamlのアドバタイズされたポートをそれに応じて変更する必要があるため、スケーリングが困難です。 – Annu