Nouvelles annonces sur les technologies sans serveur et réseau ainsi que sur le RUM (Real-User Monitoring) dévoilées à la conférence Dash ! Nouvelles annonces dévoilées à la conférence Dash !

Déployer Datadog dans Kubernetes avec Helm

Helm est un outil de gestion de paquets pour Kubernetes.

Installer Helm

Installer le client Helm

brew install kubernetes-helm
sudo snap install helm --classic
choco install kubernetes-helm

Pour installer Helm sur une autre plateforme ou avec une autre méthode, consultez la documentation Helm.

Installer le serveur Helm (Tiller)

Si votre environnement Kubernetes n’utilise pas RBAC, la commande suivante installe Tiller dans votre cluster :

helm init

Consultez la documentation du Tiller de Helm pour en savoir plus.

Si RBAC est activé sur votre cluster Kubernetes, utilisez la configuration RBAC suivante pour déployer Tiller.

apiVersion: v1
kind: ServiceAccount
metadata:
 name: tiller
 namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
 name: tiller
roleRef:
 apiGroup: rbac.authorization.k8s.io
 kind: ClusterRole
 name: cluster-admin
subjects:
 - kind: ServiceAccount
   name: tiller
   namespace: kube-system

Une fois cette configuration définie en tant que tiller-rbac-config.yaml, exécutez :

kubectl create -f tiller-rbac-config.yaml

helm init --service-account tiller

Consultez la documentation Tiller/RBAC de Helm pour en savoir plus.

Vérifier l’installation

Pour vérifier votre installation, exécutez :

kubectl get pods -n kube-system -l app=helm

Cela renvoie quelque chose semblable à ce qui suit :

NAME READY STATUS RESTARTS AGE
tiller-deploy-f54b67464-jl5gm 1/1 Running 0 3h16m

Installer le chart Helm Datadog

Pour installer le chart avec le nom de version <NOM_VERSION>, récupérez votre clé d’API Datadog à partir des instructions d’installation de l’Agent et exécutez :

helm install --name <NOM_VERSION> --set datadog.apiKey=<CLÉ_API_DATADOG> stable/datadog

Ce chart ajoute l’Agent Datadog à l’ensemble des nœuds dans votre cluster via un DaemonSet. Il peut également déployer le chart kube-state-metrics et l’utiliser comme source supplémentaire de métriques concernant le cluster. Quelques minutes après l’installation, Datadog commence à transmettre les hosts et les métriques.

Remarque : pour obtenir la liste complète des paramètres disponibles pour le chart Datadog et leurs valeurs par défaut, consultez le README du référentiel Helm Datadog.

Configurer le chart Helm Datadog

Pour configurer le chart, il est conseillé d’utiliser un fichier YAML spécifiant les valeurs des paramètres du chart :

  1. Copiez le fichier datadog-values.yaml par défaut.
  2. Définissez le paramètre apiKey avec votre clé d’API Datadog.
  3. Mettez à niveau le chart Helm Datadog avec le nouveau fichier datadog-values.yaml :
helm upgrade -f datadog-values.yaml <NOM_VERSION> stable/datadog --recreate-pods

Activer la collecte de logs

Mettez à jour votre fichier datadog-values.yaml avec la configuration de collecte de logs suivante, puis mettez à niveau votre chart Helm Datadog :

datadog:
  (...)
 logsEnabled: true
 logsConfigContainerCollectAll: true

Activer la collecte de métriques custom

Pour recueillir des métriques custom avec DogStatsD, activez le trafic non local en modifiant votre fichier datadog-values.yaml.

datadog:
  (...)
  nonLocalTraffic: true

Activer l’APM et le tracing distribué

Remarque : si vous souhaitez déployer l’Agent Datadog en tant que déploiement et non via un DaemonSet, la configuration de l’APM avec Helm n’est pas prise en charge.

Mettez à jour votre fichier datadog-values.yaml avec la configuration d’APM suivante :

datadog:
  (...)
  apmEnabled: true
  nonLocalTraffic: true

(...)

daemonset:
  (...)
  useHostPort: true

Mettez à jour la section env du manifeste de votre application avec le bloc suivant :

env:
  - name: DD_AGENT_HOST
    valueFrom:
      fieldRef:
        fieldPath: status.hostIP

Ensuite, mettez à niveau votre chart Helm Datadog.

Enfin, indiquez aux traceurs d’application l’IP du host via la variable d’environnement DD_AGENT_HOST. Par exemple, en Python :

import os
from ddtrace import tracer

tracer.configure(
    hostname=os.environ['DD_AGENT_HOST'],
    port=os.environ['DD_TRACE_AGENT_PORT'],
)

Consultez la documentation sur l’APM propre à votre langage pour obtenir davantage d’exemples.

Activer la collecte de processus

Mettez à jour votre fichier datadog-values.yaml avec la configuration de collecte de processus suivante, puis mettez à niveau votre chart Helm Datadog :

datadog:
  (...)
  processAgentEnabled: true

Activer les intégrations avec Helm

Le point d’entrée Datadog copie les fichiers avec l’extension .yaml trouvés dans /conf.d et les fichiers avec l’extension .py dans /check.d vers /etc/datadog-agent/conf.d et /etc/datadog-agent/checks.d, respectivement. Les clés pour datadog.confd et datadog.checksd doivent correspondre au contenu trouvé dans leurs ConfigMaps respectives, c’est à dire :

datadog:
  confd:
    redisdb.yaml: |-
      ad_identifiers:
        - redis
        - bitnami/redis
      init_config:
      instances:
        - host: "%%host%%"
          port: "%%port%%"
    jmx.yaml: |-
      ad_identifiers:
        - openjdk
      instance_config:
      instances:
        - host: "%%host%%"
          port: "%%port_0%%"

Désinstaller le chart Helm Datadog

Pour désinstaller ou supprimer un déploiement appelé <NOM_VERSION> :

helm delete <NOM_VERSION>

Cette commande supprime tous les composants Kubernetes associés au chart et supprime la version.