Kubernetes に Datadog Agent をインストールする

概要

このページでは、Kubernetes 環境に Datadog Agent をインストールする手順を説明します。デフォルトでは、Datadog Agent は DaemonSet で実行されます。

AWS Elastic Kubernetes Service (EKS)、Azure Kubernetes Service (AKS)、Google Kubernetes Engine (GKE)、Red Hat OpenShift、Rancher、Oracle Container Engine for Kubernetes (OKE) など主要な Kubernetes ディストリビューションの専用ドキュメントやサンプルは Kubernetes ディストリビューションに掲載されています。

Kubernetes のコントロールプレーンを監視するための専用のドキュメントと例については、Kubernetes のコントロールプレーン監視を参照してください。

Kubernetes と Datadog Agent の最小バージョン

Kubernetes の後期バージョンに関連する一部の機能では、Datadog Agent の最低バージョンが必要です。

Kubernetes バージョンAgent バージョン理由
1.16.0+7.19.0+Kubelet メトリクスの非推奨化
1.21.0+7.36.0+Kubernetes リソースの非推奨化
1.22.0+7.37.0+ダイナミックサービスアカウントトークンをサポート

こちらもご覧ください: Kubernetes と Cluster Agent の最小バージョン

インストール

Kubernetes に Datadog Agent をインストールするには、以下のオプションがあります。

Datadog Operator は 1.0.0 バージョンで一般公開されており、DatadogAgent Custom Resource のバージョン v2alpha1 と照合しています。

Datadog Operator は Kubernetes や OpenShift にDatadog Agent をデプロイする方法です。カスタムリソースステータスでデプロイ状況、健全性、エラーを報告し、高度なコンフィギュレーションオプションでコンフィギュレーションミスのリスクを抑えます。

前提条件

Datadog Operator を使用するには、次の前提条件が必要です。

  • Kubernetes Cluster バージョン v1.20.X+: テストは v1.20.0+ で行われました。v1.11.0+ でサポートされるはずです。それ以前のバージョンでは、CRD のサポートが制限されているため、Operator は期待どおりに動作しない可能性があります。
  • datadog-operator をデプロイするための Helm
  • datadog-agent をインストールするための Kubectl CLI

Operator を使用して Agent をデプロイする

  1. Datadog Operator をインストールします:

    helm repo add datadog https://helm.datadoghq.com
    helm install my-datadog-operator datadog/datadog-operator
    
  2. お使いの API とアプリキーで Kubernetes シークレットを作成します

    kubectl create secret generic datadog-secret --from-literal api-key=<DATADOG_API_KEY> --from-literal app-key=<DATADOG_APP_KEY>
    

    <DATADOG_API_KEY><DATADOG_APP_KEY>Datadog APIアプリケーションキーに置き換えます。

  3. Datadog Agent のデプロイコンフィギュレーションを使用してファイル datadog-agent.yaml を作成します。最も単純なコンフィギュレーションは次のとおりです。

    kind: DatadogAgent
    apiVersion: datadoghq.com/v2alpha1
    metadata:
      name: datadog
    spec:
      global:
        site: <DATADOG_SITE>
        credentials:
          apiSecret:
            secretName: datadog-secret
            keyName: api-key
          appSecret:
            secretName: datadog-secret
            keyName: app-key
      override:
        clusterAgent:
          image:
            name: gcr.io/datadoghq/cluster-agent:latest
        nodeAgent:
          image:
            name: gcr.io/datadoghq/agent:latest
    

    <DATADOG_SITE>Datadog サイトに置き換えます。サイトは です。(右側で正しい SITE が選択されていることを確認してください)。

  4. 上記のコンフィギュレーションファイルを使用して Datadog Agent をデプロイします。

    kubectl apply -f /path/to/your/datadog-agent.yaml
    

前提条件

  • Helm
  • これが新規インストールの場合は、Helm の Datadog リポジトリを追加します。
    helm repo add datadog https://helm.datadoghq.com
    helm repo update
    

チャートのインストール

  1. 空の datadog-values.yaml ファイルを作成します。このファイルで指定されていないパラメーターは、values.yaml で設定されたものがデフォルトとなります。

  2. Datadog の API キーアプリキーを保存する Kubernetes Secret を作成します。

    kubectl create secret generic datadog-secret --from-literal api-key=$DD_API_KEY --from-literal app-key=$DD_APP_KEY
    
  3. datadog-values.yaml に以下のパラメーターを設定し、シークレットを参照します。

    datadog:
     apiKeyExistingSecret: datadog-secret
     appKeyExistingSecret: datadog-secret
     site: <DATADOG_SITE>
    

    <DATADOG_SITE>Datadog サイトに置き換えます。サイトは です。(右側で正しい SITE が選択されていることを確認してください)。

  4. 次のコマンドを実行します。

    helm install <RELEASE_NAME> \
     -f datadog-values.yaml \
     --set targetSystem=<TARGET_SYSTEM> \
     datadog/datadog
    
  • <RELEASE_NAME>: リリース名。例えば datadog-agent

  • <TARGET_SYSTEM>: OS の名前。例えば linuxwindows など。

: Helm < v3 を使用している場合は、以下を実行してください。

helm install --name <RELEASE_NAME> \
 -f datadog-values.yaml \
 --set targetSystem=<TARGET_SYSTEM> \
 datadog/datadog

クリーンアップ

次のコマンドは、上記の手順で作成されたすべての Kubernetes リソースを削除します。

kubectl delete datadogagent datadog
helm delete my-datadog-operator

許容範囲の使用に関する情報を含む、Datadog Operator の設定の詳細については、Datadog Operator の高度な設定ガイドを参照してください。

<RELEASE_NAME> のデプロイをアンインストール/削除します。

helm uninstall <RELEASE_NAME>

非特権

(オプション) 非特権のインストールを実行するには、以下の手順に従います。

datadog-agent.yaml の Datadog カスタムリソース (CR) に以下を追加します。

agent:
  config:
    securityContext:
      runAsUser: <USER_ID>
      supplementalGroups:
        - <DOCKER_GROUP_ID>

datadog-values.yaml ファイルに以下を追加します。

datadog:
  securityContext:
      runAsUser: <USER_ID>
      supplementalGroups:
        - <DOCKER_GROUP_ID>
  • <USER_ID> は Agent を実行する UID です。
  • <DOCKER_GROUP_ID> は Docker または containerd ソケットを所有するグループ ID です。

コンテナレジストリ

コンテナイメージのレジストリを変更する場合は、コンテナレジストリの変更のガイドを参照してください。

2023 年 7 月 10 日、Docker Hub は Datadog の Docker Hub レジストリへのダウンロードレート制限を実施するようになります。これらのレジストリからのイメージのプルは、レート制限割り当てにカウントされます。

Datadog は、Datadog Agent と Cluster Agent の構成を更新して、レート制限が適用されない他のレジストリからプルすることを推奨しています。手順については、コンテナレジストリを変更するを参照してください。

現在のデプロイリージョンで Google Container Registry (gcr.io/datadoghq) にアクセスが不可能な場合は、values.yaml ファイルで下記のコンフィギュレーションで別のレジストリを使用します。

  • 公開 AWS ECR レジストリ (public.ecr.aws/datadog) の場合、以下を使います。

    registry: public.ecr.aws/datadog
    
  • Docker Hub レジストリ (docker.io/datadog) の場合、以下を使います。

    registry: docker.io/datadog
    

:

  • AWS 環境に Datadog チャートを導入する場合、公開 AWS ECR レジストリ (public.ecr.aws/datadog) を使用することが推奨されます。

次のステップ

その他の参考資料