EKS fargate
セキュリティモニタリングが使用可能です セキュリティモニタリングが使用可能です

EKS fargate

Agent Check Agentチェック

Supported OS: Linux Mac OS Windows

概要

AWS Fargate 上にデプロイされている Amazon EKS は、マネージド型の Kubernetes サービスで、標準の Kubernetes 環境で展開とメンテナンスの特定の側面を自動化します。Kubernetes ノードは AWS Fargate によって管理され、ユーザーから分離されるように抽象化されています。

セットアップ

以下の手順では、AWS Fargate 上にデプロイされている Amazon EKS 内にあるコンテナで Datadog Agent v7.17 以上をセットアップする方法を説明します。AWS Fargate を使用していない場合は、Datadog-Amazon EKS インテグレーションドキュメントを参照してください。

AWS Fargate ポッドは物理的なポッドではありません。つまり、CPU、メモリなどのホストベースのシステムチェックを除外します。AWS Fargate ポッドからデータを収集するには、次の機能を有効にするカスタム RBAC を使用して、Agent をアプリケーションポッドのサイドカーとして実行してください。

  • アプリケーションコンテナと Agent を実行しているポッドからの Kubernetes メトリクス収集
  • オートディスカバリー
  • 同じポッド内のコンテナをターゲットにするようにカスタム Agent チェックを構成
  • 同じポッド内のコンテナをターゲットにする APM と DogStatsD

EC2 ノード

AWS Fargate プロファイルでポッドを fargate 上で実行するように指定しない場合、ポッドは従来の EC2 マシンを使用できます。その場合は、Datadog-Amazon EKS インテグレーションセットアップを参照して、インテグレーションからデータを収集してください。これを機能させるには、Agent を EC2 型のワークロードとして実行します。Agent のセットアップは、Kuberenetes エージェントのセットアップと同じで、すべてのオプションが利用可能です。EC2 ノード上に Agent をデプロイするには、Datadog Agent の DaemonSet セットアップを使用します。

インストール

AWS EKS Fargate で可観測性が最も高いカバレッジ監視ワークロードを実現するには、次の Datadog インテグレーションをインストールします。

また、EKS を使用して実行している他の AWS サービス(ELBなど)のインテグレーションをセットアップします。

手動インストール

インストールするには、カスタム Agent イメージ datadog/agent (バージョン 7.17 以降) をダウンロードします。

Agent がサイドカーとして実行されている場合、同じポッド上のコンテナとのみ通信できます。監視するすべてのポッドに対して Agent を実行します。

コンフィギュレーション

Fargate ノード上の AWS EKS Fargate で実行しているアプリケーションからデータを収集するには、次のセットアップ手順に従います。

Datadog Live Container View に EKS Fargate コンテナを表示するには、ポッド仕様で shareProcessNamespace を有効にします。プロセス収集を参照してください。

AWS EKS Fargate RBAC

AWS EKS Fargate で Agent をサイドカーとしてデプロイする場合は、次の Agent RBACを使用します。

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: datadog-agent
rules:
  - apiGroups:
      - ""
    resources:
      - nodes/metrics
      - nodes/spec
      - nodes/stats
      - nodes/proxy
      - nodes/pods
      - nodes/healthz
    verbs:
      - get
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: datadog-agent
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: datadog-agent
subjects:
  - kind: ServiceAccount
    name: datadog-agent
    namespace: default
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: datadog-agent
  namespace: default

Agent をサイドカーとして実行します

Fargate 型のポッドからデータの収集を開始するには、Datadog Agent v7.17 以上をアプリケーションのサイドカーとしてデプロイします。これは、ポッドで実行されているアプリケーションからマトリクスを収集するために必要な最小コンフィギュレーションです。Datadog Agent のサイドカーをデプロイするため、マニフェストに DD_EKS_FARGATE=true が追加されていることに注意してください。

apiVersion: apps/v1
kind: Deployment
metadata:
 name: "<アプリケーション名>"
 namespace: default
spec:
 replicas: 1
 template:
   metadata:
     labels:
       app: "<アプリケーション名>"
     name: "<ポッド名>"
   spec:
     serviceAccountName: datadog-agent
     containers:
     - name: "<アプリケーション名>"
       image: "<アプリケーションイメージ>"
     ## Agent をサイドカーとして実行
     - image: datadog/agent
       name: datadog-agent
       env:
       - name: DD_API_KEY
         value: "<DATADOG_API_キー>"
         ## DD_SITE を "datadoghq.eu" に設定して
         ## Agent データを Datadog EU サイトに送信
       - name: DD_SITE
         value: "datadoghq.com"
       - name: DD_EKS_FARGATE
         value: "true"
       - name: DD_KUBERNETES_KUBELET_NODENAME
         valueFrom:
           fieldRef:
             apiVersion: v1
             fieldPath: spec.nodeName
      resources:
          requests:
            memory: "256Mi"
            cpu: "200m"
          limits:
            memory: "256Mi"
            cpu: "200m"

: <DATADOG_API_キー>組織の Datadog API キーに置き換えることを忘れないでください。

メトリクスの収集

インテグレーションのメトリクス

アプリケーションコンテナでオートディスカバリーラベルを使用して、サポートされている Agent インテグレーションのメトリクス収集を開始します。

apiVersion: apps/v1
kind: Deployment
metadata:
 name: "<アプリケーション名>"
 namespace: default
