在kube-state-metrics pod中尝试与apiserver通信时出现错误

157次阅读
没有评论

问题描述

在尝试与kube-state-metrics pod通信时遇到了错误。他在执行kubectl logs kube-state-metrics-fdc49658-g98sl -n monitoring命令时,得到了以下错误信息:

I0523 11:30:25.206556       1 main.go:86] Using default collectors
I0523 11:30:25.206766       1 main.go:98] Using all namespace
I0523 11:30:25.206800       1 main.go:139] metric white-blacklisting: blacklisting the following items:
W0523 11:30:25.206886       1 client_config.go:543] Neither --kubeconfig nor --master was specified.  Using the inClusterConfig.  This might not work.
I0523 11:30:25.216265       1 main.go:184] Testing communication with server
F0523 11:30:55.217773       1 main.go:147] Failed to create client: error while trying to communicate with apiserver: Get "https://10.96.0.1:443/version?timeout=32s": dial tcp 10.96.0.1:443: i/o timeout

用户还提供了kube-state-metrics的清单文件,如下所示:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kube-state-metrics
spec:
  selector:
    matchLabels:
      app: kube-state-metrics
  replicas: 1
  template:
    metadata:
      labels:
        app: kube-state-metrics
    spec:
      nodeSelector:
        boardType: aarch64
      serviceAccountName: prometheus
      containers:
      - name: kube-state-metrics
        image: carlosedp/kube-state-metrics:v1.9.6
        ports:
        - containerPort: 8080
          name: monitoring
---
kind: Service
apiVersion: v1
metadata:
  name: kube-state-metrics
spec:
  selector:
    app: kube-state-metrics
  type: LoadBalancer
  ports:
  - protocol: TCP
    port: 8080
    targetPort: 8080

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

根据错误信息,这个问题似乎不是kube-state-metrics的问题,而是与节点之间的通信有关。你需要调试节点之间的通信。以下是一些可能的解决方案:
1. 首先,检查kube-state-metrics所在的节点,并在该节点上启动一个临时pod,以查看是否可以正确访问API Server pod。这可以帮助你确定问题是否出现在子网、安全组/防火墙或其他与网络和安全相关的组件上。
2. 检查节点之间的网络连接是否正常。确保节点之间可以相互通信,并且kube-state-metrics pod可以访问API Server pod。
3. 检查子网、安全组/防火墙设置是否正确。确保kube-state-metrics pod和API Server pod之间的通信不受任何网络安全策略的限制。
4. 检查kube-state-metrics pod的配置是否正确。确保kube-state-metrics pod的配置与集群的网络配置相匹配,并且能够正确访问API Server pod。
5. 如果问题仍然存在,可以尝试重新部署kube-state-metrics pod,并确保使用正确的配置和版本。

方案2

如果问题仍然存在,请参考Kubernetes文档和相关社区资源,以获取更多关于节点之间通信问题的调试和解决方案。

以上是解决这个问题的一些常见方法。如果问题仍然存在,请参考Kubernetes文档和相关社区资源,以获取更多关于节点之间通信问题的调试和解决方案。

希望这些解决方案对你有帮助!如果你有任何其他问题,请随时提问。

正文完