Cette page décrit la marche à suivre pour installer l’Agent Datadog dans un environnement Kubernetes. Vous pouvez choisir l’une des trois ressources suivantes :
Operator Datadog
Chart Helm
DaemonSet
Pour parcourir la documentation dédiée aux principales distributions Kubernetes, y compris AWS Elastic Kubernetes Service (EKS), Azure Kubernetes Service (AKS), Google Kubernetes Engine (GKE), Red Hat OpenShift, Rancher et Oracle Container Engine pour Kubernetes (OKE) et découvrir des exemples, référez-vous à la section Distributions Kubernetes.
Pour parcourir la documentation dédiée à la surveillance du plan de contrôle Kubernetes ainsi que des exemples, consultez la section Surveillance du plan de contrôle Kubernetes.
Pour utiliser certaines fonctionnalités des versions récentes de Kubernetes, vous devez exécuter des versions minimales de l’Agent Datadog et de l’Agent de cluster.
L'Operator Datadog est disponible pour le grand public depuis la version `1.0.0`, il prend en charge la version `v2alpha1` du `DatadogAgent` .
L’Operator Datadog est une fonctionnalité permettant de déployer l’Agent Datadog sur Kubernetes et OpenShift. L’Operator transmet des données sur le statut, la santé et les erreurs du déploiement dans le statut de sa ressource personnalisée. Ses paramètres de niveau supérieur permettent également de réduire les erreurs de configuration.
L’utilisation de l’Operator Datadog nécessite les prérequis suivants :
Cluster Kubernetes version >= v1.20.X : les tests ont été réalisés sur les versions >= 1.20.0. Néanmoins, les versions >= v1.11.0 devraient également fonctionner. Pour les versions plus anciennes, en raison de la prise en charge limitée de la CRD, il se peut que l’Operator ne fonctionne pas comme prévu.
<ID_UTILISATEUR> correspond à l’UID utilisé pour exécuter l’agent et <ID_GROUPE_DOCKER> à l’ID du groupe auquel appartient le socket containerd ou Docker.
Créez votre fichier values.yaml en vous référant au fichier de configuration values.yaml Datadog. Datadog vous conseille d’utiliser uniquement des valeurs qui doivent être remplacées, afin de faciliter la mise à niveau du chart.
S’il s’agit d’une nouvelle installation, ajoutez le référentiel Helm Datadog :
Ce chart ajoute l’Agent Datadog à l’ensemble des nœuds dans votre cluster avec 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.
Activez ensuite les fonctionnalités Datadog que vous souhaitez utiliser, comme l’APM ou les logs.
Remarques :
Pour obtenir la liste complète des paramètres configurables pour le chart Datadog et leurs valeurs par défaut, consultez le README du référentiel Helm Datadog.
Si Google Container Registry (gcr.io/datadoghq) n’est pas accessible dans votre région de déploiement, utilisez un autre registre avec la configuration suivante dans le fichier values.yaml :
Pour le registre AWS ECR public (public.ecr.aws/datadog), utilisez la commande suivante :
registry:public.ecr.aws/datadog
Pour le registre Docker Hub (docker.io/datadog), utilisez la commande suivante :
registry:docker.io/datadog
Remarques :
Si vous déployez le chart Datadog dans un environnement AWS, il est conseillé d’utiliser le registre AWS ECR public (public.ecr.aws/datadog).
Le chart Datadog a été réusiné dans la v2.0 afin de regrouper plus logiquement les paramètres du fichier values.yaml.
Si vous déployez actuellement un chart antérieur à v2.0.0, suivez le guide de migration (en anglais) afin de mapper vos anciens paramètres avec les nouveaux champs.
<ID_UTILISATEUR> correspond à l’UID utilisé pour exécuter l’agent et <ID_GROUPE_DOCKER> à l’ID du groupe auquel appartient le socket containerd ou docker.
Tirez profit des DaemonSets pour déployer l’Agent Datadog sur l’ensemble de vos nœuds (ou sur un nœud donné grâce aux nodeSelectors).
Pour installer l’Agent Datadog sur votre cluster Kubernetes :
Configurez les autorisations de l’Agent : si le contrôle d’accès basé sur des rôles (RBAC) est activé pour votre déploiement Kubernetes, configurez les autorisations RBAC pour le compte de service de votre Agent Datadog. Depuis la version 1.6 de Kubernetes, le RBAC est activé par défaut. Créez les ClusterRole, ServiceAccount et ClusterRoleBinding appropriés à l’aide de la commande suivante :
Remarque : ces configurations RBAC sont définies pour l’espace de nommage default. Si vous utilisez un espace de nommage personnalisé, modifiez le paramètre namespace avant d’appliquer les configurations.
Créez le manifeste de l’Agent Datadog. Créez le manifeste datadog-agent.yaml à partir de l’un des modèles suivants :
Remarque : ces manifestes sont définis pour l’espace de nommage default. Si vous utilisez un espace de nommage personnalisé, modifiez le paramètre metadata.namespace avant d’appliquer les manifestes.
Dans le manifeste secret-api-key.yaml, remplacez PUT_YOUR_BASE64_ENCODED_API_KEY_HERE par votre clé d’API Datadog encodée en base64. Pour obtenir la version base64 de votre clé d’API, exécutez la commande suivante :
echo -n '<Your API key>'| base64
Dans le manifeste secret-cluster-agent-token.yaml, remplacez PUT_A_BASE64_ENCODED_RANDOM_STRING_HERE par une chaîne aléatoire encodée en base64. Pour obtenir la version base64 de cette chaîne, exécutez la commande suivante :
echo -n 'Random string'| base64
Remarque : la chaîne aléatoire doit inclure au moins 32 caractères alphanumériques, afin de sécuriser les communications entre l’Agent de cluster et l’Agent.
Définissez votre site Datadog sur datadoghq.com en utilisant la variable d’environnement DD_SITE dans le manifeste datadog-agent.yaml.
Remarque : si la variable d’environnement DD_SITE n’est pas explicitement définie, sa valeur par défaut correspond au site US, à savoir datadoghq.com. Si vous utilisez l’un des autres sites (EU, US3 ou US1-FED), un message de clé d’API non valide s’affiche. Utilisez le menu de sélection de site de la documentation pour accéder à la documentation spécifique à votre site.
Déployez le DaemonSet avec cette commande :
kubectl apply -f datadog-agent.yaml
Vérification : pour vérifier que l’Agent Datadog s’exécute dans votre environnement en tant que DaemonSet, exécutez ce qui suit :
kubectl get daemonset
Si l’Agent est déployé, une sortie similaire au texte ci-dessous s’affiche. Les valeurs DESIRED et CURRENT correspondent au nombre de nœuds exécutés dans votre cluster.
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
datadog-agent 22222 <none> 10s
Configurez des métriques Kubernetes State (facultatif) : téléchargez le dossier de manifestes Kube-State, puis appliquez les manifestes à votre cluster Kubernetes pour recueillir automatiquement des métriques kube-state :
<ID_UTILISATEUR> correspond à l’UID utilisé pour exécuter l’agent et <ID_GROUPE_DOCKER> à l’ID du groupe auquel appartient le socket containerd ou docker.
Pour recueillir des événements, remplacer les paramètres de proxy, envoyer des métriques custom avec DogStatsD, configurer des listes d’inclusion et d’exclusion de conteneurs ou consulter la liste complète des variables d’environnement disponibles, consultez la section Configurer l’Agent Datadog sur Kubernetes.