L’Agent de cluster peut distribuer deux types de checks : des checks d’endpoint et des checks de cluster. Ces deux types de checks sont légèrement différents l’un de l’autre.

Les checks d’endpoint sont distribués spécifiquement à l’Agent Datadog sur le même nœud que les endpoints des pods d’application. Cela permet de taguer correctement les métriques.

Les checks de cluster surveillent des services Kubernetes internes, ainsi que des services externes, comme des périphériques réseau et des bases de données gérées. Leur distribution est beaucoup plus libre. Il n’est pas obligatoire d’utiliser des exécuteurs de checks de cluster. Lorsque vous utilisez un exécuteur de checks de cluster, un petit groupe d’Agents dédiés exécutent les checks de cluster. Les checks d’endpoint sont alors gérés par l’Agent normal. Cette approche permet de contrôler plus facilement la distribution des checks de cluster, notamment lorsque leur nombre et complexité augmentent.

Configuration

Tout d’abord, déployez l’Agent de cluster.

Déployez ensuite l’exécuteur de checks de cluster à l’aide de l’Operator Datadog ou de Helm :

Grâce à l’Operator, vous pouvez lancer et gérer toutes ces ressources avec un seul manifeste. Exemple :

apiVersion: datadoghq.com/v2alpha1
kind: DatadogAgent
metadata:
  name: datadog
spec:
  global:
    credentials:
      apiKey: <CLÉ_API_DATADOG>
      appKey: <CLÉ_APPLICATION_DATADOG>
    clusterAgentToken: <TOKEN_AGENT_CLUSTER_DATADOG>
  features:
    clusterChecks:
      enabled: true
      useClusterChecksRunners: true
  override:
    clusterAgent:
      replicas: 2

Déployez ces ressources dans votre cluster :

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

Si la ligne suivante s’affiche, la configuration a bien été appliquée :

datadogagent.datadoghq.com/datadog created

Consultez le référentiel de l’Operator Datadog pour en savoir plus sur l’Operator Datadog.

Vous pouvez modifier les sections pertinentes du chart, afin d’activer simultanément les checks de cluster, l’Agent de cluster et l’exécuteur de checks de cluster. Exemple :

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

clusterAgent:
  enabled: true
  #(...)

clusterChecksRunner:
  enabled: true
  replicas: 2

Remarque : l’Operator Datadog et le chart Helm utilisent tous les deux podAntiAffinity afin d’éviter l’utilisation de plusieurs exécuteurs de checks de cluster sur un même nœud. Cette étape est importante, car l’Agent de cluster identifie les exécuteurs de checks de cluster en fonction du nom de leur nœud. podAntiAffinity permet d’éviter tout conflit de nom.