Obsolescence de Docker dans Kubernetes

Kubernetes a abandonné le runtime Docker depuis la version 1.20, et certains fournisseurs cloud en font de même dans leurs images.

Si vous utilisez une version de Kubernetes pour laquelle Docker est obsolète, le socket Docker n’est plus disponible, ou ne dispose pas d’informations à propos des conteneurs exécutés par Kubernetes, et le check Docker ne fonctionne plus. Consultez le site kubernetes.io pour en savoir plus sur le runtime Docker. Vous devez donc activer le check containerd ou CRI-O, en fonction du runtime que vous utilisez pour vos conteneurs. Les métriques relatives aux conteneurs qui sont recueillies à partir du nouveau runtime de conteneur remplacent les métriques Docker.

Depuis la version 7.27 de l’Agent Datadog, l’Agent détecte automatiquement l’environnement en cours d’exécution. Vous n’avez donc pas besoin de modifier la configuration.

Si vous utilisez une version de l’Agent antérieure à la 7.27, vous devez spécifier le chemin du socket du runtime de conteneur :

Remarque : vous devrez peut-être mettre à jour vos monitors, dashboards et SLO existants, en raison de la modification du nom des métriques. Par exemple, docker.* est remplacé par containerd.*.

Définssez le chemin du socket de votre runtime de conteneur avec le paramètre datadog.criSocketPath dans le chart Helm.

Par exemple :

criSocketPath:  /var/run/containerd/containerd.sock

Supprimez les références au socket Docker, ainsi que les montages de volume du socket Docker.

Utilisez la variable d’environnement DD_CRI_SOCKET_PATH pour pointer vers le chemin du socket de votre runtime de conteneur. Définissez cette variable pour tous les conteneurs d’Agent si vous utilisez des conteneurs distincts :

env:
  - name: DD_CRI_SOCKET_PATH
    value: /var/run/containerd/containerd.sock

Montez le socket depuis votre host vers le conteneur de l’Agent :

volumeMounts:
  - name: containerdsocket
    mountPath: /var/run/containerd/containerd.sock
  - mountPath: /host/var/run
    name: var-run
    readOnly: true
volumes:
  - hostPath:
      path: /var/run/containerd/containerd.sock
    name: containerdsocket
  - hostPath:
      path: /var/run
    name: var-run