このページでは、Containerized Windows Applications Monitoring の既知の未解決の問題について説明します。
一般的な問題
Containerized Windows Applications Monitoring には、Datadog Agent 7.19+ が必要です。
対応する OS のバージョンは以下の通りです。
- Windows Server 2019 (LTSC / 1809)
- Windows Server 2019 1909 (Agent 7.39 まで。 Microsoft のサポートは終了しています)
- Windows Server 2019 2004 または 20H1 (Agent 7.39 まで。 Microsoft のサポートは終了しています)
- Windows Server 2019 20H2 (Agent 7.33 ~ 7.39。 Microsoft のサポートは終了しています)
- Windows Server 2022 LTSC (Agent >=7.34)
Hyper-V 分離モードはサポートされていません。
ディスク、IO、およびネットワークのホストメトリクスは無効になっています。これらは Windows Server ではサポートされていないため、Agent チェックはデフォルトで無効になっています。
Docker の問題
ライブプロセスはコンテナに表示されません (Datadog Agent を除く)。
Kubernetes の問題
ライブプロセスはコンテナに表示されません (Datadog Agent を除く)。
複合クラスター (Linux + Windows)
複合クラスターに Datadog Agent をデプロイするには、Helm チャートの 2 つのインストールを異なる targetSystem で実行することが推奨されます。
Datadog Agent は nodeSelector を使用して、targetSystem に基づき Linux または Windows ノードを自動的に選択します。
ただし、デフォルトでインストールされる Kube State Metrics はこの限りではないため、 Kube State Metrics を Windows ノードにスケジュールできないことがあります。
この問題を回避するには、3 つのオプションがあります。
Windows ノードに taint を適用します。Windows では、Agent は常に node.kubernetes.io/os=windows:NoSchedule taint を許可します。
Datatog Helm チャート values.yaml を使用して、Kube State メトリクスノードセレクタを設定します。
kube-state-metrics:
nodeSelector:
beta.kubernetes.io/os: linux // Kubernetes < 1.14
kubernetes.io/os: linux // Kubernetes >= 1.14
datadog.kubeStateMetricsEnabled を false に設定し、Kube State メトリクスを別途デプロイします。
注: 2 つの Datadog インストール (targetSystem: linux、targetSystem: windows) を使用する場合、2 つ目のインストールで datadog.kubeStateMetricsEnabled を必ず false に設定してください。Kube State メトリクスのインスタンスを 2 つデプロイしないようにするためです。
Windows デプロイメントでは一部のメトリクスを利用できません。 利用可能なメトリクス を参照してください。
Datadog Cluster Agent によるクラスターの混在
Cluster Agent v1.18+ では、Datadog Cluster Agent でクラスターが混在する構成がサポートされます。
Windows ノードにデプロイされた Agent と Cluster Agent 間の通信を構成するには、次の values.yaml ファイルを使用します。
targetSystem: windows
existingClusterAgent:
join: true
serviceName: "<EXISTING_DCA_SERVICE_NAME>" # Datadog Helm の最初のチャートから
tokenSecretName: "<EXISTING_DCA_SECRET_NAME>" # Datadog Helm の最初のチャートから
# datadogMetrics は最初のチャートで既にデプロイされているはずなので、デプロイを無効にします。
datadog-crds:
crds:
datadogMetrics: false
# kube-state-metrics のデプロイメントを無効にします
datadog:
kubeStateMetricsEnabled: false
Windows デプロイでは構成オプションが制限される
Windows では、一部の構成オプションが使用できません。以下は、サポートされていないオプションのリストです。
| パラメーター | 理由 |
|---|
datadog.dogstatsd.useHostPID | Windows コンテナではホスト PID がサポートされていません |
datadog.dogstatsd.useSocketVolume | Windows では Unix ソケットはサポートされていません |
datadog.dogstatsd.socketPath | Windows では Unix ソケットはサポートされていません |
datadog.processAgent.processCollection | ホスト/他のコンテナプロセスにアクセスできません |
datadog.systemProbe.seccomp | システムプローブは Windows では使用できません |
datadog.systemProbe.seccompRoot | システムプローブは Windows では使用できません |
datadog.systemProbe.debugPort | システムプローブは Windows では使用できません |
datadog.systemProbe.enableConntrack | システムプローブは Windows では使用できません |
datadog.systemProbe.bpfDebug | システムプローブは Windows では使用できません |
datadog.systemProbe.apparmor | システムプローブは Windows では使用できません |
agents.useHostNetwork | Windows コンテナではホストネットワークがサポートされていません |
APM または DogStatsD の HostPort
HostPort は、基となる OS バージョンおよび CNI プラグインにより、Kubernetes で一部サポートされています。
HostPort が正常に動作するための要件は以下のとおりです。
- Windows Server バージョン 1909 以降
- CNI プラグインが
portMappings 機能に対応
現在、少なくとも 2 つの CNI プラグインがこの機能に対応しています。
win-bridge 公式プラグイン (バージョン 0.8.6 以降) - GKE が使用- Azure CNI プラグイン - AKS が使用
セットアップがこの要件を満たさない場合、APM および DogStatsD はトレーサーと Agent の間にポッドツーポッドネットワーキングが構成されている場合にのみ機能します。
Kubelet チェック
Kubernetes のバージョンによっては、 Kubelet メトリクスの一部が利用できない (または Kubelet チェックがタイムアウトする) 場合があります。
最適な動作のため、 Datadog Agent v7.19.2+ と組み合わせて次のいずれかを使用してください:
- Kubelet v1.16.13+ (GKE では v1.16.11+)
- Kubelet v1.17.9+ (GKE では v1.17.6+)
- Kubelet v1.18.6+
- Kubelet v1.19+
Windows デプロイメント向けの制限付きメトリクス
Windows コンテナでは、 次の kubernetes.* メトリクスを利用できます:
kubernetes.cpu.usage.totalkubernetes.containers.restartskubernetes.containers.runningkubernetes.cpu.capacitykubernetes.ephemeral_storage.usagekubernetes.kubelet.container.log_filesystem.used_byteskubernetes.kubelet.network_plugin.latency.countkubernetes.kubelet.network_plugin.latency.quantilekubernetes.kubelet.network_plugin.latency.sumkubernetes.kubelet.runtime.errorskubernetes.kubelet.runtime.operationskubernetes.memory.capacitykubernetes.pods.runningkubernetes.rest.client.latency.countkubernetes.rest.client.latency.sumkubernetes.rest.client.requestskubernetes.network.tx_byteskubernetes.network.rx_byteskubernetes.cpu.usage.totalkubernetes.memory.working_setkubernetes.filesystem.usagekubernetes.filesystem.usage_pct