Datadog Operator の高度なセットアップ
Datadog Operator は Kubernetes や OpenShift にDatadog Agent をデプロイする方法です。カスタムリソースステータスでデプロイ状況、健全性、エラーを報告し、高度なコンフィギュレーションオプションでコンフィギュレーションミスのリスクを抑えます。
前提条件
Datadog Operator を使用するには、次の前提条件が必要です。
- Kubernetes Cluster バージョン >= v1.20.X: テストはバージョン >=
1.20.0
で行われましたが、バージョン >= v1.11.0
で動作するはずです。以前のバージョンでは、CRD サポートが制限されているため、Operator が期待どおりに機能しない場合があります。 datadog-operator
をデプロイするための Helm
。datadog-agent
をインストールするための Kubectl
CLI。
Datadog Operator のデプロイ
Datadog Operator を使用するには、Kubernetes クラスターにデプロイします。次に、Datadog デプロイコンフィギュレーションを含む DatadogAgent
Kubernetes リソースを作成します。
- Datadog Helm リポジトリを追加します。
helm repo add datadog https://helm.datadoghq.com
- Datadog Operator をインストールします。
helm install my-datadog-operator datadog/datadog-operator
Operator を使用して Datadog Agent をデプロイする
Datadog Operator をデプロイした後、Kubernetes クラスターでの Datadog Agent のデプロイをトリガーする DatadogAgent
リソースを作成します。このリソースを Datadog-Operator
ネームスペースに作成することにより、Agent はクラスターのすべての Node
に DaemonSet
としてデプロイされます。
以下のテンプレートを使用して、datadog-agent.yaml
マニフェストを作成します。
<DATADOG_API_KEY>
と <DATADOG_APP_KEY>
を Datadog API とアプリケーションキーに置き換えてから、次のコマンドで Agent のインストールをトリガーします。
$ kubectl apply -n $DD_NAMESPACE -f datadog-agent.yaml
datadogagent.datadoghq.com/datadog created
DatadogAgent
リソースの状態は次のコマンドで確認できます。
kubectl get -n $DD_NAMESPACE dd datadog
NAME ACTIVE AGENT CLUSTER-AGENT CLUSTER-CHECKS-RUNNER AGE
datadog-agent True Running (2/2/2) 110m
2-worker-nodes のクラスターでは、各ノードで作成された Agent ポッドが表示されます。
$ kubectl get -n $DD_NAMESPACE daemonset
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
datadog-agent 2 2 2 2 2 <none> 5m30s
$ kubectl get -n $DD_NAMESPACE pod -owide
NAME READY STATUS RESTARTS AGE IP NODE
agent-datadog-operator-d897fc9b-7wbsf 1/1 Running 0 1h 10.244.2.11 kind-worker
datadog-agent-k26tp 1/1 Running 0 5m59s 10.244.2.13 kind-worker
datadog-agent-zcxx7 1/1 Running 0 5m59s 10.244.1.7 kind-worker2
クリーンアップ
次のコマンドは、上記の手順で作成されたすべての Kubernetes リソースを削除します。
kubectl delete datadogagent datadog
helm delete datadog
許容範囲
datadog-agent.yaml
ファイルを次のコンフィギュレーションで更新して、DaemonSet
の Daemonset.spec.template
に許容範囲を追加します。
kind: DatadogAgent
apiVersion: datadoghq.com/v2alpha1
metadata:
name: datadog
spec:
global:
credentials:
apiKey: <DATADOG_API_KEY>
appKey: <DATADOG_APP_KEY>
override:
nodeAgent:
image:
name: gcr.io/datadoghq/agent:latest
tolerations:
- operator: Exists
この新しいコンフィギュレーションを適用します。
$ kubectl apply -f datadog-agent.yaml
datadogagent.datadoghq.com/datadog updated
DaemonSet の更新は、新しい目的のポッド値を確認することで検証できます。
$ kubectl get -n $DD_NAMESPACE daemonset
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
datadog-agent 3 3 3 3 3 <none> 7m31s
$ kubectl get -n $DD_NAMESPACE pod
NAME READY STATUS RESTARTS AGE
agent-datadog-operator-d897fc9b-7wbsf 1/1 Running 0 15h
datadog-agent-5ctrq 1/1 Running 0 7m43s
datadog-agent-lkfqt 0/1 Running 0 15s
datadog-agent-zvdbw 1/1 Running 0 8m1s
その他の参考資料