Datadog Operator アドオンによる Amazon EKS への Datadog Agent のインストール
v0.1.9 以降、Datadog Operator アドオンは Fargate インスタンス上にスケジュールされた Pod への Agent サイドカー自動挿入をサポートしています。詳細は
こちらのガイドを参照してください。
Amazon EKS クラスターに Datadog Agent をインストールするには、Datadog Operator を Amazon EKS アドオンとして導入し、DatadogAgent
マニフェストを適用します。
Operator アドオンでインストールした Agent は、EC2 上で動作している Pod からのみデータを収集します。AWS Fargate 上で動作する Pod については Amazon EKS on AWS Fargate のドキュメントを参照してください。
通常の Helm インストールと比較して、アドオンとしてインストールする場合には次のような違いがあります。
- Operator のインストール時、イメージは EKS リポジトリからのみ取得されます。ユーザーが変更することはできません。
- 上書き可能な Operator Helm Chart の値は、スキーマ ファイル に定義された項目に制限されます。
これらの制限は、Operator を EKS アドオン ポリシーに準拠させ、EKS がインストールの安全性を確保し、アドオン環境で未サポートの機能を無効化するために必要です。
前提条件
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 を設定します。
デフォルトで datadog-agent
となる Operator のインストール ネームスペースに切り替えます。
kubectl config set-context --current --namespace=datadog-agent
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 とアプリケーションキーに置き換えます。
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 を使用してメタデータを取得する設定方法はこちらのコメントを参照してください。
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 を参照してください。