Datadog Operator アドオンによる Amazon EKS への Datadog Agent のインストール

v0.1.9 以降、Datadog Operator アドオンは Fargate インスタンス上にスケジュールされた Pod への Agent サイドカー自動挿入をサポートしています。詳細はこちらのガイドを参照してください。

Amazon EKS クラスターに Datadog Agent をインストールするには、Datadog OperatorAmazon EKS アドオンとして導入し、DatadogAgent マニフェストを適用します。

Operator アドオンでインストールした Agent は、EC2 上で動作している Pod からのみデータを収集します。AWS Fargate 上で動作する Pod については Amazon EKS on AWS Fargate のドキュメントを参照してください。

通常の Helm インストールと比較して、アドオンとしてインストールする場合には次のような違いがあります。

  • Operator のインストール時、イメージは EKS リポジトリからのみ取得されます。ユーザーが変更することはできません。
  • 上書き可能な Operator Helm Chart の値は、スキーマ ファイル に定義された項目に制限されます。

これらの制限は、Operator を EKS アドオン ポリシーに準拠させ、EKS がインストールの安全性を確保し、アドオン環境で未サポートの機能を無効化するために必要です。

前提条件

  • Datadog Operator 製品のサブスクリプション
  • kubectl がインストールされていること
  • コマンドラインでアドオンを設定する場合は、AWS CLI がインストールされていること

Operator のインストール

  • AWS コンソールで対象の EKS クラスターに移動します。
  • Add-ons タブで Get more add-ons を選択します。
  • Datadog Operator を検索して選択し、画面の指示に従ってインストールを完了します。

Operator アドオンをインストールするには、次のコマンドを実行します:

aws eks create-addon --addon-name datadog_operator --region <AWS_REGION> --cluster-name <CLUSTER_NAME>

インストールは非同期で行われます。状態を確認するには、次のコマンドを実行します:

aws eks describe-addon --addon-name datadog_operator --region <AWS_REGION> --cluster-name <CLUSTER_NAME>

インストールが成功したかどうかは、AWS Management Console、eksctl、または AWS CLI を使用して datadog-operator Pod が稼働していることを確認してください。

Agent の設定

Operator アドオンをインストールしたら、Datadog Agent のセットアップを行います。

DatadogAgent カスタム リソースを使用して Agent を設定します。

  1. デフォルトで datadog-agent となる Operator のインストール ネームスペースに切り替えます。

    kubectl config set-context --current --namespace=datadog-agent
    
  2. Datadog API キーとアプリケーションキーを含む Kubernetes Secret を作成します。

    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. DatadogAgent デプロイ設定の内容で datadog-agent.yaml を作成します。Datadog Operator はデフォルトで公開レジストリから Agent および Cluster Agent イメージを取得します。

    プライベート EKS レジストリからイメージを取得したい場合は、global.registry を追加します。以下の構成では、メトリクス、ログ、および APM を有効にします。

    apiVersion: datadoghq.com/v2alpha1
    kind: DatadogAgent
    metadata:
      name: datadog
    spec:
      global:
        # Required in case the Agent cannot resolve the cluster name through IMDS. See the note below.
        clusterName: <CLUSTER_NAME>
        registry: <PRIVATE_EKS_REGISTRY_PATH>
        credentials:
          apiSecret:
            secretName: datadog-secret
            keyName: api-key
          appSecret:
            secretName: datadog-secret
            keyName: app-key
      features:
        apm:
          enabled: true
        logCollection:
          enabled: true
    

    この例では、Datadog Operator EKS アドオンと同じ AWS Marketplace ホストの ECR リポジトリから Agent イメージを取得します。別のレジストリを使用する場合は ‘global.registry’ の値を変更してください。

    すべての設定オプションについては Operator の設定仕様を参照してください。

    : ノードで IMDS v1 へのアクセスがブロックされている場合、Agent はクラスター名を解決できず、Orchestrator Explorer など一部機能が動作しません。そのため、DatadogAgent マニフェストに spec.global.ClusterName を追加することを推奨します。IMDS v2 を使用してメタデータを取得する設定方法はこちらのコメントを参照してください。

  4. Datadog Agent をデプロイします。

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

Operator のアンインストール

Agent と Operator をアンインストールするには、まず DatadogAgent カスタム リソースを削除します:

kubectl delete datadogagents.datadoghq.com datadog

すべての Agent リソースが削除されたことを確認したうえで、アドオンのアンインストールを実行します。

  • AWS コンソールで対象の EKS クラスターに移動します。
  • Add-ons タブで Datadog Operator アドオンを選択します。
  • Remove をクリックし、確認ダイアログで確定します。

アドオンを削除するには、次のコマンドを実行します:

aws eks delete-addon --addon-name datadog_operator --region <AWS_REGION> --cluster-name <CLUSTER_NAME>

: DatadogAgent カスタムリソースを削除する前に Operator アドオンをアンインストールした場合、Agent はクラスター上で動作し続けます。Operator が存在しないため DatadogAgent をファイナライズできず、ネームスペースの削除に失敗します。回避策については Github の issue を参照してください。

お役に立つドキュメント、リンクや記事:

PREVIEWING: guacbot/translation-pipeline