prometheus监控etcd证书报错问题

背景

prometheus重启之后显示集群中的etcd节点全部down掉了。

在集群中查看etcd状态是正常的

进一步查看etcd日志发现

json 复制代码
{"level":"warn","ts":"2023-10-27T07:52:58.389Z","caller":"embed/config_logging.go:169","msg":"rejected connection","remote-addr":"192.168.1.38:38062","server-name":"","error":"tls: failed to verify client certificate: x509: certificate has expired or is not yet valid: current time 2023-10-27T07:52:58Z is after 2023-10-23T03:26:36Z"}

分析

Prometheus连接到etcd抓取监控信息需要配置证书才可以。

集群中的etcd证书更新之后,没有同步到Prometheus的pod中去。

解决

直接使用kubectl cp报权限错误

bash 复制代码
root@dev-k8s-master03:/etc/kubernetes/pki# kubectl cp /etc/kubernetes/pki/apiserver-etcd-client.crt -c prometheus prometheus-54b464684f-ss6vv:/prometheus/dev-etcd/apiserver-etcd-client.crt
tar: can't remove old file apiserver-etcd-client.crt: Permission denied

找到Prometheus的部署文件发现挂载的是pvc存储卷,使用的集群中storageclass存储。

从nfs-client-provisioner中找到使用的nfs服务器的地址,远程到服务器中去,手动copy证书文件。crt文件和key文件都要拷贝

bash 复制代码
root@dev-k8s-master03:/etc/kubernetes/pki# scp apiserver-etcd-client.crt nfs服务器IP地址:/nfsroot/prometheus的pvc/pod中使用的目录/

问题解决。

思考

一些排错的思路是可以学习的:比如看到etcd集群中的报错,是warn级别的,一般是客户端的报错。

而在发现etcd报错之后,登陆k8s集群正常使用,证明etcd集群本身是没有问题的。

继续分析报错是客户端连接的报错。既不是同步数据使用的2380端口,更不是提供服务的2379端口。而是remote addr。

回想自己做的操作,prometheus重启,重启就会重新加载配置文件。

相关推荐
福大大架构师每日一题11 小时前
Redis 8.10.0 正式发布:紧凑哈希、批量导入、备份恢复、流与时序能力全面升级
数据库·redis·哈希算法
雨晨源码(同名B站)12 小时前
基于深度学习YoloV11农业病害虫害检测系统 智慧农业信息化综合管理平台 (附源码+lw文档+ppt)
数据库·人工智能·深度学习·yolo·信息可视化
DBA小马哥12 小时前
向量数据库入门到进阶:Embedding、ANN算法与RAG落地的关键术语
数据库·算法·embedding
云和数据.ChenGuang12 小时前
fastapi项目拆分实战数据模型
java·服务器·数据库·人工智能·深度学习·fastapi·强化学习
祈禾12 小时前
Redis三大特殊数据类型
运维·服务器·数据库·redis·笔记·缓存
东方护航数据恢复(深圳)13 小时前
MySQL_Oracle数据库崩溃修复全攻略_东方护航数据恢复深圳店
数据库·mysql·oracle
y = xⁿ13 小时前
一文掌握Redis常见八股
数据库·redis·缓存
Cloud云卷云舒13 小时前
HaishanDB(海山)|磐维数据库|YashanDB(崖山)深度对比分析
数据库·人工智能·海山数据库·haishandb·移动云海山数据库
weixin_4604435613 小时前
企业考试系统如何对接OA、钉钉和企业微信?SSO单点登录、组织同步与权限一致性设计
java·开发语言·数据库
xywww16813 小时前
真实后台页实测:Opus 5 看图写前端的可用边界在哪
linux·服务器·前端·数据库·人工智能·gpt