Amazon EKS sur AWS Fargate est un service Kubernetes géré qui permet d’automatiser certains aspects du déploiement et de la maintenance de n’importe quel environnement Kubernetes standard. Les nœuds Kubernetes sont gérés par AWS Fargate, les utilisateurs n’ont donc plus besoin de s’en occuper.
Ces étapes décrivent comment configurer l’Agent Datadog 7.17 ou ultérieur dans un conteneur au sein d’Amazon EKS sur AWS Fargate. Consultez la documentation relative à l’intégration Datadog/Amazon EKS si vous n’utilisez pas AWS Fargate.
Les pods AWS Fargate ne sont pas des pods physiques. Ils excluent donc les checks système basés sur des hosts, comme les checks liés au processeur, à la mémoire, etc. Pour recueillir des données à partir de vos pods AWS Fargate, vous devez exécuter l’Agent en tant que sidecar du pod de votre application avec un RBAC personnalisé. Cette configuration vous permet de bénéficier des fonctionnalités suivantes :
Si vous ne spécifiez pas, via le profil AWS Fargate, que vos pods doivent s’exécuter sur Fargate, ils peuvent avoir recours à des machines EC2 classiques. Dans ce cas, consultez la configuration de l’intégration Datadog/Amazon EKS pour recueillir des données à partir des machines. Cette collecte passe par l’exécution de l’Agent en tant que charge de travail EC2. La configuration de l’Agent est identique à celle de l’Agent Kubernetes et vous disposez de l’ensemble des options. Pour déployer l’Agent sur des nœuds EC2, utilisez la configuration DaemonSet pour l’Agent Datadog.
Pour accroître votre visibilité lors de la surveillance de charges de travail dans AWS EKS Fargate, installez les intégrations Datadog pour :
Configurez également les intégrations des autres services AWS que vous exécutez avec EKS (par exemple, ELB).
Pour procéder à l’installation, téléchargez la version 7.17 ou une version ultérieure de l’image de l’Agent personnalisé datadog/agent
.
Si l’Agent s’exécute en tant que sidecar, il peut communiquer uniquement avec des conteneurs sur le même pod. Exécutez donc un Agent pour chaque pod que vous souhaitez surveiller.
Pour recueillir des données à partir de vos applications qui s’exécutent dans AWS EKS Fargate sur un nœud Fargate, suivez les étapes suivantes :
Pour que vos conteneurs EKS Fargate s’affichent dans la vue Live Container de Datadog, activez shareProcessNamespace
dans les spécifications de votre pod. Consultez la section Collecte de processus.
Utilisez le RBAC d’Agent suivant lors du déploiement de l’Agent en tant que sidecar dans AWS EKS Fargate :
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
name: datadog-agent
rules:
- apiGroups:
- ""
resources:
- nodes/metrics
- nodes/spec
- nodes/stats
- nodes/proxy
- nodes/pods
- nodes/healthz
verbs:
- get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: datadog-agent
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: datadog-agent
subjects:
- kind: ServiceAccount
name: datadog-agent
namespace: default
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: datadog-agent
namespace: default
Pour commencer à recueillir les données de votre pod Fargate, déployez la version 7.17 ou une version ultérieure de l’Agent Datadog en tant que sidecar de votre application. Vous trouverez ci-dessous la configuration minimale requise pour recueillir des métriques à partir de votre application s’exécutant dans le pod. Vous remarquerez que nous avons ajouté DD_EKS_FARGATE=true
dans le manifeste pour déployer le sidecar de votre Agent Datadog.
apiVersion: apps/v1
kind: Deployment
metadata:
name: "<NOM_APPLICATION>"
namespace: default
spec:
replicas: 1
template:
metadata:
labels:
app: "<NOM_APPLICATION>"
name: "<NOM_POD>"
spec:
serviceAccountName: datadog-agent
containers:
- name: "<NOM_APPLICATION>"
image: "<IMAGE_APPLICATION>"
## Exécution de l'Agent en tant que sidecar
- image: datadog/agent
name: datadog-agent
env:
- name: DD_API_KEY
value: "<VOTRE_CLÉ_API_DATADOG>"
## Définir DD_SITE sur « datadoghq.eu » pour envoyer les
## données de votre Agent au site européen de Datadog
- name: DD_SITE
value: "datadoghq.com"
- name: DD_EKS_FARGATE
value: "true"
- name: DD_KUBERNETES_KUBELET_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "256Mi"
cpu: "200m"
Remarque : n’oubliez pas de remplacer <VOTRE_CLÉ_API_DATADOG>
par la clé d’API Datadog de votre organisation.
Utilisez les étiquettes Autodiscovery avec le conteneur de votre application pour commencer à recueillir ses métriques pour les intégrations d’Agent prises en charge.
apiVersion: apps/v1
kind: Deployment
metadata:
name: "<NOM_APPLICATION>"
namespace: default
spec:
replicas: 1
template:
metadata:
labels:
app: "<NOM_APPLICATION>"
name: "<NOM_POD>"
annotations:
ad.datadoghq.com/<NOM_CONTENEUR>.check_names: '[<NOM_CHECK>]'
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR>.init_configs: '[<CONFIG_INIT>]'
ad.datadoghq.com/<IDENTIFICATEUR_CONTENEUR>.instances: '[<CONFIG_INSTANCE>]'
spec:
serviceAccountName: datadog-agent
containers:
- name: "<NOM_APPLICATION>"
image: "<IMAGE_APPLICATION>"
## Exécution de l'Agent en tant que sidecar
- image: datadog/agent
name: datadog-agent
env:
- name: DD_API_KEY
value: "<VOTRE_CLÉ_API_DATADOG>"
## Définir DD_SITE sur « datadoghq.eu » pour envoyer les
## données de votre Agent au site européen de Datadog
- name: DD_SITE
value: "datadoghq.com"
- name: DD_EKS_FARGATE
value: "true"
- name: DD_KUBERNETES_KUBELET_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "256Mi"
cpu: "200m"
Remarques :
<VOTRE_CLÉ_API_DATADOG>
par la clé d’API Datadog de votre organisation.cgroups
du host sur l’Agent.Configurez le port de conteneur 8125
pour votre conteneur d’Agent afin d’envoyer des métriques DogStatsD à Datadog depuis le conteneur de votre application.
apiVersion: apps/v1
kind: Deployment
metadata:
name: "<NOM_APPLICATION>"
namespace: default
spec:
replicas: 1
template:
metadata:
labels:
app: "<NOM_APPLICATION>"
name: "<NOM_POD>"
spec:
serviceAccountName: datadog-agent
containers:
- name: "<NOM_APPLICATION>"
image: "<IMAGE_APPLICATION>"
## Exécution de l'Agent en tant que sidecar
- image: datadog/agent
name: datadog-agent
## Activation du port 8125 pour la collecte de métriques DogStatsD
ports:
- containerPort: 8125
name: dogstatsdport
protocol: UDP
env:
- name: DD_API_KEY
value: "<VOTRE_CLÉ_API_DATADOG>"
## Définir DD_SITE sur « datadoghq.eu » pour envoyer les
## données de votre Agent au site européen de Datadog
- name: DD_SITE
value: "datadoghq.com"
- name: DD_EKS_FARGATE
value: "true"
- name: DD_KUBERNETES_KUBELET_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "256Mi"
cpu: "200m"
Remarque : n’oubliez pas de remplacer <VOTRE_CLÉ_API_DATADOG>
par la clé d’API Datadog de votre organisation.
Configurez le port de conteneur 8126
pour votre conteneur d’Agent afin de recueillir des traces à partir du conteneur de votre application. En savoir plus sur la configuration du tracing.
apiVersion: apps/v1
kind: Deployment
metadata:
name: "<NOM_APPLICATION>"
namespace: default
spec:
replicas: 1
template:
metadata:
labels:
app: "<NOM_APPLICATION>"
name: "<NOM_POD>"
spec:
serviceAccountName: datadog-agent
containers:
- name: "<NOM_APPLICATION>"
image: "<IMAGE_APPLICATION>"
## Exécution de l'Agent en tant que sidecar
- image: datadog/agent
name: datadog-agent
## Activation du port 8126 pour la collecte de traces
ports:
- containerPort: 8126
name: traceport
protocol: TCP
env:
- name: DD_API_KEY
value: "<VOTRE_CLÉ_API_DATADOG>"
## Définir DD_SITE sur « datadoghq.eu » pour envoyer les
## données de votre Agent au site européen de Datadog
- name: DD_SITE
value: "datadoghq.com"
- name: DD_EKS_FARGATE
value: "true"
- name: DD_APM_ENABLED
value: "true"
- name: DD_KUBERNETES_KUBELET_NODENAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: spec.nodeName
resources:
requests:
memory: "256Mi"
cpu: "200m"
limits:
memory: "256Mi"
cpu: "200m"
Remarque : n’oubliez pas de remplacer <VOTRE_CLÉ_API_DATADOG>
par la clé d’API Datadog de votre organisation.
Pour recueillir des événements depuis votre serveur d’API AWS EKS Fargate, exécutez un Agent de cluster Datadog sur un pod AWS EKS EC2 dans votre cluster Kubernetes :
Outre la configuration de l’Agent de cluster Datadog, vous pouvez également choisir de déployer des exécuteurs de checks de cluster afin de faciliter leur activation.
Remarque : vous pouvez également recueillir des événements si vous exécutez l’Agent de cluster Datadog dans un pod dans Fargate.
Les Agents 6.19+/7.19+ prennent en charge la Collecte de processus. Activez shareProcessNamespace
dans les spécifications de pod pour recueillir tous les processus exécutés sur votre pod Fargate. Exemple :
apiVersion: v1
kind: Pod
metadata:
name: <NOM>
spec:
shareProcessNamespace: true
...
Remarque : les métriques de CPU et de mémoire ne sont pas disponibles.
Le check eks_fargate envoie une métrique de pulsation eks.fargate.pods.running
avec les tags pod_name
et virtual_node
. Cela vous permet de surveiller le nombre de pods en cours d’exécution.
eks_fargate n’inclut aucun check de service.
eks_fargate n’inclut aucun événement.
Besoin d’aide ? Contactez l’assistance Datadog.