Installation du Datadog Operator
Ce document contient des informations détaillées sur l’installation du Datadog Operator. Pour obtenir des instructions d’installation de base de l’Agent Datadog sur Kubernetes, consultez la section Installer l’Agent Datadog sur Kubernetes.
Prérequis
- Version de cluster Kubernetes >= v1.20.X : les tests ont été effectués sur les versions Kubernetes >=
1.20.0. Il devrait fonctionner sur les versions >= v1.11.0, mais pour les versions antérieures, l’opérateur peut ne pas fonctionner comme prévu en raison d’une prise en charge limitée des CRD. - Helm pour le déploiement du Datadog Operator
kubectl CLI pour l’installation de l’Agent Datadog
Installer le Datadog Operator avec Helm
Vous pouvez déployer le Datadog Operator dans votre cluster à l’aide du chart Helm Datadog Operator :
helm repo add datadog https://helm.datadoghq.com
helm install my-datadog-operator datadog/datadog-operator
Pour personnaliser la configuration de l’opérateur, créez un fichier values.yaml qui peut remplacer les valeurs par défaut du chart Helm.
Par exemple :
image:
tag: 1.2.0
clusterName: my-cluster
datadogMonitor:
enabled: true
Ensuite, pour mettre à jour la version de Helm, exécutez :
helm upgrade my-datadog-operator datadog/datadog-operator -f values.yaml
Créez un Secret Kubernetes qui contient vos clés d’API et d’application.
export DD_API_KEY=<YOUR_API_KEY>
export DD_APP_KEY=<YOUR_APP_KEY>
kubectl create secret generic datadog-operator-secret --from-literal api-key=$DD_API_KEY --from-literal app-key=$DD_APP_KEY
Faites référence à ce Secret dans votre fichier values.yaml.
apiKeyExistingSecret: datadog-operator-secret
appKeyExistingSecret: datadog-operator-secret
image:
tag: 1.2.0
datadogMonitor:
enabled: true
Mettez à jour la version de Helm.
helm upgrade my-datadog-operator datadog/datadog-operator -f values.yaml
La définition d’un nom de cluster est facultative mais recommandée. Le nom de cluster peut être configuré de la manière suivante :
Installer le Datadog Operator avec Operator Lifecycle Manager
Les instructions pour le déploiement du Datadog Operator avec Operator Lifecycle Manager (OLM) sont disponibles sur operatorhub.io.
Remplacer la configuration par défaut de l’opérateur avec OLM
Le framework Operator Lifecycle Manager permet de remplacer la configuration par défaut de l’opérateur. Consultez la section Configuration de l’abonnement pour obtenir une liste des paramètres de configuration d’installation pris en charge.
Par exemple, l’élément Subscription Operator Lifecycle Manager suivant modifie les ressources de Pod de l’opérateur Datadog :
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: my-datadog-operator
namespace: operators
spec:
channel: stable
name: datadog-operator
source: operatorhubio-catalog
sourceNamespace: olm
config:
resources:
requests:
memory: "250Mi"
cpu: "250m"
limits:
memory: "250Mi"
cpu: "500m"
Créez un Secret Kubernetes qui contient vos clés d’API et d’application.
export DD_API_KEY=<YOUR_API_KEY>
export DD_APP_KEY=<YOUR_APP_KEY>
kubectl create secret generic datadog-operator-secret --from-literal api-key=$DD_API_KEY --from-literal app-key=$DD_APP_KEY
Ajoutez des références au Secret dans l’instance de ressource Subscription du Datadog Operator.
apiVersion: operators.coreos.com/v1alpha1
kind: Subscription
metadata:
name: my-datadog-operator
namespace: operators
spec:
channel: stable
name: datadog-operator
source: operatorhubio-catalog
sourceNamespace: olm
config:
env:
- name: DD_API_KEY
valueFrom:
secretKeyRef:
key: api-key
name: datadog-operator-secret
- name: DD_APP_KEY
valueFrom:
secretKeyRef:
key: app-key
name: datadog-operator-secret
Déployer la ressource personnalisée DatadogAgent gérée par l’opérateur
Après avoir déployé le Datadog Operator, créez la ressource DatadogAgent qui déclenche le déploiement de l’Agent Datadog, de l’Agent de cluster et des Cluster Checks Runners (s’ils sont utilisés) dans votre cluster Kubernetes. L’Agent Datadog est déployé en tant que DaemonSet, exécutant un pod sur chaque nœud de votre cluster.
Créez un Secret Kubernetes avec vos clés d’API et d’application.
export DD_API_KEY=<YOUR_API_KEY>
export DD_APP_KEY=<YOUR_APP_KEY>
kubectl create secret generic datadog-secret --from-literal api-key=<DATADOG_API_KEY> --from-literal app-key=<DATADOG_APP_KEY>
Créez un fichier avec les spécifications de votre configuration de déploiement DatadogAgent. La configuration la plus simple est la suivante :
apiVersion: datadoghq.com/v1alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
credentials:
apiSecret:
secretName: datadog-secret
keyName: api-key
appSecret:
secretName: datadog-secret
keyName: app-key
Déployez l’Agent Datadog avec le fichier de configuration ci-dessus :
kubectl apply -f /path/to/your/datadog-agent.yaml
Dans un cluster avec deux nœuds de travail, vous devriez voir les pods de l’Agent créés sur chaque nœud.
$ kubectl get daemonset
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
datadog-agent 2 2 2 2 2 <none> 5m30s
$ kubectl get pod -owide
NAME READY STATUS RESTARTS AGE IP NODE
agent-datadog-operator-d897fc9b-7wbsf 1/1 Running 0 1h 10.244.2.11 kind-worker
datadog-agent-k26tp 1/1 Running 0 5m59s 10.244.2.13 kind-worker
datadog-agent-zcxx7 1/1 Running 0 5m59s 10.244.1.7 kind-worker2
Tolérances
Mettez à jour votre fichier datadog-agent.yaml avec la configuration suivante pour ajouter des tolérances dans le Daemonset.spec.template de votre DaemonSet :
apiVersion: datadoghq.com/v1alpha1
kind: DatadogAgent
metadata:
name: datadog
spec:
credentials:
apiSecret:
secretName: datadog-secret
keyName: api-key
appSecret:
secretName: datadog-secret
keyName: app-key
agent:
config:
tolerations:
- operator: Exists
Appliquez cette nouvelle configuration :
$ kubectl apply -f datadog-agent.yaml
datadogagent.datadoghq.com/datadog updated
Validez la mise à jour du DaemonSet en consultant la nouvelle valeur de pod desired :
$ kubectl get daemonset
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
datadog-agent 3 3 3 3 3 <none> 7m31s
$ kubectl get pod
NAME READY STATUS RESTARTS AGE
agent-datadog-operator-d897fc9b-7wbsf 1/1 Running 0 15h
datadog-agent-5ctrq 1/1 Running 0 7m43s
datadog-agent-lkfqt 0/1 Running 0 15s
datadog-agent-zvdbw 1/1 Running 0 8m1s
Configuration
Pour obtenir une liste complète des options de configuration, consultez la section Spécification de configuration.
Installer le plugin kubectl
Consultez la documentation dédiée au plugin kubectl.
Utiliser une image personnalisée du Datadog Operator
Consultez la section Images de conteneur personnalisées pour l’opérateur pour obtenir des instructions sur la création d’une image de conteneur personnalisée du Datadog Operator basée sur une version officielle.
Images du Datadog Operator avec les charts Helm
Pour installer une image personnalisée du Datadog Operator à l’aide du chart Helm, exécutez la commande suivante :
helm install my-datadog-operator --set image.repository=<custom-image-repository> --set image.tag=<custom-image-tag> datadog/datadog-operator
Nettoyage
La commande suivante supprime toutes les ressources Kubernetes créées par le Datadog Operator et l’élément DatadogAgent datadog lié.
kubectl delete datadogagent datadog
Cette commande affiche datadogagent.datadoghq.com/datadog deleted.
Vous pouvez ensuite supprimer le Datadog Operator avec la commande helm delete :
helm delete my-datadog-operator