LoginSignup
16
8

More than 5 years have passed since last update.

Datadog AgentをKubernetesにインストールするときのベスト・プラクティス

Last updated at Posted at 2017-12-07

TL;DR;

ただhelm installするだけだと色々難点があるので、以下の設定は最低限入れておくといいと思います。

手順

相当な数の設定をhelm install時に渡す必要があって、コマンドラインから--setフラグで渡すと見通しが悪いため、以下のようなYAMLファイルを作成する。

datadog.values.yaml
daemonset:
  updateStrategy: RollingUpdate
  # Masterノードのメトリクスも収集できるように
  tolerations:
  - operator: Exists
    effect: NoSchedule
  - operator: Exists
    effect: NoExecute
  - operator: Exists
    key: CriticalAddonsOnly

# helm install datadogでつくられるkube-state-metrics chartのrbac.createをtrueにする方法がわからないので別個に入れる
kubeStateMetrics:
  enabled: false

datadog:
  # Datadog APMを利用するため
  apmEnabled: true
  env:
  # Process and Container Monitoringを利用するため
  # https://docs.datadoghq.com/infrastructure/process/#kubernetes-daemonset
  - name: DD_PROCESS_AGENT_ENABLED
    value: "true"
  - name: HOST_PROC
    value: /host/proc
  - name: HOST_SYS
    value: /host/sys
  # 必要かなと思ったけど、これがあるとホストのhostnameコマンドの出力(本当のホスト名)ではなく、K8Sノード名(AWSの場合、ip-<private ip>)が使われてしまって、トレース、メトリクス、ログの#hostタグの値の整合がとれなくなってしまったのでやめた
  # https://github.com/DataDog/dd-agent/issues/3496#issuecomment-325642715
  #- name: KUBERNETES_KUBELET_HOST
  #  valueFrom:
  #    fieldRef:
  #      fieldPath: spec.nodeName

  # Event collectionするとき同じイベントを重複して収集してしまわないように、Leader Election機能を有効化する
  # https://github.com/kubernetes/charts/issues/1021#issuecomment-327189423
  - name: KUBERNETES_LEADER_CANDIDATE
    value: "true"
  - name: KUBERNETES_LEADER_LEASE_DURATION
    value: "60"
  - name: KUBERNETES_NAMESPACE_NAME_REGEX
    value: "'.*'"
  # 複数環境(test, staging, production等)からのメトリクスを分類できるように(Datadog APMトレースのタグにはならない)
  - name: DD_TAGS
    value: "env:test,kube_cluster:mycluster1"
  volumeMount:
  - name: passwd
    mountPath: /etc/passwd
    readOnly: true
  volume:
  - hostPath:
      path: /etc/passwd

Datadog chartにインストールさせることもできるか、その場合にkube-state-metrics chartにそのRBAC関連リソースを作らせる方法がわからなったので、別途インストールする。

$ helm install stable/kube-state-metrics --set rbac.create=True

dd-agentをインストールする。

$ helm install \
  --name datadog \
  --set datadog.apiKey=$DD_API_KEY \
  -f datadog.values.yaml
16
8
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
16
8