KubeSphere监控失效为NAN的问题

2022-11-02 16:20:17 浏览数 (1)

前言

在安装完KubSphere后可能会遇到监控体系无效的情况,如下图

原因

遇到这种情况先查看KubeSphere内置的监控组件prometheus-k8s是否正常,在集群的左侧菜单栏里有系统组件一项,查看系统组件的菜单是否正常

里面的KubeSphereKubernetes都是正常的,监控组件里有四个异常,这四个异常都是监控跟监控系统ui展示类相关的组件,列出来

  • prometheus-k8s:提供节点、工作负载、 API 对象的相关监控数据。
  • prometheus-operated:所有 Prometheus 实例对应的服务,供 Prometheus Operator 内部使用。
  • alertmanager-operated:Alertmanager 服务,用于集成 Prometheus 和 Alertmanager。
  • alertmanager-main:Alertmanager Web UI 服务。

Prometheus负责对监控数据的采集,Alertmanager则集成了Prometheus将监控数据渲染到UI页面上让我们可以可视化的查看集群的负载情况。

解决方案

异常状态

目前集群的组件状态是异常状态,我们查看prometheus组件的事件进行异常排查,点击异常容器组的名称进入详情页,以prometheus-k8s容器组为例

点击上图中的prometheus-k8s-0这个名称进入详情页面

在这个页面可以看容器的yaml配置文件及各容器的标签对外端口等信息,我们排查问题的话就需要在监控事件两个tab里追踪问题。

监控项因为异常的是监控本身所以没有数据,剩下的就是查看事件信息

事件里的消息告知了异常产生的原因,cpu不足无法启动,这种情况就需要调整调度给prometheus-k8s足够的资源来进行启动,如果是单机的情况下最好是4C8G的配置。

关闭状态

如果是关闭状态的情况下可以重新调度启动一下组件。

执行以下命令扩展部署:

代码语言:javascript复制
kubectl scale -n kubesphere-monitoring-system –replicas=1 sts prometheus-k8s

如果是使用k8s在线安装KubeSphere造成的监控无效的情况先查看监控里的prometheus等组件是否正常,如果正常的情况下查看prometheus的配置yaml

查看yaml是否配置了对外暴露

上图的配置就是没有对外暴露的配置,按以下代码进行修改:

代码语言:javascript复制
spec:
    clusterIP: None
    ports:
        - name: https-main
    port: 8443
    protocol: TCP
    targetPort: https-main
        - name: https-self
    port: 9443
    protocol: TCP
    targetPort: https-self

0 人点赞