离线监控数据组件metrics-server组件FAQ

metrics-server组件是离线监控数据组件,提供查看集群离线监控数据功能。您在使用metrics-server组件遇到问题时,可参照下方FAQ排查。

kubectl top pod/node全部无数据

请按照以下方式进行预检查。

  1. 执行以下命令,检查metrics-server的API Service是否正常。

    kubectl get apiservices

    metris

    返回结果中v1beta1.metrics.k8s.io显示True,说明metrics-server的API Service是正常的。

  2. 可选:如果metrics-server的API Service不正常,在metrics-server所在的Node节点上执行以下命令,检查metrics-server的443端口与8082端口是否可以在集群中正常访问。

    curl -v 127.0.0.1:8082/apis/metrics/v1alpha1/nodes

    执行以上命令,能正常返回数据,说明metrics-server的443端口与8082端口可以在集群中正常访问。

  3. 可选:如果metrics-server的443端口与8082端口无法在集群中正常访问,重启metrics-server。

    您可以通过删除metrics-server的Pod的方式重启metrics-server。

    1. 登录容器服务管理控制台,在左侧导航栏选择集群

    2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择工作负载 > 无状态

    3. 无状态页面顶部设置命名空间为kube-system,单击metrics-server。

    4. 容器组页签下,选择metrics-server的Pod操作列下的更多>删除,然后在对话框单击确定

按上述说明检查后,没有发现问题,请按照以下工单模板提交工单

工单模板

  1. API Service是否正常?

  2. metrics-server 443与8082端口是否可达?

  3. 提供集群ID。

kubectl top pod/node部分无数据

请按照以下方式进行预检查。

  • 检查是特定的Node上所有Pod无数据,还是特定的Pod无数据。如果是特定的Node上所有Pod无数据,请检查节点是否存在时区漂移,可以通过NTP服务器的date命令进行时区校验。

  • 检查metrics-server Pod到特定的Node的10255端口的网络连通性。

按上述说明检查后,没有发现问题。请按照以下工单模板提交工单

工单模板

  1. 单个Node上的Pod是否全部无数据?

  2. 节点时区是否有漂移?

  3. metrics-server到指定节点的连通性是否可达?

HPA无法获取metrics数据

请按照以下方式进行预检查。

检查对应的Pod执行kubectl top pod pod-id的结果。如果数据异常,请参考上述kubectl top pod/node部分无数据和kubectl top pod/node全部无数据的检查方法进行检查。

按上述说明检查后,没有发现问题。请按照以下工单模板提交工单

工单模板

  1. 监控数据是否有异常?

  2. 执行kubectl describe hpa hpa-name,提交元数据信息。

滚动发布时HPA额外弹出多余的Pod

请按照以下方式进行预检查。

检查metrics-server是否升级到了最新的版本。如果版本没有问题,在kube-system命名空间下的metrics-server配置启动参数。

--metric-resolution=15s
--enable-hpa-rolling-update-skipped=true

按上述说明检查后,没有发现问题。请按照以下工单模板提交工单

工单模板

  1. 检查metrics-server的版本是否为最新?

  2. 检查配置参数是否已经增加防误弹能力?

  3. 执行kubectl describe hpa hpa-name,提交HPA的描述。

相关文档

关于metrics-server组件的介绍和发布记录,请参见metrics-server