某生产环境集群采用高可用部署,部署Prometheus对k8s组件状态进行监控,但是Prometheus界面显示采集不到kuber-apiserver组件信息。

错误1.Prometheus监控界面显示apiserver数量为1;
错误2.界面显示apiserver的ready数量为0
在这里插入图片描述
开始排查:
正常集群k get ep信息,3台master即显示3个endpoint
在这里插入图片描述
问题集群:k get endpoints只显示1个master,可以正常轮询到master节点,证明haproxy没问题。
在这里插入图片描述
通过学习了解apiserver 配置参数,了解到 :
–apiserver-count 用于设置集群中运行的kube-apiserver组建数量,该参数必须为证书,当使用–endpoint-reconciler-type参数时开启默认为1
–endpoint-reconciler-type 用于设置kube-APIserver组建高可用功能,默认使用endpoint资源锁机制进行领导选举 默认为lease

解决如下:
–apiserver-count=1改为–apiserver-count=3,重启kube-apiserver即可 #生产环境必须等vip飘走后重启组件避免影响集群正常使用。

在这里插入图片描述
endpoints 恢复后重建Prometheus,查看prometheus可以监控到kube-apiserver,数量正确,状态正确,问题解决。
在这里插入图片描述

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