Configuration de l'Agent de cluster
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

Configuration de l'Agent de cluster

Pour configurer l’Agent de cluster Datadog sur votre cluster Kubernetes, suivez ces étapes :

  1. Configurez l’Agent de cluster Datadog.
  2. Configurez votre Agent de façon à ce qu’il communique avec l’Agent de cluster Datadog.

Configurer l’Agent de cluster Datadog

Étape 1 : Configurer les autorisations RBAC

L’Agent de cluster Datadog a besoin des autorisations RBAC adéquates pour fonctionner :

  1. Examinez les manifestes dans le dossier RBAC de l’Agent de cluster Datadog. Notez que lorsque vous utilisez l’Agent de cluster, vos Agents de nœud ne peuvent pas interagir avec le serveur d’API Kubernetes ; seul l’Agent de cluster peut le faire.

  2. Pour configurer les autorisations RBAC de l’Agent de cluster, appliquez les manifestes suivants. Il se peut que vous ayez déjà effectué cette opération lors de la configuration du daemonset de l’Agent de nœud.

    kubectl apply -f "https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/cluster-agent/rbac.yaml"
    kubectl apply -f "https://raw.githubusercontent.com/DataDog/datadog-agent/master/Dockerfiles/manifests/cluster-agent/agent-rbac.yaml"

Cela permet de créer les objets ServiceAccount, ClusterRole et ClusterRoleBinding appropriés pour l’Agent de cluster.

Si vous utilisez Azure Kubernetes Service (AKS), vous aurez besoin de permissions supplémentaires. Consultez la FAQ dédiée pour les RBAC sur AKS pour le DCA.

Étape 2 : Sécuriser les communications entre l’Agent de cluster et l’Agent

Utilisez l’une des options suivantes pour sécuriser les communications entre l’Agent Datadog et l’Agent de cluster Datadog.

  • Créez un secret et accédez à celui-ci avec une variable d’environnement.
  • Définissez un token dans une variable d’environnement.
  • Utilisez une ConfigMap pour gérer vos secrets.

Si vous définissez la valeur sans utiliser de secret, le token est alors lisible dans le PodSpec.

  1. Exécutez la commande suivante pour créer un token de secret :

    echo -n '<ThirtyX2XcharactersXlongXtoken>' | base64
  2. Exécutez cette commande d’une ligne :

    kubectl create secret generic datadog-agent-cluster-agent --from-literal=token='<ThirtyX2XcharactersXlongXtoken>'

    Vous pouvez également modifier la valeur du secret dans le fichier agent-secret.yaml qui se trouve dans le répertoire manifest/cluster-agent ou le créer avec :

    kubectl create -f Dockerfiles/manifests/cluster-agent/agent-secret.yaml

  3. Utilisez ce secret avec la variable d’environnement DD_CLUSTER_AGENT_AUTH_TOKEN dans les manifestes de l’Agent de cluster. Consultez la section Étape 3 : Créer l’Agent de cluster et son service et la section Étape 2 : Activer l’Agent Datadog.

  1. Exécutez la commande suivante pour créer un token de secret :

    echo -n '<ThirtyX2XcharactersXlongXtoken>' | base64
  2. Utilisez ce secret avec la variable d’environnement DD_CLUSTER_AGENT_AUTH_TOKEN dans les manifestes de l’Agent de cluster et de l’Agent basé sur des nœuds.

              - name: DD_CLUSTER_AGENT_AUTH_TOKEN
                value: "<ThirtyX2XcharactersXlongXtoken>"
  1. Exécutez la commande suivante pour créer un token de secret :

    echo -n '<ThirtyX2XcharactersXlongXtoken>' | base64
  2. Créez votre datadog-cluster.yaml avec les variables de votre choix dans le fichier datadog.yaml et créez la ConfigMap comme suit :

    kubectl create configmap dca-yaml --from-file datadog-cluster.yaml

Remarque : cela doit être défini dans le manifeste de l’Agent de cluster et celui de l’Agent de nœud.

