Pod 无法访问 kubelet 端点

问题描述

每当我的 Pod 尝试查询任何 kubelet 端点(任何端口)时,它们都会立即得到一个 connection refused

我的目标是让 prometheus 从 cadvisor 获取这些指标,我正在尝试创建一个 ServiceMonitor 来抓取 cadvisor 指标(有关 pod 级别资源使用的信息)。

从我的集群上的任何 Pod 尝试 wget 会导致以下结果:

$ wget 10.116.0.10:4194
Connecting to 10.116.0.10:4194 (10.116.0.10:4194)
wget: can't connect to remote host (10.116.0.10): Connection refused

我在 DigitalOcean 管理的 Kubernetes 上运行

编辑:以上发生在任何端口上,而不仅仅是 4194

服务监视器:

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
Metadata:
  name: kubelet
  labels:
    app: prometheus
spec:
  jobLabel: k8s-app
  endpoints:
  - port: cadvisor
    interval: 15s
    honorLabels: true
    tlsConfig:
      insecureSkipVerify: true
  selector:
    matchLabels:
      k8s-app: kubelet
      app.kubernetes.io/managed-by: prometheus-operator
      app.kubernetes.io/name: kubelet
  namespaceSelector:
    matchNames:
    - kube-system

解决方法

错误“连接被拒绝”表示防火墙可能会阻止该端口或没有服务正在侦听该端口。您确定使用正确的端口吗?

端口4194是cAdvisor使用的端口,为什么要用IP(10.116.0.10)访问?它与 Kubelet 无关。