以下配置是基于在 Rancher Cluster Manager 中启用监控,而非在 Cluster Explorer 应用程序和市场中启用的新版监控。
场景描述: 首先确保你的pv 回收策略是Retain。可以参照此文档更改pv回收策略
Rancher 在启用集群监控时可配置监控组件 prometheus 和 grafana数据持久化。prometheus 是以statefulset 类型启动,所以即使禁用监控再启用,创建的prometheus pod还会自动挂在之前的pv,之前的监控数据还是可以正常使用的。 但Grafana 是以depoyment 类型启动的pod,在不禁用的监控的情况下,例如 grafana pod 运行的节点故障了,并在其他node节点重建了,是可以实现数据(例如自己导入的dashboard)延续的。** 但是,一旦禁用了监控,为grafana 分配的pvc会被删除,pv状态会变为Released,而且再启用监控的时候也不会自动使用原来的pv创建pvc。 ** 这时如果想使用源来pv上的数据,需要先修改pv 为“available” 状态,然后新建的grafana pod 就能使用这个pv 绑定pvc,当然两次pvc的容量和使用的存储类必须是一致的。理论基础还是statefuleset 和deployment这两种类型的资源对pv 使用的方式不同。 实操: 例如因为某些原因我在Rancher 中禁用了监控,在Rancher 中查看“持久卷”可见,为grafana 创建的pv 状态为released状态,而为prometheus 创建的pv 还是bound 状态,就是因为prometheus组件是以statefulset类型运行的。这时,如果我直接启用监控,prometheus 的历史数据还在,但是grafana会新创建一个pv和pvc,历史数据是没有的,如自己导入的dashboard等。 下面我们修改之前grafana使用的pv状态为available,以使grafana复用这个pv,也即复用这里的数据。 点选这个pv 选择API查看,选择Edit。 在edit页面,将claimRef的值清空,然后依次点“show request” “send request”,然后“close”即可。 再回到“pv”列表,查看这个pv的状态已经变为“available” 再启用监控时,需要设置跟此pv容量大小相同并使用的存储类也相同。因为有此pv可用,grafana启动时pvc就直接使用此pv,而不会再创建一个新的pv。也就使原来的grafana的数据得以保留。