🐾

EKS へ Datadog Agent をhelmでインストール

2024/12/25に公開

概要

AmazonEKS環境にDatadogAgentをインストールしたい場合の手順。

手順

wget https://raw.githubusercontent.com/DataDog/helm-charts/master/charts/datadog/values.yaml

なお、IMDSV2のみ対応したインスタンスタイプをワーカーノードで使用している場合、values.yamlに下記を追記する必要がある。

  env:
    - name: DD_EC2_PREFER_IMDSV2
      value: "true"

上記はDatadogサポートの方に教えてもらった。デフォルトではこのパラメータが無いのでCluster名が取得できない状態になり、Datadogで諸々取得できない状態となる。

helm template datadog-agent -f values.yaml datadog/datadog \
  --namespace example \
  --set datadog.clusterName=example
helm install datadog-agent -f values.yaml datadog/datadog \
  --namespace example \
  --set datadog.clusterName=example
helm upgrade datadog-agent -f values.yaml datadog/datadog \
  --namespace example \
  --set datadog.clusterName=example

ここまで。
kustomizationを使っている場合は、helmをkustomize実行できるのでそちらで管理したほうが良さそう。


IMDSV2について

IMDSV2に対応しているかどうかは、下記記事を参考にすると良い。
https://dev.classmethod.jp/articles/ec2-metadata-change/

特に、AWS CLIによるMetadataを確認することで判定できる(上記記事抜粋)

$ aws ec2 describe-instances \
	--instance-id (インスタンスID) \
	--query "Reservations[*].Instances[*].MetadataOptions"
[
    [
        {
            "State": "applied",
            "HttpTokens": "optional",
            "HttpPutResponseHopLimit": 1,
            "HttpEndpoint": "enabled",
            "HttpProtocolIpv6": "disabled",
            "InstanceMetadataTags": "disabled"
        }
    ]
]
  • IMDSがv1,v2両方利用できる場合
    • HttpTokens: optional
    • HttpEndpoint: enabled
  • IMDSがv2のみ利用できる場合
    • HttpTokens: required
    • HttpEndpoint: enabled
  • IMDSが無効の場合
    • HttpTokens: optional または required
    • HttpEndpoint: disabled

Discussion