2017-07-19 13 views
0

私たちはkubernetesを使用する予定であり、私たちの要件に合っているかどうか、検証しています。 インターネット(ホストとポート)上の特定のサービスに接続しているアプリケーション/ポッドを構築し、必要な限り(通常は永遠に)ソケットを有効に保ちたいと考えています。アプリケーションが接続するソケットの数はさまざまです。 インターポッド通信の場合は、RabbitMQを使用します。特定の目的(ソケット接続)の固定数のポッド

この目的のための正しい/ベストプラクティスのアプローチは何ですか? すべての/複数のソケットを扱う1つのポッド? 複数のソケットを扱う複製されたポッド? ポッドごとに1つのソケット? ソケットの数が変更された場合、どのように反応しますか?

現時点では、私たちのCIパイプラインにgitlab-ciとhelmを使用したいと考えています。

答えて

1

kubernetesは、Podをデプロイし、2つの抽象概念、DeploymentsとStatefulSetを持っています。前者は、ホスト名とIPが変更された一時的なポッドを展開します。後者は状態を保持します。

kubernetes を展開する場合は、のみを使用してください。私はむしろDocker Swarm ModeやKontenaのような単純なDockerやkubernetesオーケストレーターを使いたいです。

kubernetesが唯一のオプションの場合は、アプリケーションをStatefulSetとしてデプロイできます。そうすれば、ホスト名は再起動の間に残ります。アプリケーションにホスト名を監視させ、適切なエンドポイントに接続させます。例えば、app-1ポッドはendpoint:10001に接続し、app-2ポッドはendpoint:10002に接続し、その上でより多くのポッドはどちらか、より多くのソケットに接続し、手動でStatefulSetのレプリカを増やす、またはにサイドカーアプリケーションを作成するために必要な...

いいえ。レプリカを自動的にアップ/ダウンすることができます。

+0

ありがとうございました! これは唯一のアプリケーションではありません:) – psp

+0

乾杯:)もう一つ。どのように展開するかは、必要な復元力のレベルと、使用するk8ノードの数によって異なります。 HAが必須の場合、Podは複数のノードに展開する必要があります。それ以外の場合は、1つのポッドだけですべての接続を管理する方がはるかに簡単です。もしそれが死ぬと、k8sは再びそれを回転させます。欠点は、ノードが消滅した場合、そのノードがそれに沿っていることです。 –

関連する問題