spec:
 replicas: 1
 template:
   metadata:
     labels:
       app: "<アプリケーション名>"
     name: "<ポッド名>"
     annotations:
      ad.datadoghq.com/<CONTAINER_NAME>.check_names: '[<チェック名>]'
      ad.datadoghq.com/<CONTAINER_IDENTIFIER>.init_configs: '[<INIT_コンフィグ>]'
      ad.datadoghq.com/<CONTAINER_IDENTIFIER>.instances: '[<インスタンス_コンフィグ>]'
   spec:
     serviceAccountName: datadog-agent
     containers:
     - name: "<アプリケーション名>"
       image: "<アプリケーションイメージ>"
     ## Agent をサイドカーとして実行
     - image: datadog/agent
       name: datadog-agent
       env:
       - name: DD_API_KEY
         value: "<DATADOG_API_キー>"
         ## DD_SITE を "datadoghq.eu" に設定して
         ## Agent データを Datadog EU サイトに送信
       - name: DD_SITE
         value: "datadoghq.com"
       - name: DD_EKS_FARGATE
         value: "true"
       - name: DD_KUBERNETES_KUBELET_NODENAME
         valueFrom:
           fieldRef:
             apiVersion: v1
             fieldPath: spec.nodeName
      resources:
          requests:
            memory: "256Mi"
            cpu: "200m"
          limits:
            memory: "256Mi"
            cpu: "200m"

:

  • <DATADOG_API_キー>組織の Datadog API キーに置き換えることを忘れないでください。
  • ホストからの cgroups ボリュームを Agent にマウントできないため、Fargate ではコンテナメトリクスを使用できません。

DogStatsD

アプリケーションコンテナから DogStatsD メトリクスを Datadog に転送するように、Agent コンテナのコンテナポート 8125 を設定します。

apiVersion: apps/v1
kind: Deployment
metadata:
 name: "<アプリケーション名>"
 namespace: default
spec:
 replicas: 1
 template:
   metadata:
     labels:
       app: "<アプリケーション名>"
     name: "<ポッド名>"
   spec:
     serviceAccountName: datadog-agent
     containers:
     - name: "<アプリケーション名>"
       image: "<アプリケーションイメージ>"
     ## Agent をサイドカーとして実行
     - image: datadog/agent
       name: datadog-agent
       ## DogStatsD メトリクスの収集にポート 8125 を有効化
       ports:
        - containerPort: 8125
          name: dogstatsdport
          protocol: UDP
       env:
       - name: DD_API_KEY
         value: "<DATADOG_API_キー>"
         ## DD_SITE を "datadoghq.eu" に設定して
         ## Agent データを Datadog EU サイトに送信
       - name: DD_SITE
         value: "datadoghq.com"
       - name: DD_EKS_FARGATE
         value: "true"
       - name: DD_KUBERNETES_KUBELET_NODENAME
         valueFrom:
           fieldRef:
             apiVersion: v1
             fieldPath: spec.nodeName
      resources:
          requests:
            memory: "256Mi"
            cpu: "200m"
          limits:
            memory: "256Mi"
            cpu: "200m"

: <DATADOG_API_キー>組織の Datadog API キーに置き換えることを忘れないでください。

トレース収集

アプリケーションコンテナからトレースを収集するように、Agent コンテナのコンテナポート 8126 を設定します。詳細はトレースの設定方法を参照

apiVersion: apps/v1
kind: Deployment
metadata:
 name: "<アプリケーション名>"
 namespace: default
spec:
 replicas: 1
 template:
   metadata:
     labels:
       app: "<アプリケーション名>"
     name: "<ポッド名>"
   spec:
     serviceAccountName: datadog-agent
     containers:
     - name: "<アプリケーション名>"
       image: "<アプリケーションイメージ>"
     ## Agent をサイドカーとして実行
     - image: datadog/agent
       name: datadog-agent
       ## トレースの収集にポート 8126 を有効化
       ports:
        - containerPort: 8126
          name: traceport
          protocol: TCP
       env:
       - name: DD_API_KEY
         value: "<DATADOG_API_キー>"
         ## DD_SITE を "datadoghq.eu" に設定して
         ## Agent データを Datadog EU サイトに送信
       - name: DD_SITE
         value: "datadoghq.com"
       - name: DD_EKS_FARGATE
         value: "true"
       - name: DD_APM_ENABLED
         value: "true"
       - name: DD_KUBERNETES_KUBELET_NODENAME
         valueFrom:
           fieldRef:
             apiVersion: v1
             fieldPath: spec.nodeName
      resources:
          requests:
            memory: "256Mi"
            cpu: "200m"
          limits:
            memory: "256Mi"
            cpu: "200m"

: <DATADOG_API_キー>組織の Datadog API キーに置き換えることを忘れないでください。

イベント収集

AWS EKS Fargate API サーバーからイベントを収集するには、Kubernetes クラスター内の AWS EKS EC2 ポッド上で Datadog Cluster Agent を実行します。

  1. Datadog Cluster Agent をセットアップ
  2. Cluster Agent のイベント収集を有効にする

または、Datadog Cluster Agent をセットアップしてクラスターチェックを有効にするだけでなく、クラスターチェックランナーをデプロイすることもできます。

: Fargate のポッドで Datadog Cluster Agent を実行する場合も、イベントを収集することができます。

プロセス収集

Agent 6.19+/7.19+ の場合、プロセス収集を使用できます。ポッド仕様で shareProcessNamespace を有効にして、Fargate ポッドで実行されているすべてのプロセスを収集します。例:

apiVersion: v1
kind: Pod
metadata:
  name: <名前>
spec:
  shareProcessNamespace: true
...

: CPU とメモリのメトリクスは使用できません。

収集データ

メトリクス

eks_fargate チェックは、pod_namevirtual_node でタグ付けされたハートビートメトリクス eks.fargate.pods.running を提出するために、ユーザーは実行中のポッドの数を追跡できます。

サービスのチェック

eks_fargate にはサービスチェックが含まれていません。

イベント

eks_fargate にはイベントが含まれていません。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問合せください。