GKE Autopilot集群中Datadog无法采集集群指标求助排查
排查Datadog集群指标采集失败的步骤
1. 验证Agent的集群权限
集群指标采集依赖K8s API的访问权限,即使Helm安装参数一致,也要确认目标集群的RBAC配置是否生效:
- 查看集群角色和绑定:
kubectl describe clusterrole datadog-agent、kubectl describe clusterrolebinding datadog-agent,确认是否包含nodes、nodes/stats、pods等资源的list/watch/get权限。 - 进入Agent Pod测试权限:
kubectl exec -it <datadog-agent-pod-name> -- curl -k https://kubernetes.default.svc/api/v1/nodes,返回403则说明权限不足。
2. 检查Agent日志中的集群指标报错
直接过滤Agent日志里的关键信息定位问题:
- 执行命令:
kubectl logs <datadog-agent-pod-name> agent | grep -E "cluster|node|kubelet" - 重点关注
Failed to collect node metrics、permission denied这类提示,排查连接Kubelet失败、API请求被拒等问题。
3. 确认Kubelet的可达性与配置
集群指标依赖Kubelet的stats接口,需验证目标集群Kubelet状态:
- 在Agent Pod内测试Kubelet连接:
kubectl exec -it <datadog-agent-pod-name> -- curl -k https://<node-ip>:10250/stats/summary,无法连接则检查端口开放情况或TLS证书配置。 - 若使用旧版K8s,确认Kubelet的
--read-only-port是否开启;新版则检查Agent是否有访问HTTPS接口的正确证书。
4. 对比两个集群的Helm实际生效配置
即使安装命令一致,也要确认Helm在目标集群的实际values是否有差异:
- 导出配置对比:
helm get values datadog -n <namespace> -o yaml,重点看kubelet、rbac、clusterChecks等字段,比如是否某个集群的kubelet.tlsVerify被误设为true但缺少对应证书。 - 排查是否有集群级钩子或自定义资源修改了Datadog配置。
5. 检查Cluster Agent状态(若启用)
如果安装了Cluster Agent,它负责聚合集群指标,需确认其运行状态:
- 查看Cluster Agent日志:
kubectl logs <datadog-cluster-agent-pod-name> cluster-agent,排查Failed to collect cluster metrics或API交互错误。 - 执行自检命令:
kubectl exec -it <datadog-cluster-agent-pod-name> -- agent status,查看Cluster Checks和Kubernetes Cluster模块的状态。
6. 排查网络策略或防火墙限制
目标集群可能存在网络策略或节点防火墙,阻止Agent访问Kubelet或API Server:
- 查看命名空间网络策略:
kubectl get networkpolicy -n <namespace>,确认是否允许Agent访问Kubelet的10250/10255端口、API Server的443端口。 - 检查节点iptables或防火墙规则,确认Agent所在节点能访问其他节点的Kubelet端口。
内容的提问来源于stack exchange,提问作者caeus
相关产品推荐
相关产品推荐

