无法在 Windows 个 Kubernetes 节点上获取 cAdvisor 容器指标

Cannot obtain cAdvisor container metrics on Windows Kubernetes nodes

我已经配置了混合节点 Kubernetes 集群。两个工作节点是 Unbuntu Server 18.04.4,两个工作节点是 Windows Server 2019 Standard。我已经将几个 Docker 容器作为 deployments/pods 部署到每组工作节点(Ubuntu 上的 .NET Core 应用程序和 Windows 上的遗留 WCF 应用程序)。一切似乎都像宣传的那样有效。

我现在正处于要监视 pod/containers 资源的阶段。我已经部署了 Prometheus、kube-state-metrics、metrics-server。我有普罗米修斯 抓取 节点。对于容器指标,kubelet/cAdvisor 从 Ubuntu 节点返回我需要的一切,例如“container_cpu_usage_seconds_total、container_cpu_cfs_throttled_seconds_total 等”。但是 Windows 节点的 kubelet/cAdvisor 只给我一些基本信息:

http://localhost:8001/api/v1/nodes/[WINDOWS_NODE]/proxy/metrics/cadvisor

# HELP cadvisor_version_info A metric with a constant '1' value labeled by kernel version, OS version, docker version, cadvisor version & cadvisor revision.
# TYPE cadvisor_version_info gauge
cadvisor_version_info{cadvisorRevision="",cadvisorVersion="",dockerVersion="",kernelVersion="10.0.17763.1012",osVersion="Windows Server 2019 Standard"} 1
# HELP container_scrape_error 1 if there was an error while getting container metrics, 0 otherwise
# TYPE container_scrape_error gauge
container_scrape_error 0
# HELP machine_cpu_cores Number of CPU cores on the machine.
# TYPE machine_cpu_cores gauge
machine_cpu_cores 2
# HELP machine_memory_bytes Amount of memory installed on the machine.
# TYPE machine_memory_bytes gauge
machine_memory_bytes 1.7179398144e+10

因此,虽然 Ubuntu 节点上的 cAdvisor 为我提供了我想要的有关容器的一切以及更多信息,但 Windows 节点上的 cAdvisor 仅提供了上述内容。

我已经检查了 install/configure kubelet 在 Windows 节点上的 Powershell 脚本,但是 see/understand 如果有一个神奇的方法,我如何配置开关或配置文件我缺少的设置可以在 kubelet/cAdvisor 被 废弃 时发布容器指标。有什么建议吗?

有 metrics/resource/v1alpha1 个端点。但它只提供了 4 个基本指标。 Documentation

我认为 cAdvisor 不支持 windows 节点,您看到的只是一个具有有限指标的模拟接口 Github issue