本文介绍了Kubernetes监控在安装和使用过程中的常见问题。

安装相关

无法安装Kubernetes监控组件

问题现象排查步骤
  1. 集群拓扑组件管理页面单击查看检查报告
  2. 根据检查报告提示确认是否安装了最新版本的Prometheus监控组件。
    说明 Kubernetes监控的指标类数据依赖Prometheus监控,因此您需要先安装Prometheus监控组件。Kubernetes监控和Prometheus监控的详细关联信息,请参见阿里云Kubernetes监控和其他ARMS产品的对比
  3. 确认集群是否被授权。
    检查集群是否存在ARMS Addon Token:
    • 若存在ARMS Addon Token,ARMS会进行免密授权,Prometheus监控和Kubernetes监控组件安装完成后,即可使用Kubernetes监控
    • 若不存在ARMS Addon Token,则需要手动添加ARMS和链路追踪权限策略。
    查看ARMS Addon Token
    1. 容器服务管理控制台集群列表页面,单击目标集群名称进入集群详情页。
    2. 在左侧导航栏选择配置管理 > 保密字典,然后在顶部选择命名空间kube-system,查看addon.arms.token是否存在。
    手动添加ARMS和链路追踪权限策略
    1. 容器服务管理控制台集群列表页面,单击目标集群名称进入集群详情页。
    2. 在左侧导航栏单击集群信息,并在右侧页面单击集群资源页签。
    3. 单击Worker RAM角色右侧链接,然后在角色页面单击新增授权
    4. 新增授权面板的选择权限区域,通过关键字搜索以下两个权限策略 ,并单击权限策略将其添加至右侧的已选择列表中,然后单击确定
      • AliyunTracingAnalysisFullAccess:链路追踪的完整权限。
      • AliyunARMSFullAccess:ARMS的完整权限。
    说明
    • Kubernetes托管版集群:对于部分Kubernetes托管版集群,可能存在没有ARMS Addon Token的情况,因此,对于Kubernetes托管版集群,建议首先检查ARMS Addon Token是否存在。若不存在,仍需进行手动授权。
    • Kubernetes专有版集群:默认不支持ARMS Addon Token,需进行手动授权。
    • 注册集群:默认不支持ARMS Addon Token,需进行手动授权。由于注册集群没有Worker RAM角色,无法通过Worker RAM角色手动添加ARMS和链接追踪的权限策略,因此,注册集群安装Kubernetes监控组件的操作,请参见注册集群安装Kubernetes监控组件

使用相关

容器日志提示8888端口被占用

Kubernetes监控cmonitor-agent组件的ot-collector容器会占用Node节点的8888端口,请关闭集群节点里8888端口对应的业务进程。

Cmonitor Agent Pod报错readiness probe failed

问题现象
容器服务管理控制台目标集群下的工作负载 > 容器组页面,单击arms-prom命名空间下名为cmonitor-agent-<xxx>的Pod,在事件页签出现错误信息:readiness probe failedreadiness probe failed
排查步骤

检查集群是否满足接入环境要求。详细的接入限制,请参见Kubernetes监控运行环境要求和限制

Cmonitor Agent Pod内存和CPU使用率过高

问题现象

容器服务管理控制台目标集群下的工作负载 > 容器组页面,arms-prom命名空间下名为cmonitor-agent-<xxx>的Pod出现内存和CPU使用率过高的问题。

排查步骤
  1. 确认告警Pod所在节点的请求量是否过高,是否达到了1w/s及以上的请求数。
  2. 确认告警Pod所在节点的CPU和内存使用是否过高。
  3. 联系Kubernetes监控答疑钉钉群(群号:35568145)获取帮助。

拓扑图没有流量关系

问题现象
集群拓扑页面只有节点,没有流量关系的连线。没有连线的集群拓扑
排查步骤
  1. 检查探针状态。

    容器服务管理控制台目标集群的工作负载 > 守护进程集页面,选择命名空间arms-prom,然后查看守护进程集页面是否存在cmonitor-agent

    • 如果存在且容器组数量总数和就绪数量一致,说明Kubernetes监控探针状态正常。容器监控探针状态
    • 如果不存在或者容器组数量总数和就绪数量不一致,则说明Kubernetes监控探针安装失败,请联系Kubernetes监控答疑钉钉群(群号:35568145)获取帮助。
  2. 检查探针日志。

    单击cmonitor-agent名称,然后单击日志页签。

    查看容器组日志运行状态。正常运行状态的日志将会持续打印版本号,不会出现任何异常日志。如果任何异常日志,请联系Kubernetes监控答疑钉钉群(群号:35568145)获取帮助。容器组日志正常状态
  3. 检查探针配置。

    在左侧导航栏选择配置管理 > 配置项,选择命名空间arms-prom,然后查看配置项页面是否存在otel-collector-config,并确保存在以下配置。如果不存在,请联系Kubernetes监控答疑钉钉群(群号:35568145)获取帮助。

    检查探针配置

拓扑详情面板的接口详情为空

问题现象
  1. 集群拓扑页面单击节点打开详情面板。
  2. 在详情面板单击查看列表查看接口调用详情,接口调用详情页面为空。接口详情页面
排查步骤
  1. 检查探针状态。

    容器服务管理控制台目标集群的工作负载 > 守护进程集页面,选择命名空间arms-prom,然后查看守护进程集页面是否存在cmonitor-agent

    • 如果存在且容器组数量总数和就绪数量一致,说明Kubernetes监控探针状态正常。容器监控探针状态
    • 如果不存在或者容器组数量总数和就绪数量不一致,则说明Kubernetes监控探针安装失败,请联系Kubernetes监控答疑钉钉群(群号:35568145)获取帮助。
  2. 检查探针日志。

    单击cmonitor-agent名称,然后单击日志页签。

    查看容器组日志运行状态。正常运行状态的日志将会持续打印版本号,不会出现任何异常日志。如果任何异常日志,请联系Kubernetes监控答疑钉钉群(群号:35568145)获取帮助。容器组日志正常状态
  3. 检查探针配置。

    在左侧导航栏选择配置管理 > 配置项,选择命名空间arms-prom,然后查看配置项页面是否存在otel-collector-config,并确保存在以下配置。如果不存在,请联系Kubernetes监控答疑钉钉群(群号:35568145)获取帮助。

    检查探针配置
  4. 查看采样率。
    1. ARMS控制台Kubernetes监控页面单击目标集群名称。
    2. 在左侧导航栏单击集群管理,然后在集群配置页签的链路区域查看链路数据采样率。

      默认采样率只有10%,如果调用次数较少,可能没有调用详情,请根据实际情况调整采样率。

拓扑详情面板的接口名称收敛为星号(*)

问题现象
集群拓扑页面的节点详情面板,接口名称收敛为星号(*)。接口被收敛为*
排查步骤

接口字段会作为一个指标Label存储到Prometheus监控里,而一个Label的值过多会导致维度发散,严重影响Prometheus的存储和查询性能,为了避免出现这个问题,Kubernetes监控接口最多支持2级路径,如果某一级路径出现的不同内容超过50个,就会被收敛为星号(*);另外,所有包含数字、.png、.html等字段的内容也会被收敛为星号(*)。