🐾
EKS へ Datadog Agent をhelmでインストール
概要
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に対応しているかどうかは、下記記事を参考にすると良い。
特に、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