Étape 3 : Créer l’Agent de cluster et son service

  1. Téléchargez les manifestes suivants :

  2. Dans le manifeste secrets.yaml, remplacez PUT_YOUR_BASE64_ENCODED_API_KEY_HERE par votre clé d’API Datadog encodée en base64 :

    echo -n '<Votre clé d’API>' | base64
  3. Dans le manifeste cluster-agent-deployment.yaml, définissez le token conformément à la section Étape 2 : Sécuriser les communications entre l’Agent de cluster et l’Agent. Le format dépend de la façon dont vous configurez votre secret ; les instructions se trouvent directement dans le manifeste.

  4. Exécutez : kubectl apply -f agent-service.yaml

  5. Exécutez : kubectl apply -f secrets.yaml

  6. Enfin, déployez l’Agent de cluster Datadog : kubectl apply -f cluster-agent-deployment.yaml

Étape 4 : Vérification

À ce stade, vous devriez voir ce qui suit :

-> kubectl get deploy

NAME                    DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
datadog-cluster-agent   1         1         1            1           1d

-> kubectl get secret

NAME                         TYPE                                  DATA      AGE
datadog-agent-cluster-agent  Opaque                                1         1d

-> kubectl get pods -l app=datadog-cluster-agent

datadog-cluster-agent-8568545574-x9tc9   1/1       Running   0          2h

-> kubectl get service -l app=datadog-cluster-agent

NAME                    TYPE           CLUSTER-IP       EXTERNAL-IP        PORT(S)          AGE
datadog-cluster-agent   ClusterIP      10.100.202.234   none               5005/TCP         1d

Remarque : si l’Agent Datadog s’exécute déjà, vous devrez peut-être appliquer le manifeste rbac-agent.yaml avant que l’Agent de cluster ne puisse s’exécuter.

Configurer l’Agent Datadog

Une fois l’Agent de cluster Datadog configuré, configurez votre Agent Datadog de façon à le faire communiquer avec l’Agent de cluster Datadog.

Configuration

Étape 1 : Configurer les autorisations RBAC des Agents de nœud

  1. Téléchargez le manifeste rbac-agent.yaml. Remarque : lorsque vous utilisez l’Agent de cluster, vos Agents de nœud ne peuvent pas interagir avec le serveur d’API Kubernetes ; seul l’Agent de cluster peut le faire.

  2. Exécutez : kubectl apply -f rbac-agent.yaml.

Étape 2 : Activer l’Agent Datadog

  1. Téléchargez le manifeste daemonset.yaml.

  2. Dans le manifeste daemonset.yaml, remplacez <DD_SITE> par le site Datadog que vous utilisez, p. ex. datadoghq.com or datadoghq.eu. Cette valeur correspond par défaut à datadoghq.com.

  3. Dans le manifeste daemonset.yaml, définissez le token conformément à la section Étape 2 : Sécuriser les communications entre l’Agent de cluster et l’Agent. Le format dépend de la façon dont vous configurez votre secret ; les instructions se trouvent directement dans le manifeste.

  4. Dans le manifeste daemonset.yaml, vérifiez que la variable d’environnement DD_CLUSTER_AGENT_ENABLED est définie à true.

  5. Créez le DaemonSet avec cette commande : kubectl apply -f daemon.yaml.

Vérification

Exécutez :

kubectl get pods | grep agent

Vous devriez voir ce qui suit :

datadog-agent-4k9cd                      1/1       Running   0          2h
datadog-agent-4v884                      1/1       Running   0          2h
datadog-agent-9d5bl                      1/1       Running   0          2h
datadog-agent-dtlkg                      1/1       Running   0          2h
datadog-agent-jllww                      1/1       Running   0          2h
datadog-agent-rdgwz                      1/1       Running   0          2h
datadog-agent-x5wk5                      1/1       Running   0          2h
[...]
datadog-cluster-agent-8568545574-x9tc9   1/1       Running   0          2h

La transmission des événements Kubernetes à votre compte Datadog commence alors. Les métriques pertinentes recueillies par vos Agents se voient assignées le tag correspondant dans les métadonnées de cluster.

Pour aller plus loin