背景
rancher突然无法访问,查看rancher容器日志,报错:
2022-10-17 07:19:25.249808 W | etcdserver: read-only range request "key:\"/registry/management.cattle.io/catalogtemplateversions/cattle-global-data/chart-cloud-meter-20220927093536\" " with result "range_response_count:1 size:1416" took too long (136.163537ms) to execute
排查
1.查看系统负载情况
查看磁盘,cpu,内存,都是正常的。
2.搜索报错日志
https://github.com/etcd-io/etcd/issues/10860
https://www.qttc.net/522-etcd-warn-took-too-long.html
确认为磁盘性能问题,写入过慢。查看磁盘的延迟。
查看etcd启动参数,没有配置metrics,所以无法查看etcd_disk_wal_fsync_duration指标。
3.查看rancher容器日志
报错chart获取异常
获取chart超时
解决
我的机器是虚拟机,重启容器无效,重启虚拟机
删除chart
登录rancher启动应用商店查看chart,删除报错的chart,等待etcd sync,查看rancher日志没有该chart报错信息。
从上面的issue中可以得知在etcd 3.4版本以后可以配置下面的这个参数来调整告警信息。
–experimental-warning-apply-duration 100ms 如果请求超过这个时间,将报警
登录etcd node查看etcd版本
查看etcd支持的参数
当前3.4.15版本的etcd并未支持改参数。
查看3.5版本etcd
查看metrics
curl http://127.0.0.1:2381/metrics | grep etcd_disk_wal_fsync_duration