Kubernetes における Docker の廃止

Kubernetes は、バージョン 1.20 以降ランタイムとしての Docker を廃止します。また一部のクラウドプロバイダーは、画像において Docker を廃止しました。

Docker がすでに廃止されているバージョンの Kubernetes を実行している場合、Docker ソケットが存在しないか、Kubernetes により実行しているコンテナに関する情報がなく、Docker チェックが機能しません。Docker ランタイムに関する詳細は、kubernetes.io で確認できます。つまり、使用しているコンテナのランタイムに基づき containerd または CRI-O チェックを有効にする必要があります。新しいコンテナのランタイムから収集されたコンテナのメトリクスは、Docker メトリクスと置換されます。

Datadog Agent のバージョン 7.27 以降の場合は、実行している環境が自動的に Agent で検出されるため、コンフィギュレーションを変更する必要はありません。

Agent v7.26 以前を使用している場合、コンテナのランタイムソケットパスを指定する必要があります。

: メトリクス名が変更されるため(たとえば docker.* から containerd.* へ)、既存のモニター、ダッシュボード、および SLO を更新する必要がある場合があります。

Helm チャートで、コンテナのランタイムソケットへのパスを criSocketPath パラメーターで設定します。

例:

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

Docker ソケットへのすべての参照と、Docker ソケットのボリュームマウントを削除します。

環境変数 DD_CRI_SOCKET_PATH を使用して、コンテナのランタイムソケットパスにポイントします。専用コンテナを使用する場合は、すべての Agent コンテナに設定します。

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

ホストから 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