2

私のシナリオは、現在、デーモン セットとしてアプリケーションを実行しており、Datadog をインフラストラクチャに統合したいと考えています。私の理解では、デーモン セットの目的は、各セットの 1 つのポッドが各ノードで実行されるようにすることです。

ここでは、アプリケーションが datadog エージェントにデータをフィードするように指定します。エージェントのポートを公開するためServiceに of型を定義しました。Nodeportアプリケーション定義でサービス名を指定しましたが、機能します。1 つのノードの場合。ノードが増えるとどうなりますか? k8s は、同じノード上のエージェントにルーティングするのに十分なほど賢いでしょうか? または、アプリケーションを含むポッドが別のノード上のエージェントを呼び出す可能性がある状況がありますか? これは正しい設定ですか?

4

2 に答える 2

0

DaemonSets を使用してアプリケーションを実行するよりも優れたアプローチは、Deployment を使用して、アプリケーションをクラスター内のノード数に結び付けないようにすることです。

その後、datadog エージェント イメージを、spec.template.spec.affinity実行中のアプリケーションのポッドでノードを選択するセットを持つ DaemonSet としてデプロイできます。これにより、アプリケーションが実行されるすべてのノードに datadog エージェントが存在することが保証されます。

もう 1 つのオプションは、datadog エージェント コンテナをアプリケーション コンテナと同じポッドにデプロイすることです。この場合、localhost を介してエージェントに到達し、一緒にスケーリングできますが、ノードごとに複数のエージェントが存在する可能性があるため、アフィニティを持つ DaemonSet を好みます。

于 2017-10-13T22:56:40.763 に答える