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 をアプリケーションポッドのサイドカーとして実行してください。
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 で 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
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 メトリクスを 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 を実行します。
または、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_name
と virtual_node
でタグ付けされたハートビートメトリクス eks.fargate.pods.running
を提出するために、ユーザーは実行中のポッドの数を追跡できます。
eks_fargate にはサービスチェックが含まれていません。
eks_fargate にはイベントが含まれていません。
ご不明な点は、Datadog のサポートチームまでお問合せください。