prometheus-adapter开启hostNetwork后kubectl top nodes异常求解决方案
根因说明
开启hostNetwork: true后,Pod默认使用节点的DNS解析配置,而节点默认不会把集群CoreDNS配置为上游DNS,因此无法解析prometheus-k8s.monitoring.svc.cluster.local这类集群内部Service域名。
修改节点全局DNS影响范围大,不推荐,以下是优先级从高到低的更优解决方案:
方案1:回退hostNetwork配置,修复原始APIService异常(最优)
你最初添加hostNetwork: true是为了解决APIService的FailedDiscoveryCheck错误,本质是kube-apiserver无法通过集群网络访问prometheus-adapter服务,直接修复该问题即可彻底避免DNS解析异常:
- 操作步骤:
- 删除prometheus-adapter Deployment中的
hostNetwork: true配置 - 检查
v1beta1.metrics.k8s.ioAPIService配置,确认spec.service.port与prometheus-adapter Service暴露的端口一致:
apiVersion: apiregistration.k8s.io/v1 kind: APIService metadata: name: v1beta1.metrics.k8s.io spec: service: name: prometheus-adapter namespace: monitoring port: 6443 # 未配置时默认用443端口,和adapter的6443端口不匹配会导致访问失败 group: metrics.k8s.io version: v1beta1 groupPriorityMinimum: 100 versionPriority: 100- 放通集群网络策略,允许kube-apiserver节点IP访问prometheus-adapter的6443端口
- 重启prometheus-adapter Pod,验证APIService状态和
kubectl top nodes命令
- 删除prometheus-adapter Deployment中的
方案2:保留hostNetwork,显式配置Pod DNS策略(次优)
如果集群网络架构限制必须保留hostNetwork: true,只需为prometheus-adapter Pod单独指定DNS策略即可,无需修改节点全局配置:
- 操作步骤:
在prometheus-adapter Deployment的spec.template.spec下添加dnsPolicy: ClusterFirstWithHostNet配置,示例:
修改后重启Pod即可正常解析集群内部Service域名。spec: template: spec: hostNetwork: true dnsPolicy: ClusterFirstWithHostNet # 新增该配置,hostNetwork模式下也会使用集群CoreDNS解析 containers: - name: prometheus-adapter args: - --cert-dir=/var/run/serving-cert - --config=/etc/adapter/config.yaml - --logtostderr=true - --metrics-relist-interval=1m - --prometheus-url=http://prometheus-k8s.monitoring.svc.cluster.local:9090/prometheus - --secure-port=6443
方案3:临时规避方案,用ClusterIP替代域名
如果需要快速验证修复效果,可以直接用Prometheus服务的ClusterIP代替域名,无需修改DNS相关配置:
- 操作步骤:
- 执行命令获取Prometheus服务的ClusterIP:
kubectl get svc -n monitoring prometheus-k8s - 将prometheus-adapter启动参数
--prometheus-url中的域名替换为实际ClusterIP,比如:--prometheus-url=http://10.96.xx.xx:9090/prometheus - 重启Pod即可生效,缺点是Prometheus服务重建导致ClusterIP变化后需要同步修改配置。
- 执行命令获取Prometheus服务的ClusterIP:
内容的提问来源于stack exchange,提问作者Xsky
相关产品推荐
相关产品推荐

