|
| 1 | +--- |
| 2 | +dependencies: |
| 3 | +- https://github.com/DataDog/datadog-operator/blob/main/docs/installation.md |
| 4 | +title: Installation du Datadog Operator |
| 5 | +--- |
| 6 | +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][10]. |
| 7 | + |
| 8 | +## Prérequis |
| 9 | + |
| 10 | +- **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. |
| 11 | +- **[Helm][1]** pour le déploiement du Datadog Operator |
| 12 | +- **[`kubectl` CLI][2]** pour l'installation de l'Agent Datadog |
| 13 | + |
| 14 | + |
| 15 | +## Installer le Datadog Operator avec Helm |
| 16 | + |
| 17 | +Vous pouvez déployer le Datadog Operator dans votre cluster à l'aide du [chart Helm Datadog Operator][3] : |
| 18 | + |
| 19 | +```shell |
| 20 | +helm repo add datadog https://helm.datadoghq.com |
| 21 | +helm install my-datadog-operator datadog/datadog-operator |
| 22 | +``` |
| 23 | + |
| 24 | +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. |
| 25 | + |
| 26 | +Par exemple : |
| 27 | + |
| 28 | +```yaml |
| 29 | +image: |
| 30 | + tag: 1.2.0 |
| 31 | +clusterName: my-cluster |
| 32 | +datadogMonitor: |
| 33 | + enabled: true |
| 34 | +``` |
| 35 | +
|
| 36 | +Ensuite, pour mettre à jour la version de Helm, exécutez : |
| 37 | +
|
| 38 | +```shell |
| 39 | +helm upgrade my-datadog-operator datadog/datadog-operator -f values.yaml |
| 40 | +``` |
| 41 | + |
| 42 | +### Ajouter des informations d'identification |
| 43 | + |
| 44 | +1. Créez un Secret Kubernetes qui contient vos clés d'API et d'application. |
| 45 | + |
| 46 | + ``` |
| 47 | + export DD_API_KEY=<YOUR_API_KEY> |
| 48 | + export DD_APP_KEY=<YOUR_APP_KEY> |
| 49 | +
|
| 50 | + kubectl create secret generic datadog-operator-secret --from-literal api-key=$DD_API_KEY --from-literal app-key=$DD_APP_KEY |
| 51 | + ``` |
| 52 | + |
| 53 | +2. Faites référence à ce Secret dans votre fichier `values.yaml`. |
| 54 | + |
| 55 | + ```yaml |
| 56 | + apiKeyExistingSecret: datadog-operator-secret |
| 57 | + appKeyExistingSecret: datadog-operator-secret |
| 58 | + image: |
| 59 | + tag: 1.2.0 |
| 60 | + datadogMonitor: |
| 61 | + enabled: true |
| 62 | + ``` |
| 63 | +
|
| 64 | +3. Mettez à jour la version de Helm. |
| 65 | +
|
| 66 | + ```shell |
| 67 | + helm upgrade my-datadog-operator datadog/datadog-operator -f values.yaml |
| 68 | + ``` |
| 69 | + |
| 70 | +### Configurer le nom de cluster (facultatif) |
| 71 | + |
| 72 | +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 : |
| 73 | + |
| 74 | +- **Valeur `clusterName` du chart Helm** (définit la variable d'environnement `DD_CLUSTER_NAME` sur l'opérateur) : |
| 75 | + ```yaml |
| 76 | + clusterName: my-cluster |
| 77 | + ``` |
| 78 | +
|
| 79 | +- **CRD DatadogAgent `spec.global.clusterName`** : |
| 80 | + ```yaml |
| 81 | + apiVersion: datadoghq.com/v2alpha1 |
| 82 | + kind: DatadogAgent |
| 83 | + metadata: |
| 84 | + name: datadog |
| 85 | + spec: |
| 86 | + global: |
| 87 | + clusterName: my-cluster |
| 88 | + ``` |
| 89 | + |
| 90 | +## Installer le Datadog Operator avec Operator Lifecycle Manager |
| 91 | + |
| 92 | +Les instructions pour le déploiement du Datadog Operator avec [Operator Lifecycle Manager][4] (OLM) sont disponibles sur [operatorhub.io][5]. |
| 93 | + |
| 94 | +### Remplacer la configuration par défaut de l'opérateur avec OLM |
| 95 | + |
| 96 | +Le framework [Operator Lifecycle Manager][4] permet de remplacer la configuration par défaut de l'opérateur. Consultez la section [Configuration de l'abonnement][6] pour obtenir une liste des paramètres de configuration d'installation pris en charge. |
| 97 | + |
| 98 | +Par exemple, l'élément `Subscription` [Operator Lifecycle Manager][4] suivant modifie les ressources de Pod de l'opérateur Datadog : |
| 99 | + |
| 100 | +```yaml |
| 101 | +apiVersion: operators.coreos.com/v1alpha1 |
| 102 | +kind: Subscription |
| 103 | +metadata: |
| 104 | + name: my-datadog-operator |
| 105 | + namespace: operators |
| 106 | +spec: |
| 107 | + channel: stable |
| 108 | + name: datadog-operator |
| 109 | + source: operatorhubio-catalog |
| 110 | + sourceNamespace: olm |
| 111 | + config: |
| 112 | + resources: |
| 113 | + requests: |
| 114 | + memory: "250Mi" |
| 115 | + cpu: "250m" |
| 116 | + limits: |
| 117 | + memory: "250Mi" |
| 118 | + cpu: "500m" |
| 119 | +``` |
| 120 | + |
| 121 | +### Ajouter des informations d'identification |
| 122 | + |
| 123 | +1. Créez un Secret Kubernetes qui contient vos clés d'API et d'application. |
| 124 | + |
| 125 | + ``` |
| 126 | + export DD_API_KEY=<YOUR_API_KEY> |
| 127 | + export DD_APP_KEY=<YOUR_APP_KEY> |
| 128 | + |
| 129 | + kubectl create secret generic datadog-operator-secret --from-literal api-key=$DD_API_KEY --from-literal app-key=$DD_APP_KEY |
| 130 | + ``` |
| 131 | +
|
| 132 | +2. Ajoutez des références au Secret dans l'instance de ressource `Subscription` du Datadog Operator. |
| 133 | +
|
| 134 | + ```yaml |
| 135 | + apiVersion: operators.coreos.com/v1alpha1 |
| 136 | + kind: Subscription |
| 137 | + metadata: |
| 138 | + name: my-datadog-operator |
| 139 | + namespace: operators |
| 140 | + spec: |
| 141 | + channel: stable |
| 142 | + name: datadog-operator |
| 143 | + source: operatorhubio-catalog |
| 144 | + sourceNamespace: olm |
| 145 | + config: |
| 146 | + env: |
| 147 | + - name: DD_API_KEY |
| 148 | + valueFrom: |
| 149 | + secretKeyRef: |
| 150 | + key: api-key |
| 151 | + name: datadog-operator-secret |
| 152 | + - name: DD_APP_KEY |
| 153 | + valueFrom: |
| 154 | + secretKeyRef: |
| 155 | + key: app-key |
| 156 | + name: datadog-operator-secret |
| 157 | + ``` |
| 158 | + |
| 159 | + |
| 160 | +## Déployer la ressource personnalisée DatadogAgent gérée par l'opérateur |
| 161 | + |
| 162 | +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. |
| 163 | + |
| 164 | +1. Créez un Secret Kubernetes avec vos clés d'API et d'application. |
| 165 | + |
| 166 | + ``` |
| 167 | + export DD_API_KEY=<YOUR_API_KEY> |
| 168 | + export DD_APP_KEY=<YOUR_APP_KEY> |
| 169 | +
|
| 170 | + kubectl create secret generic datadog-secret --from-literal api-key=<DATADOG_API_KEY> --from-literal app-key=<DATADOG_APP_KEY> |
| 171 | + ``` |
| 172 | + |
| 173 | +1. Créez un fichier avec les spécifications de votre configuration de déploiement `DatadogAgent`. La configuration la plus simple est la suivante : |
| 174 | + |
| 175 | + ```yaml |
| 176 | + apiVersion: datadoghq.com/v1alpha1 |
| 177 | + kind: DatadogAgent |
| 178 | + metadata: |
| 179 | + name: datadog |
| 180 | + spec: |
| 181 | + credentials: |
| 182 | + apiSecret: |
| 183 | + secretName: datadog-secret |
| 184 | + keyName: api-key |
| 185 | + appSecret: |
| 186 | + secretName: datadog-secret |
| 187 | + keyName: app-key |
| 188 | + ``` |
| 189 | +
|
| 190 | +1. Déployez l'Agent Datadog avec le fichier de configuration ci-dessus : |
| 191 | + ```shell |
| 192 | + kubectl apply -f /path/to/your/datadog-agent.yaml |
| 193 | + ``` |
| 194 | + |
| 195 | +Dans un cluster avec deux nœuds de travail, vous devriez voir les pods de l'Agent créés sur chaque nœud. |
| 196 | + |
| 197 | +```console |
| 198 | +$ kubectl get daemonset |
| 199 | +NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE |
| 200 | +datadog-agent 2 2 2 2 2 <none> 5m30s |
| 201 | + |
| 202 | +$ kubectl get pod -owide |
| 203 | +NAME READY STATUS RESTARTS AGE IP NODE |
| 204 | +agent-datadog-operator-d897fc9b-7wbsf 1/1 Running 0 1h 10.244.2.11 kind-worker |
| 205 | +datadog-agent-k26tp 1/1 Running 0 5m59s 10.244.2.13 kind-worker |
| 206 | +datadog-agent-zcxx7 1/1 Running 0 5m59s 10.244.1.7 kind-worker2 |
| 207 | +``` |
| 208 | + |
| 209 | +### Tolérances |
| 210 | + |
| 211 | +Mettez à jour votre [fichier `datadog-agent.yaml`][8] avec la configuration suivante pour ajouter des tolérances dans le `Daemonset.spec.template` de votre DaemonSet : |
| 212 | + |
| 213 | + ```yaml |
| 214 | + apiVersion: datadoghq.com/v1alpha1 |
| 215 | + kind: DatadogAgent |
| 216 | + metadata: |
| 217 | + name: datadog |
| 218 | + spec: |
| 219 | + credentials: |
| 220 | + apiSecret: |
| 221 | + secretName: datadog-secret |
| 222 | + keyName: api-key |
| 223 | + appSecret: |
| 224 | + secretName: datadog-secret |
| 225 | + keyName: app-key |
| 226 | + agent: |
| 227 | + config: |
| 228 | + tolerations: |
| 229 | + - operator: Exists |
| 230 | + ``` |
| 231 | +
|
| 232 | +Appliquez cette nouvelle configuration : |
| 233 | +
|
| 234 | +```console |
| 235 | +$ kubectl apply -f datadog-agent.yaml |
| 236 | +datadogagent.datadoghq.com/datadog updated |
| 237 | +``` |
| 238 | + |
| 239 | +Validez la mise à jour du DaemonSet en consultant la nouvelle valeur de pod `desired` : |
| 240 | + |
| 241 | +```console |
| 242 | +$ kubectl get daemonset |
| 243 | +NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE |
| 244 | +datadog-agent 3 3 3 3 3 <none> 7m31s |
| 245 | + |
| 246 | +$ kubectl get pod |
| 247 | +NAME READY STATUS RESTARTS AGE |
| 248 | +agent-datadog-operator-d897fc9b-7wbsf 1/1 Running 0 15h |
| 249 | +datadog-agent-5ctrq 1/1 Running 0 7m43s |
| 250 | +datadog-agent-lkfqt 0/1 Running 0 15s |
| 251 | +datadog-agent-zvdbw 1/1 Running 0 8m1s |
| 252 | +``` |
| 253 | + |
| 254 | +## Configuration |
| 255 | + |
| 256 | +Pour obtenir une liste complète des options de configuration, consultez la section [Spécification de configuration][12]. |
| 257 | + |
| 258 | +## Installer le plugin kubectl |
| 259 | + |
| 260 | +Consultez la [documentation dédiée au plugin `kubectl`][11]. |
| 261 | + |
| 262 | +## Utiliser une image personnalisée du Datadog Operator |
| 263 | + |
| 264 | +Consultez la section [Images de conteneur personnalisées pour l'opérateur][9] pour obtenir des instructions sur la création d'une image de conteneur personnalisée du Datadog Operator basée sur une version officielle. |
| 265 | + |
| 266 | +### Images du Datadog Operator avec les charts Helm |
| 267 | + |
| 268 | +Pour installer une image personnalisée du Datadog Operator à l'aide du chart Helm, exécutez la commande suivante : |
| 269 | + |
| 270 | +```shell |
| 271 | +helm install my-datadog-operator --set image.repository=<custom-image-repository> --set image.tag=<custom-image-tag> datadog/datadog-operator |
| 272 | +``` |
| 273 | + |
| 274 | +## Nettoyage |
| 275 | + |
| 276 | +La commande suivante supprime toutes les ressources Kubernetes créées par le Datadog Operator et l'élément `DatadogAgent` `datadog` lié. |
| 277 | + |
| 278 | +```shell |
| 279 | +kubectl delete datadogagent datadog |
| 280 | +``` |
| 281 | + |
| 282 | +Cette commande affiche `datadogagent.datadoghq.com/datadog deleted`. |
| 283 | + |
| 284 | +Vous pouvez ensuite supprimer le Datadog Operator avec la commande `helm delete` : |
| 285 | + |
| 286 | +```shell |
| 287 | +helm delete my-datadog-operator |
| 288 | +``` |
| 289 | + |
| 290 | +[1]: https://helm.sh |
| 291 | +[2]: https://kubernetes.io/docs/tasks/tools/install-kubectl/ |
| 292 | +[3]: https://artifacthub.io/packages/helm/datadog/datadog-operator |
| 293 | +[4]: https://olm.operatorframework.io/ |
| 294 | +[5]: https://operatorhub.io/operator/datadog-operator |
| 295 | +[6]: https://github.com/operator-framework/operator-lifecycle-manager/blob/master/doc/design/subscription-config.md |
| 296 | +[7]: https://app.datadoghq.com/account/settings#api |
| 297 | +[8]: https://github.com/DataDog/datadog-operator/blob/main/examples/datadogagent/datadog-agent-with-tolerations.yaml |
| 298 | +[9]: https://github.com/DataDog/datadog-operator/blob/main/docs/custom-operator-image.md |
| 299 | +[10]: https://docs.datadoghq.com/fr/containers/kubernetes/installation |
| 300 | +[11]: https://github.com/DataDog/datadog-operator/blob/main/docs/kubectl-plugin.md |
| 301 | +[12]: https://github.com/DataDog/datadog-operator/blob/main/docs/configuration.v2alpha1.md |
0 commit comments