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
を使用することで名前の衝突を避けることができます。