metrics-server组件是离线监控数据组件,提供查看集群离线监控数据功能。ack-arms-prometheus组件是阿里云Prometheus监控在ACK集群中的监控组件。本文介绍以上两个组件使用过程中的常见问题。
类型 | 问题 |
---|---|
metrics-server组件常见问题 | |
ack-arms-prometheus组件常见问题 |
kubectl top pod/node全部无数据
请按照以下方式进行预检查。
- 执行以下命令,检查metrics-server的API Service是否正常。
kubectl get apiservices
返回结果中
v1beta1.metrics.k8s.io
显示True
,说明metrics-server的API Service是正常的。 - 可选:如果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端口可以在集群中正常访问。
- 可选:如果metrics-server的443端口与8082端口无法在集群中正常访问,重启metrics-server。您可以通过删除metrics-server的Pod的方式重启metrics-server。
- 登录容器服务管理控制台,在左侧导航栏中选择集群。
- 在集群列表页面中,单击目标集群名称,然后在左侧导航栏中,选择 。
- 在无状态页面顶部设置命名空间为kube-system,单击metrics-server。
- 在容器组页签下选择metrics-server的Pod操作列下的 。
- 在提示对话框单击确定。
按上述说明检查后,没有发现问题,请按照以下工单模板提交工单。
工单模板
- API Service是否正常?
是
- metrics-server 443与8082端口是否可达?
是
- 提供集群ID。
kubectl top pod/node部分无数据
请按照以下方式进行预检查。
- 检查是特定的Node上所有Pod无数据,还是特定的Pod无数据。如果是特定的Node上所有Pod无数据,请检查节点是否存在时区漂移,可以通过NTP服务器的date命令进行时区校验。
- 检查metrics-server Pod到特定的Node的10255端口的网络连通性。
按上述说明检查后,没有发现问题。请按照以下工单模板提交工单。
工单模板
- 单个Node上的Pod是否全部无数据?
是
- 节点时区是否有漂移?
无
- metrics-server到指定节点的连通性是否可达?
是
HPA无法获取metrics数据
请按照以下方式进行预检查。
检查对应的Pod执行kubectl top pod pod-id
的结果。如果数据异常,请参考上述kubectl top pod/node部分无数据和kubectl top pod/node全部无数据的检查方法进行检查。
按上述说明检查后,没有发现问题。请按照以下工单模板提交工单。
工单模板
- 监控数据是否有异常?
无
- 执行
kubectl describe hpa hpa-name
,提交元数据信息。
滚动发布时HPA额外弹出多余的Pod
请按照以下方式进行预检查。
检查metrics-server是否升级到了最新的版本。如果版本没有问题,在kube-system命名空间下的metrics-server配置启动参数。
--metric-resolution=15s
--enable-hpa-rolling-update-skipped=true
按上述说明检查后,没有发现问题。请按照以下工单模板提交工单。
工单模板
- 检查metrics-server的版本是否为最新?
是
- 检查配置参数是否已经增加防误弹能力?
是
- 执行
kubectl describe hpa hpa-name
,提交HPA的描述。
提示Component Not Installed后继续安装ack-arms-prometheus组件,安装失败
- 检查是否已经安装ack-arms-prometheus组件。
- 登录容器服务管理控制台,在左侧导航栏中单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页面左侧导航栏选择
在Helm页面检查是否已有ack-arms-prometheus。
- 若Helm页面已有ack-arms-prometheus,您需要进行以下操作:
您需要在Helm页面删除ack-arms-prometheus,并在组件管理页面重新安装ack-arms-prometheus。关于安装ack-arms-prometheus的具体操作,请参见管理组件。
- 若Helm页面没有ack-arms-prometheus,您需要进行以下操作:
- 若没有ack-arms-prometheus,说明删除ack-arms-prometheus helm有资源残留,需要手动清理。关于删除ack-arms-prometheus残留资源的具体操作,请参见阿里云Prometheus监控常见问题。
- 在组件管理页面安装ack-arms-prometheus。关于安装ack-arms-prometheus的具体操作,请参见管理组件。
- 执行以上步骤,仍无法安装ack-arms-prometheus,请提交工单。
。 - 若Helm页面已有ack-arms-prometheus,您需要进行以下操作:
- 检查ack-arms-prometheus的日志是否有报错。
- 检查Agent是否安装报错。
安装ack-arms-prometheus组件时报错xxx in use
- 登录容器服务管理控制台,在左侧导航栏中单击集群。
- 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页面左侧导航栏选择在Helm页面检查是否已有ack-arms-prometheus。
- 若Helm页面已有ack-arms-prometheus,您需要进行以下操作:
您需要在Helm页面删除ack-arms-prometheus,并在组件管理页面重新安装ack-arms-prometheus。关于安装ack-arms-prometheus的具体操作,请参见管理组件。
- 若Helm页面没有ack-arms-prometheus,您需要进行以下操作:
- 若没有ack-arms-prometheus,说明删除ack-arms-prometheus helm有资源残留,需要手动清理。关于删除ack-arms-prometheus残留资源的具体操作,请参见阿里云Prometheus监控常见问题。
- 在组件管理页面安装ack-arms-prometheus。关于安装ack-arms-prometheus的具体操作,请参见管理组件。
- 执行以上步骤,仍无法安装ack-arms-prometheus,请提交工单。
。 - 若Helm页面已有ack-arms-prometheus,您需要进行以下操作: