Cluster Agent はエンドポイントチェッククラスターチェックの 2 種類のチェックをディスパッチできます。チェックの内容は若干異なります。

エンドポイントチェックは、アプリケーションポッドのエンドポイントと同じノード上の通常の Datadog Agent に特別にディスパッチされます。アプリケーションエンドポイントと同じノード上でエンドポイントチェックを実行することで、メトリクスに適切なタグ付けを行うことができます。

クラスターチェックは、Kubernetes の内部サービスだけでなく、マネージドデータベースやネットワークデバイスなどの外部サービスも監視し、より自由にディスパッチできます。 クラスターチェックランナーの使用はオプションです。クラスターチェックランナーを使用すると、少数の専用 Agent セットがクラスターチェックを実行し、エンドポイントチェックは通常の Agent に任せます。この戦略は、特にクラスターチェックの規模が大きくなった場合に、クラスターチェックのディスパッチを制御するのに有益です。

Set up

まず、Cluster Agent をデプロイします。

次に、Datadog Operator または Helm を使用してクラスターチェックランナーをデプロイします。

Operator を使用することで、単一のマニフェストでこれらのリソースすべてをローンチおよび管理することができます。例:

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <DATADOG_API_KEY>
      appKey: <DATADOG_APP_KEY>
    clusterAgentToken: <DATADOG_CLUSTER_AGENT_TOKEN>
  features:
    clusterChecks:
      enabled: true
      useClusterChecksRunners: true
  override:
    clusterAgent:
      replicas: 2

リソースをクラスターにデプロイします。

kubectl apply -f datadog-agent-with-dca-clusterchecksrunner.yaml

以下のような結果が表示された場合、コンフィギュレーションは正常に適用されています。

datadogagent.datadoghq.com/datadog created

Datadog Operator についての詳細は Datadog Operator リポジトリを参照してください。

チャートの関連するセクションを更新してクラスターチェック、Cluster Agent, クラスターチェックランナーを同時に有効化することができます。例:

datadog:
  clusterChecks:
    enabled: true
  #(...)

clusterAgent:
  enabled: true
  #(...)

clusterChecksRunner:
  enabled: true
  replicas: 2

: Datadog Operator および Helm チャートは、どちらも podAntiAffinity を使用して複数のクラスターチェックランナーが同じノードに適用されるのを回避しています。Cluster Agent はノード名でクラスターチェックを識別するため、これは重要です。podAntiAffinity を使用することで名前の衝突を避けることができます。