zoukankan      html  css  js  c++  java
  • 部署了 prometheus, 在 target 中显示 cadvisor 与 nodes 的状态都是 down

    打开 prometheus 的监控界面,在菜单的 status -> Targets 中,看到 cadvisor 与 nodes 的状态都是 DOWN. 而其他 api-servers 和 endpoints 是 UP 状态。DOWN 状态下的错误消息显示 server returned HTTP status 403 Forbidden.

    如截图:

    403 是无权访问。为什么没有权限呢?

    一开始以为 cadvisor 没有安装成功,但我的 k8s 版本是 1.19, 这个版本已经自动集成了 cadvisor 接口,不需要安装。

    然后想到,会不会是 k8s 证书的问题?查看了/etc/kubernetes/pki/apiserver.crt 的 DNS 配置,里面有 kubernetes.default.svc 这个域名。

    然后想到,会不会是 prometheus 没有指定 serviceAccount ? 也是正确指定了。

    。。。

    经过了各种尝试后,发现是 ServiceAccount 的授权问题,对应的 ClusterRoleBind 在修改之前是这样的:

    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRole
    metadata:
      name: prometheus
    rules:
      - apiGroups: [""]
        resources: ["nodes", "nodes/metrics", "services", "endpoints", "pods"]
        verbs: ["get", "list", "watch"]
      - apiGroups: [""]
        resources: ["configmaps"]
        verbs: ["get"]
      - nonResourceURLs: ["/metrics"]
        verbs: ["get"]

    问题就出现标红的那一行。由于 cadvisor 对应的 api 是,/api/v1/nodes/${1}/proxy/metrics/cadvisor   (这里的 ${1} 会替换成具体的节点名称)。所属的 api 资源 nodes/proxy 没有被授权。如果加上授权:

    resources: ["nodes", "nodes/proxy", "nodes/metrics", "services", "endpoints", "pods"]

     再重启 prometheus,cadvisor 和 nodes 的状态都变成 UP 了。

  • 相关阅读:
    Unity AnimatorController注意事项
    OpenGL ES入门详解
    手游性能优化之深入理解Texture Compression
    Unity2016 Unity3D开发VR游戏的经验
    U3D手游《苍穹变》性能优化经验谈
    unity5之代码创建状态机,玩的666
    Unity IK(反向运动学)初探
    根运动 (Root Motion) – 工作原理
    一些传感器相关的文章
    陀螺仪与加速传感器数据的融合算法解析
  • 原文地址:https://www.cnblogs.com/qkhh/p/14517861.html
Copyright © 2011-2022 走看看